Re: [心得] PttBBS 在 FreeBSD 12 編譯可能issue
※ 引述《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
推
03/07 02:13,
4年前
, 1F
03/07 02:13, 1F
→
03/07 15:38,
4年前
, 2F
03/07 15:38, 2F
→
03/07 15:39,
4年前
, 3F
03/07 15:39, 3F
→
03/07 17:33,
4年前
, 4F
03/07 17:33, 4F
→
03/07 17:34,
4年前
, 5F
03/07 17:34, 5F
→
03/07 17:34,
4年前
, 6F
03/07 17:34, 6F
→
03/07 17:36,
4年前
, 7F
03/07 17:36, 7F
→
03/09 21:44,
4年前
, 8F
03/09 21:44, 8F
→
03/10 02:03,
4年前
, 9F
03/10 02:03, 9F
→
03/11 02:18,
4年前
, 10F
03/11 02:18, 10F
→
03/11 02:18,
4年前
, 11F
03/11 02:18, 11F
推
03/23 22:49,
4年前
, 12F
03/23 22:49, 12F
→
03/28 03:44,
4年前
, 13F
03/28 03:44, 13F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):