Closed Bug 60730 Opened 24 years ago Closed 24 years ago

Trunk build fails on OpenBSD

Categories

(SeaMonkey :: Build Config, defect, P3)

x86
OpenBSD
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: mozilla, Assigned: cls)

Details

Attachments

(1 file)

I'm trying to build from the trunk on OpenBSD. At first I thought it might be my build environment, but I tried building M17 and M18 and both of them compiled without any problems. (Of course both of them segfault on startup, but that's another story.) I recently converted my Linux workstation at work to OpenBSD, so I'd really like to get mozilla working on it. :) hermes:mozilla {138} uname -a OpenBSD hermes 2.8-current DAVID#0 i386 hermes:mozilla {139} gcc -v Reading specs from /usr/lib/gcc-lib/i386-unknown-openbsd2.8/2.95.3/specs gcc version 2.95.3 19991030 (prerelease) hermes:mozilla {131} cat build_mozilla #! /bin/sh export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot cd ~/mozilla/ cvs co -f mozilla/client.mk cd mozilla/ gmake -f client.mk $1 $2 $3 $4 $5 hermes:mozilla {147} cat ~/.mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-opt ac_add_options --disable-debug ac_add_options --disable-dtd-debug ac_add_options --enable-ender-lite ac_add_options --disable-idltool ac_add_options --disable-tests ac_add_options --enable-cpp-rtti ac_add_options --enable-mathml ac_add_options --enable-mng ac_add_options --enable-optimize ac_add_options --enable-strip-libs ac_add_options --enable-svg ac_add_options --enable-x11-shm ac_add_options --enable-xterm-updates ac_add_options --with-extensions=all ac_add_options --with-gtk The compile goes for a long time and gets near the end of the build. Then the following error occurs. Shouldn't this have been exported? Were any changes made with how idl works, because I can compile M18 fine. gmake[3]: Entering directory `/home/david/mozilla/mozilla/obj-opt/xpfe/bootstrap' nsAppRunner.cpp c++ -o nsAppRunner.o -c -DOSTYPE=\"OpenBSD2\" -DOJI -I../../dist/include -I/usr/X11R6/include -fPIC -frtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth -Wshadow -pedantic -Wno-long-long -pthread -O -DNDEBUG -DTRIMMED -DWIDGET_DLL=\"libwidget_gtk.so.1.0\" -DGFXWIN_DLL=\"libgfx_gtk.so.1.0\" -I/usr/local/include -I/usr/local/include/glib -I/usr/X11R6/include -DMOZILLA_CLIENT -include ../../config-defs.h -Wp,-MD,.deps/nsAppRunner.pp /home/david/mozilla/mozilla/xpfe/bootstrap/nsAppRunner.cpp /home/david/mozilla/mozilla/xpfe/bootstrap/nsAppRunner.cpp:70: nsXRemoteClientCID.h: No such file or directory gmake[3]: *** [nsAppRunner.o] Error 1 gmake[3]: Leaving directory `/home/david/mozilla/mozilla/obj-opt/xpfe/bootstrap'gmake[2]: *** [install] Error 2 gmake[2]: Leaving directory `/home/david/mozilla/mozilla/obj-opt/xpfe' gmake[1]: *** [install] Error 2 gmake[1]: Leaving directory `/home/david/mozilla/mozilla/obj-opt' gmake: *** [build] Error 2
At first glance, it appears that the build problem comes from the fact that we only use xremoteclient on non-monolithic builds. OpenBSD should probably be switched to use the non-monolithic build. Pavlov, Blizzard, is the monolithic build case still supported?
I have no idea if it's supported or not. I think that it is kept around for the openvms folks. Doesn't openbsd support a non-monolithic build?
Nope, according to configure.in, openvms made the jump awhile ago. I would assume openbsd could support a non-monolithic build. I'm waiting for David to return the results of the tweak I asked him to do last night. At this point, should we just make the default for our X-based platforms to be a non-monolithic build? Most of them are there anyways. The only platforms I know that still may *need* to use the monolithic build are bdsi or beos.
Last night cls suggested that I unset MOZ_MONOLITHIC_TOOLKIT and then do a 'make clobber_all all'. I tried that and I still got the same build error. Poking around configure.in it shows that both netbsd and freebsd are doing non-monolithic builds, so it would make sense that it would also work for openbsd. I added openbsd to the configure script. Then, I went looking through the freebsd and netbsd cvs ports tree and added the configure options that they are using in their Makefile. Here's what .mozconfig looks like now: mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-opt ac_add_options --disable-cpp-rtti ac_add_options --disable-debug ac_add_options --disable-dtd-debug ac_add_options --disable-idltool ac_add_options --disable-jar-packaging ac_add_options --disable-md ac_add_options --disable-monolithic-toolkit ac_add_options --disable-pedantic ac_add_options --disable-xterm-updates ac_add_options --enable-cpp-exceptions ac_add_options --enable-double-buffer ac_add_options --enable-editor ac_add_options --enable-ender-lite ac_add_options --enable-mailnews ac_add_options --enable-mathml ac_add_options --enable-mng ac_add_options --enable-optimize ac_add_options --enable-pics ac_add_options --enable-strip-libs ac_add_options --enable-svg ac_add_options --enable-tests ac_add_options --enable-toolkit=gtk ac_add_options --enable-x11-shm ac_add_options --enable-xterm-updates ac_add_options --with-extensions=all ac_add_options --with-gtk ac_add_options --with-jpeg=/usr/local/lib/ ac_add_options --with-png=/usr/local/lib/ ac_add_options --with-pthreads This got me slightly past where I was before: c++ -o nsSigHandlers.o -c -DOSTYPE=\"OpenBSD2\" -DOJI -I../../dist/include -I/usr/X11R6/include -fPIC -fno-rtti -fexceptions -Wall -Wconversion -Wpointer-arith -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth -Wshadow -Wno-long-long -pthread -O -DNDEBUG -DTRIMMED -DWIDGET_DLL=\"libwidget_gtk.so.1.0\" -DGFXWIN_DLL=\"libgfx_gtk.so.1.0\" -I/usr/local/include -I/usr/local/include/glib -I/usr/X11R6/include -DMOZILLA_CLIENT -include ../../config-defs.h /home/david/mozilla/mozilla/xpfe/bootstrap/nsSigHandlers.cpp c++ -o mozilla-bin -fno-rtti -fexceptions -Wall -Wconversion -Wpointer-arith -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth -Wshadow -Wno-long-long -pthread -O -DNDEBUG -DTRIMMED -DWIDGET_DLL=\"libwidget_gtk.so.1.0\" -DGFXWIN_DLL=\"libgfx_gtk.so.1.0\" -I/usr/local/include -I/usr/local/include/glib -I/usr/X11R6/include nsAppRunner.o nsSetupRegistry.o nsSigHandlers.o -L../../dist/bin -L../../dist/lib -lgkgfx -L../../dist/bin -lxpcom -lmozjs -ljsj -lplds4 -lplc4 -lnspr4 -lutil -lm nsAppRunner.o: Undefined symbol `nsAppFileLocationProvider::nsAppFileLocationProvider(void)' referenced from text segment nsAppRunner.o: Undefined symbol `nsMPFileLocProvider::nsMPFileLocProvider(void)' referenced from text segment collect2: ld returned 1 exit status gmake[3]: *** [mozilla-bin] Error 1 gmake[3]: Leaving directory `/home/david/mozilla/mozilla/obj-opt/xpfe/bootstrap' gmake[2]: *** [install] Error 2 gmake[2]: Leaving directory `/home/david/mozilla/mozilla/obj-opt/xpfe' gmake[1]: *** [install] Error 2 gmake[1]: Leaving directory `/home/david/mozilla/mozilla/obj-opt' gmake: *** [build] Error 2 Any ideas?
I eliminated most of the configure options down to a small amount: mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-opt ac_add_options --disable-monolithic-toolkit ac_add_options --disable-tests ac_add_options --disable-debug ac_add_options --enable-optimize ac_add_options --with-jpeg=/usr/local/lib/ ac_add_options --with-png=/usr/local/lib/ I'm now getting the nsAppRunner.o: Undefined symbol that I was getting earlier with these options. I'm going to try a debug build now to see what happens.
Damn SHARED_LIBRARY_LIBS again. SHARED_LIBRARY_LIBS used to only be used to link static libraries into other libraries. Now someone has extended it to the mozilla binary even though we don't use it in our rules to build programs. For now, just s/SHARED_LIBRARY_LIBS =/EXTRA_DSO_LIBS +=/ in xpfe/bootstrap/Makefile.in .
I made the change in the bootstrap Makefile and now get the following. c++ -o mozilla-bin -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth -Wshadow -pedantic -Wno-long-long -pthread -O -DNDEBUG -DTRIMMED -DWIDGET_DLL=\"libwidget_gtk.so.1.0\" -DGFXWIN_DLL=\"libgfx_gtk.so.1.0\" -I/usr/local/include -I/usr/local/include/glib -I/usr/X11R6/include nsAppRunner.o nsSetupRegistry.o nsSigHandlers.o -L../../dist/bin -L../../dist/lib -lgkgfx -l-lxpfelocation_s -l-lmpfilelocprovider_s -L../../dist/bin -lxpcom -lmozjs -ljsj -lplds4 -lplc4 -lnspr4 -lutil -lm ld: -l-lxpfelocation_s: no match collect2: ld returned 1 exit status gmake[3]: *** [mozilla-bin] Error 1 gmake[3]: Leaving directory `/home/david/mozilla/mozilla/obj-opt/xpfe/bootstrap'
Looking at the makefile it appears I need to get rid of the -l's. Trying that now.
Woohoo! It finally compiles now but.... I get a memory fault core dump on startup. gdb shows a similar stack trace to the one in bug 49575.
Could you attach the patch that finally allowed you to build successfully?
The checkin in bug 61368 to fix the HPUX build bugtage also fixed part of the OpenBSD build. The only other necessary changes to build a non-debug mozilla are in configure and configure.in. I'm attaching a patch. Note that this still doesn't fix building a debug mozilla (bug 59021). Also, I just filed bug 61970 about runtime problems.
cls checked this in on Dec 5 at 23:22. marking fixed.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
marking verified based on reporter's comments.
Status: RESOLVED → VERIFIED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: