Hello,
I'm trying to build SM from sources on a FreeBSD workstation (since
2.53, SM is totally unusable on FreeBSD as SM takes a lot of memory and
this workstation is continuously swapping).
Compilation crashes with :
5:11.98
/root/seamonkey/mozilla-esr60/nsprpub/pr/src/pthreads/ptsynch.c:941:17:
error: variable has incomplete type 'union semun'
5:11.98 union semun arg;
5:11.98 ^
5:11.98
/root/seamonkey/mozilla-esr60/nsprpub/pr/src/pthreads/ptsynch.c:941:11:
note: forward declaration of 'union semun'
5:11.98 union semun arg;
5:11.98 ^
5:11.98
/root/seamonkey/mozilla-esr60/nsprpub/pr/src/pthreads/ptsynch.c:1081:17:
error: variable has incomplete type 'union semun'
5:11.98 union semun unused;
5:11.98 ^
5:11.98
/root/seamonkey/mozilla-esr60/nsprpub/pr/src/pthreads/ptsynch.c:1081:11:
note: forward declaration of 'union semun'
5:11.98 union semun unused;
5:11.98 ^
5:11.99 2 errors generated.
root@pythagore:~/seamonkey/mozilla-esr60 # cat .mozconfig
export CC=clang
export CXX=clang++
ac_add_options --enable-application=comm/suite
ac_add_options --enable-calendar
ac_add_options --enable-irc
ac_add_options --enable-dominspector
mk_add_options MOZ_OBJDIR=/root/seamonkey/objdir-sm257
ac_add_options --enable-optimize
ac_add_options --enable-js-shell
ac_add_options --disable-debug-symbols
# Disable checking that add-ons are signed by the trusted root
MOZ_ADDON_SIGNING=0
# Disable enforcing that add-ons are signed by the trusted root
MOZ_REQUIRE_SIGNING=0
# Package js shell
export MOZ_PACKAGE_JSSHELL=1
semun is defined in /usr/include/sys/sem.h, but available if and only if
one of the following define is set :
#if defined(_KERNEL) || defined(_WANT_SEMUN)
union semun {
}
#endif
#define _WANT_SEMUN before sem.h inclusion is not enough, I have added a
quick and dirty patch :
#if (defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)) \
|| defined(FREEBSD) || defined(OPENBSD) || defined(BSDI) \
|| defined(DARWIN) || defined(SYMBIAN)
/* union semun is defined by including <sys/sem.h> */
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
};
#else
/* according to X/OPEN we have to define it ourselves */
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
};
#endif
Best regards,
JKB
_______________________________________________
support-seamonkey mailing list
[email protected]
https://lists.mozilla.org/listinfo/support-seamonkey