看板 PttCurrent 關於我們 聯絡資訊
※ 引述《holishing ( )》之銘言: : 之前在 FreeBSD 12-CURRENT 測試時遇到的, : 最近 Release 出來後還沒再測試過,僅供如果編譯時遇到相關錯誤的參考。 : === : https://github.com/freebsd/freebsd/commit/da9d8a0 : https://svnweb.freebsd.org/base/head/sys/sys/sem.h?revision=330299&view=markup : 除非還要另外再定義 _WANT_SEMUN : 不然就不會認 union semun 了 : 所以...再看看 : 如果 12 release 之後還是這樣的話 : https://github.com/ptt/pttbbs/blob/master/common/bbs/passwd.c#L43 : 可能也要小小修正一下了 早點看到你這篇就好了,我找解法找好久XDD 這幾天在 FreeBSD 12.1-RELEASE 下編譯 還是有這個問題 除了你這邊提到的 #define _WANT_SEMUN 這個解法以外, 其實在FreeBSD 的 semctl(2) manpage 裡有說到 "Non-portable software may define _WANT_SEMUN before including sys/sem.h to use the system definition of union semun." 這個 union semun 如果不考慮可移植性的話可以 #define _WANT_SEMUN 用系統的定義 但是其實在 pttbbs source code 裡面已經定義了這個 union 在 common/bbs/passwd.c line 44 " #if !defined( __FreeBSD__ ) && !__DARWIN_UNIX03 #include <sys/sem.h> union semun { int val; /* value for SETVAL */ struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ unsigned short *array; /* array for GETALL & SETALL */ struct seminfo *__buf; /* buffer for IPC_INFO */ }; #endif " 我只要把這段 #if 跟 #endif comment 掉也能編譯過 接下來就是要研究要用哪個 union semun 的定義比較符合原本的需求 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.133.113.16 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PttCurrent/M.1583500991.A.818.html
holishing: 推回饋 03/07 02:13
TsaoCCFGOGO: 我想把Ptt改成UTF-8 only,看起來是漫漫長路 03/07 15:38
TsaoCCFGOGO: 程式功力太差,還在努力學習 03/07 15:39
TsaoCCFGOGO: 還有一個小問題就不另發文了 03/07 17:33
TsaoCCFGOGO: pttbbs.mk裡面似乎抓不到clang設定,等我改出來 03/07 17:34
TsaoCCFGOGO: 再另外發一篇 03/07 17:34
TsaoCCFGOGO: (FreeBSD 12.1-R跟Ubuntu 19.10都測試過) 03/07 17:36
holishing: 我也有遇到類似問題...就某天預設就變 gcc @@ 03/09 21:44
TsaoCCFGOGO: Makefile寫法問題,等我都弄清楚了再開一篇文 03/10 02:03
TsaoCCFGOGO: 把CLANG!=跟CCACHE!=那兩行的type用which換掉, 03/11 02:18
TsaoCCFGOGO: 看起來沒什麼問題,詳解等我有空QQ 03/11 02:18
holishing: 好啊!感謝分享,或是有空的時候可以直接發 PR 這樣XD 03/23 22:49
TsaoCCFGOGO: 好,我再試試看XD 03/28 03:44