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

Reply via email to