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 support-seamonkey@lists.mozilla.org https://lists.mozilla.org/listinfo/support-seamonkey