Page 1 of 1

Problem building 1.75.2 and trunk

Posted: Mon Jul 11, 2011 3:27 pm
by Spooky
Hi,

I'm trying to do a trunk (and 1.75.2 from berlios) build on FreeBSD 8.2 amd64. I'm using the current ports of GNUstep and I'm getting some pretty confusing build errors.

Code: Select all

svn co http://svn.berlios.de/svnroot/repos/oolite-linux/trunk/
 U   trunk
Checked out revision 4577.
cd trunk
gmake -f Makefile debug
<insert the output of a successful js library fetch and build>
gmake -f GNUmakefile debug=yes
This is gnustep-make 2.6.1. Type 'gmake print-gnustep-make-help' for help.
gmake[1]: Entering directory `/root/oolite-build/trunk'
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
Making all for objc_program oolite...
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
 Compiling file src/Core/legacy_random.c ...
 Compiling file src/BSDCompat/strlcpy.c ...
 Compiling file src/Core/Debug/OOTCPStreamDecoder.c ...
 Compiling file src/Core/OOPlanetData.c ...
 Compiling file src/Core/Debug/OODebugMonitor.m ...
src/Core/Debug/OODebugMonitor.m: In function '-[OODebugMonitor performJSConsoleCommand:]':
src/Core/Debug/OODebugMonitor.m:202: error: 'JSID_VOID' undeclared (first use in this function)
src/Core/Debug/OODebugMonitor.m:202: error: (Each undeclared identifier is reported only once
src/Core/Debug/OODebugMonitor.m:202: error: for each function it appears in.)
src/Core/Debug/OODebugMonitor.m: In function '-[OODebugMonitor dumpMemoryStatistics]':
src/Core/Debug/OODebugMonitor.m:608: warning: implicit declaration of function 'JS_GetGCParameter'
src/Core/Debug/OODebugMonitor.m:608: error: 'JSGC_BYTES' undeclared (first use in this function)
src/Core/Debug/OODebugMonitor.m:610: error: 'JSGC_NUMBER' undeclared (first use in this function)
src/Core/Debug/OODebugMonitor.m: In function '-[OODebugMonitor(Private) oo:jsValueInContext:]':
src/Core/Debug/OODebugMonitor.m:912: warning: implicit declaration of function 'JS_AddNamedObjectRoot'
gmake[4]: *** [obj.spk.dbg/oolite.obj/OODebugMonitor.m.o] Error 1
gmake[3]: *** [internal-objc_program-all_] Error 2
gmake[2]: *** [oolite.all.objc-program.variables] Error 2
gmake[1]: *** [internal-all] Error 2
gmake[1]: Leaving directory `/root/oolite-build/trunk'
gmake: *** [debug] Error 2
If I use tool.make as suggested then the build does nothing.

I've checked the mozilla JS build and the static libarary exists, as does the header files and they are being generated in the correct locations.

I've also tried a clean install from scratch on another machine with the same errors.

I'm building with -

Code: Select all

gnustep-1.19.3
gnustep-back-0.17.1_3
gnustep-back-art-0.17.1_3
gnustep-back-cairo-0.17.1_3
gnustep-base-1.19.3_5
gnustep-gui-0.17.1_2
gnustep-make-2.6.1
So erm... HAYLP!

Re: Problem building 1.75.2 and trunk

Posted: Mon Jul 11, 2011 4:12 pm
by another_commander
Which version of Spidermonkey are you using? It looks like it may not the one from Firefox 4.

Also, I would recommend ditching GNUstep 1.19.3. It is known to contain bugs that affect plist parsing in Oolite. Both Windows and Linux versions are currently powered by GNUstep 1.20.1. In addition, you will need to build making sure that gnustep-make is configured with --enable-native-objc-exceptions. Native Obj-C exceptions are now a requirement for building the Oolite source.

Re: Problem building 1.75.2 and trunk

Posted: Mon Jul 11, 2011 4:48 pm
by another_commander
Oh, and just to be sure, can you please post the output if you build Oolite using gmake -f GNUmakefile debug=yes messages=yes? It would be useful to see the exact command line that make is trying to execute when attempting to build OODebugMonitor.m, instead of "Compiling file...".

Another possibility is that your Spidermonkey is the correct version but not the right build type. If you are building Oolite with debug=yes, I think that you also need to have a debug version of the JavaScript shared object available, otherwise the build is confused. The easiest way to find this out would be to try building using gmake -f GNUmakefile debug=no.

Re: Problem building 1.75.2 and trunk

Posted: Mon Jul 11, 2011 6:05 pm
by Spooky
Hi another_commander,

Thanks for replying.
Which version of Spidermonkey are you using? It looks like it may not the one from Firefox 4.
Another possibility is that your Spidermonkey is the correct version but not the right build type. If you are building Oolite with debug=yes
I am using the bundled static JS library which is grabbed and built as part of the Makefile, which ends up here - deps/Cross-platform-deps/mozilla/js/src/build-debug/dist/lib and /include respectively.
Also, I would recommend ditching GNUstep 1.19.3.
I can do, although this is the newest version in the FreeBSD ports tree (I've been trying to stick to a ports/package build). However I've built previous 1.7X (including 1.75) versions with this exact install of gnustep without issue. I'll uninstall this and manually build from source, I'll probably wont be able to try this until tomorrow morning.
Oh, and just to be sure, can you please post the output if you build Oolite using gmake -f GNUmakefile debug=yes messages=yes

Code: Select all

pyro# gmake -f GNUmakefile debug=yes messages=yes
This is gnustep-make 2.6.1. Type 'gmake print-gnustep-make-help' for help.
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
Making all for objc_program oolite...
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
cc src/Core/Debug/OODebugMonitor.m -c \
      -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -fPIC -g -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -pipe -fno-strict-aliasing -fgnu-runtime -Wall -std=c99 -DLOADSAVEGUI -DLINUX -DXP_UNIX -Wno-import `sdl-config --cflags` `nspr-config --cflags` -DHAVE_LIBESPEAK=1 -DMOZ_TRACE_JSCALLS=1 -g -O0 -DDEBUG -DOO_DEBUG -DOO_OXP_VERIFIER_ENABLED=1 -DOO_LOCALIZATION_TOOLS=1 -DDEBUG_GRAPHVIZ=1 -fconstant-string-class=NSConstantString -Ideps/Cross-platform-deps/mozilla/js/src/build-debug/dist/include -Isrc/SDL -Isrc/Core -Isrc/BSDCompat -Isrc/Core/Scripting -Isrc/Core/Materials -Isrc/Core/Entities -Isrc/Core/OXPVerifier -Isrc/Core/Debug -Isrc/Core/Tables -I. -I/usr/local/include -I/root/GNUstep/Library/Headers -I/usr/local/GNUstep/Local/Library/Headers -I/usr/local/GNUstep/System/Library/Headers \
       -o obj.spk.dbg/oolite.obj/OODebugMonitor.m.o
src/Core/Debug/OODebugMonitor.m: In function '-[OODebugMonitor performJSConsoleCommand:]':
src/Core/Debug/OODebugMonitor.m:202: error: 'JSID_VOID' undeclared (first use in this function)
src/Core/Debug/OODebugMonitor.m:202: error: (Each undeclared identifier is reported only once
src/Core/Debug/OODebugMonitor.m:202: error: for each function it appears in.)
src/Core/Debug/OODebugMonitor.m: In function '-[OODebugMonitor dumpMemoryStatistics]':
src/Core/Debug/OODebugMonitor.m:608: warning: implicit declaration of function 'JS_GetGCParameter'
src/Core/Debug/OODebugMonitor.m:608: error: 'JSGC_BYTES' undeclared (first use in this function)
src/Core/Debug/OODebugMonitor.m:610: error: 'JSGC_NUMBER' undeclared (first use in this function)
src/Core/Debug/OODebugMonitor.m: In function '-[OODebugMonitor(Private) oo:jsValueInContext:]':
src/Core/Debug/OODebugMonitor.m:912: warning: implicit declaration of function 'JS_AddNamedObjectRoot'
gmake[3]: *** [obj.spk.dbg/oolite.obj/OODebugMonitor.m.o] Error 1
gmake[2]: *** [internal-objc_program-all_] Error 2
gmake[1]: *** [oolite.all.objc-program.variables] Error 2
gmake: *** [internal-all] Error 2
However using this command it doesn't seem to include the javascript path. Which is different to gmake -f Makefile debug=yes messages=yes

Code: Select all

pyro# gmake -f Makefile debug=yes messages=yes
gmake -f libjs.make debug=yes
gmake[1]: Entering directory `/root/build/trunk'

Updating Javascript sources...

cd deps/Cocoa-deps/scripts && ./update-mozilla.sh
libjs is up to date.
mkdir -p deps/Cross-platform-deps/mozilla/js/src/build-debug
gmake[1]: Leaving directory `/root/build/trunk'
gmake -f GNUmakefile debug=yes
This is gnustep-make 2.6.1. Type 'gmake print-gnustep-make-help' for help.
gmake[1]: Entering directory `/root/build/trunk'
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
cd .; \
/usr/local/GNUstep/System/Library/Makefiles/mkinstalldirs ./obj.spk.dbg
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
Making all for objc_program oolite...
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
cd .; \
/usr/local/GNUstep/System/Library/Makefiles/mkinstalldirs ./obj.spk.dbg/oolite.obj/
/usr/local/GNUstep/System/Library/Makefiles/objc.make:30: objc.make is deprecated.  Please use tool.make instead
cc src/Core/legacy_random.c -c \
      -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -D_REENTRANT -pthread -fPIC -g -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -pipe -fno-strict-aliasing -Wall -DLINUX -DNEED_STRLCPY `sdl-config --cflags` `nspr-config --cflags` -g -O0 -DDEBUG -DOO_DEBUG -DOO_OXP_VERIFIER_ENABLED=1 -DOO_LOCALIZATION_TOOLS=1 -DDEBUG_GRAPHVIZ=1 -Ideps/Cross-platform-deps/mozilla/js/src/build-debug/dist/include -Isrc/SDL -Isrc/Core -Isrc/BSDCompat -Isrc/Core/Scripting -Isrc/Core/Materials -Isrc/Core/Entities -Isrc/Core/OXPVerifier -Isrc/Core/Debug -Isrc/Core/Tables -I. -I/usr/local/include -I/root/GNUstep/Library/Headers -I/usr/local/GNUstep/Local/Library/Headers -I/usr/local/GNUstep/System/Library/Headers \
       -o obj.spk.dbg/oolite.obj/legacy_random.c.o
cc src/BSDCompat/strlcpy.c -c \
      -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -D_REENTRANT -pthread -fPIC -g -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -pipe -fno-strict-aliasing -Wall -DLINUX -DNEED_STRLCPY `sdl-config --cflags` `nspr-config --cflags` -g -O0 -DDEBUG -DOO_DEBUG -DOO_OXP_VERIFIER_ENABLED=1 -DOO_LOCALIZATION_TOOLS=1 -DDEBUG_GRAPHVIZ=1 -Ideps/Cross-platform-deps/mozilla/js/src/build-debug/dist/include -Isrc/SDL -Isrc/Core -Isrc/BSDCompat -Isrc/Core/Scripting -Isrc/Core/Materials -Isrc/Core/Entities -Isrc/Core/OXPVerifier -Isrc/Core/Debug -Isrc/Core/Tables -I. -I/usr/local/include -I/root/GNUstep/Library/Headers -I/usr/local/GNUstep/Local/Library/Headers -I/usr/local/GNUstep/System/Library/Headers \
       -o obj.spk.dbg/oolite.obj/strlcpy.c.o
cc src/Core/Debug/OOTCPStreamDecoder.c -c \
      -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -D_REENTRANT -pthread -fPIC -g -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -pipe -fno-strict-aliasing -Wall -DLINUX -DNEED_STRLCPY `sdl-config --cflags` `nspr-config --cflags` -g -O0 -DDEBUG -DOO_DEBUG -DOO_OXP_VERIFIER_ENABLED=1 -DOO_LOCALIZATION_TOOLS=1 -DDEBUG_GRAPHVIZ=1 -Ideps/Cross-platform-deps/mozilla/js/src/build-debug/dist/include -Isrc/SDL -Isrc/Core -Isrc/BSDCompat -Isrc/Core/Scripting -Isrc/Core/Materials -Isrc/Core/Entities -Isrc/Core/OXPVerifier -Isrc/Core/Debug -Isrc/Core/Tables -I. -I/usr/local/include -I/root/GNUstep/Library/Headers -I/usr/local/GNUstep/Local/Library/Headers -I/usr/local/GNUstep/System/Library/Headers \
       -o obj.spk.dbg/oolite.obj/OOTCPStreamDecoder.c.o
cc src/Core/OOPlanetData.c -c \
      -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -D_REENTRANT -pthread -fPIC -g -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -pipe -fno-strict-aliasing -Wall -DLINUX -DNEED_STRLCPY `sdl-config --cflags` `nspr-config --cflags` -g -O0 -DDEBUG -DOO_DEBUG -DOO_OXP_VERIFIER_ENABLED=1 -DOO_LOCALIZATION_TOOLS=1 -DDEBUG_GRAPHVIZ=1 -Ideps/Cross-platform-deps/mozilla/js/src/build-debug/dist/include -Isrc/SDL -Isrc/Core -Isrc/BSDCompat -Isrc/Core/Scripting -Isrc/Core/Materials -Isrc/Core/Entities -Isrc/Core/OXPVerifier -Isrc/Core/Debug -Isrc/Core/Tables -I. -I/usr/local/include -I/root/GNUstep/Library/Headers -I/usr/local/GNUstep/Local/Library/Headers -I/usr/local/GNUstep/System/Library/Headers \
       -o obj.spk.dbg/oolite.obj/OOPlanetData.c.o
cc src/Core/Debug/OODebugMonitor.m -c \
      -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -fPIC -g -DDEBUG -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -pipe -fno-strict-aliasing -fgnu-runtime -Wall -std=c99 -DLOADSAVEGUI -DLINUX -DXP_UNIX -Wno-import `sdl-config --cflags` `nspr-config --cflags` -DHAVE_LIBESPEAK=1 -DMOZ_TRACE_JSCALLS=1 -g -O0 -DDEBUG -DOO_DEBUG -DOO_OXP_VERIFIER_ENABLED=1 -DOO_LOCALIZATION_TOOLS=1 -DDEBUG_GRAPHVIZ=1 -fconstant-string-class=NSConstantString -Ideps/Cross-platform-deps/mozilla/js/src/build-debug/dist/include -Isrc/SDL -Isrc/Core -Isrc/BSDCompat -Isrc/Core/Scripting -Isrc/Core/Materials -Isrc/Core/Entities -Isrc/Core/OXPVerifier -Isrc/Core/Debug -Isrc/Core/Tables -I. -I/usr/local/include -I/root/GNUstep/Library/Headers -I/usr/local/GNUstep/Local/Library/Headers -I/usr/local/GNUstep/System/Library/Headers \
       -o obj.spk.dbg/oolite.obj/OODebugMonitor.m.o
src/Core/Debug/OODebugMonitor.m: In function '-[OODebugMonitor performJSConsoleCommand:]':
src/Core/Debug/OODebugMonitor.m:202: error: 'JSID_VOID' undeclared (first use in this function)
src/Core/Debug/OODebugMonitor.m:202: error: (Each undeclared identifier is reported only once
src/Core/Debug/OODebugMonitor.m:202: error: for each function it appears in.)
src/Core/Debug/OODebugMonitor.m: In function '-[OODebugMonitor dumpMemoryStatistics]':
src/Core/Debug/OODebugMonitor.m:608: warning: implicit declaration of function 'JS_GetGCParameter'
src/Core/Debug/OODebugMonitor.m:608: error: 'JSGC_BYTES' undeclared (first use in this function)
src/Core/Debug/OODebugMonitor.m:610: error: 'JSGC_NUMBER' undeclared (first use in this function)
src/Core/Debug/OODebugMonitor.m: In function '-[OODebugMonitor(Private) oo:jsValueInContext:]':
src/Core/Debug/OODebugMonitor.m:912: warning: implicit declaration of function 'JS_AddNamedObjectRoot'
gmake[4]: *** [obj.spk.dbg/oolite.obj/OODebugMonitor.m.o] Error 1
gmake[3]: *** [internal-objc_program-all_] Error 2
gmake[2]: *** [oolite.all.objc-program.variables] Error 2
gmake[1]: *** [internal-all] Error 2
gmake[1]: Leaving directory `/root/build/trunk'
gmake: *** [debug] Error 2

Thanks,

Re: Problem building 1.75.2 and trunk

Posted: Mon Jul 11, 2011 7:49 pm
by JensAyton
I agree with another_commander’s analysis: it’s seeing some JS declarations, but not others, ergo it’s using the wrong jsapi.h.
  • Does deps/Cross-platform-deps/mozilla/js/src/build-debug/dist/include/jsapi.h contain the following (at or about line 464)?

    Code: Select all

    #ifdef JS_USE_JSVAL_JSID_STRUCT_TYPES
    extern JS_PUBLIC_DATA(jsid) JSID_VOID;
    extern JS_PUBLIC_DATA(jsid) JSID_EMPTY;
    #else
    # define JSID_VOID      ((jsid)JSID_TYPE_VOID)
    # define JSID_EMPTY     ((jsid)JSID_TYPE_OBJECT)
    #endif
  • Is there a jsapi.h in any of the other search paths?

Re: Problem building 1.75.2 and trunk

Posted: Mon Jul 11, 2011 8:00 pm
by another_commander
It looks like your build settings are correct: Native Obj-C exceptions are set, JS call tracing is on, JS paths seem to be included correctly. So, I think that what happens is that you have already built a Spidermonkey library with non-debug settings and are trying to build Oolite in debug. JSID_VOID in debug builds is defined in a completely different way compared to the same in release builds of JS. I would recommend attempting a make of Oolite with debug=no. I remember when I built the new JS for Windows the first time I had a similar problem, but in reverse: I was building Oolite with debug=no, but I had a debug version of the JS library and I was getting similar issues. I think make debug=no is worth a try.

Re: Problem building 1.75.2 and trunk

Posted: Mon Jul 11, 2011 8:42 pm
by Spooky
another_commander and Ahruman,
I would recommend attempting a make of Oolite with debug=no
I have tried this both ways, on both machines. I have also tried it with release as well as checking out the whole trunk again from scratch. I'm pretty sure this is not the problem.
Does deps/Cross-platform-deps/mozilla/js/src/build-debug/dist/include/jsapi.h contain the following (at or about line 464)?
Yes.

Code: Select all

464: #ifdef JS_USE_JSVAL_JSID_STRUCT_TYPES
465: extern JS_PUBLIC_DATA(jsid) JSID_VOID;
466: extern JS_PUBLIC_DATA(jsid) JSID_EMPTY;
467: #else
468: # define JSID_VOID      ((jsid)JSID_TYPE_VOID)
469: # define JSID_EMPTY     ((jsid)JSID_TYPE_OBJECT)
470: #endif
Is there a jsapi.h in any of the other search paths?
According to my environment, no.

Code: Select all

erebus# env
WINDOWPATH=9
DISPLAY=:0.0
XAUTHORITY=/root/.Xauthority
FTP_PASSIVE_MODE=YES
LOGNAME=root
PWD=/root/trunk
HOME=/root
BLOCKSIZE=K
PATH=/root/GNUstep/Tools:/usr/local/GNUstep/Local/Tools:/usr/local/GNUstep/System/Tools:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
COLORTERM=Terminal
WINDOWID=29143193
OSTYPE=FreeBSD
MAIL=/var/mail/root
SHLVL=2
TERM=xterm
SHELL=/bin/csh
GROUP=wheel
VENDOR=unknown
USER=root
SESSION_MANAGER=local/erebus:/tmp/.ICE-unix/1727
PAGER=more
MACHTYPE=unknown
EDITOR=vi
HOSTTYPE=FreeBSD
HOST=erebus
REMOTEHOST=
GNUSTEP_SYSTEM_ROOT=/usr/local/GNUstep/System
GNUSTEP_LOCAL_ROOT=/usr/local/GNUstep/Local
GNUSTEP_NETWORK_ROOT=/usr/local/GNUstep/Network
GNUSTEP_MAKEFILES=/usr/local/GNUstep/System/Library/Makefiles
GNUSTEP_FLATTENED=yes
GNUSTEP_IS_FLATTENED=yes
LIBRARY_COMBO=gnu-gnu-gnu
GNUSTEP_USER_ROOT=/root/GNUstep
GNUSTEP_HOST=amd64-portbld-freebsd8.2
GNUSTEP_HOST_CPU=amd64
GNUSTEP_HOST_VENDOR=portbld
GNUSTEP_HOST_OS=freebsd
GNUSTEP_PATHLIST=/usr/local/GNUstep/System:/usr/local/GNUstep/Network:/usr/local/GNUstep/Local:/root/GNUstep
LD_LIBRARY_PATH=/root/GNUstep/Library/Libraries:/usr/local/GNUstep/Local/Library/Libraries:/usr/local/GNUstep/System/Library/Libraries
CLASSPATH=/root/GNUstep/Library/Libraries/Java:/usr/local/GNUstep/Local/Library/Libraries/Java:/usr/local/GNUstep/System/Library/Libraries/Java
GUILE_LOAD_PATH=/root/GNUstep/Library/Libraries/Guile:/usr/local/GNUstep/Local/Library/Libraries/Guile:/usr/local/GNUstep/System/Library/Libraries/Guile
INFOPATH=/usr/local/GNUstep/System/Library/Documentation/info::/usr/local/GNUstep/Local/Library/Documentation/info::/root/GNUstep/Library/Documentation/info:
However,

Code: Select all

erebus# find /usr -name "jsapi.h"
/usr/local/include/jsapi.h
/usr/local/include/firefox/jsapi.h

Code: Select all

erebus# grep -R "/usr/local/include" *  | grep -v moziila
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_opengl.h /usr/local/include/SDL/SDL_config.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_platform.h /usr/local/include/GL/gl.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/GL/glext.h /usr/local/include/GL/glu.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/jsapi.h /usr/local/include/jspubtd.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/jstypes.h /usr/local/include/jsautocfg.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/jsosdep.h /usr/local/include/jsotypes.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/jscompat.h /usr/local/include/jslong.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/jsproto.tbl /usr/local/include/jsconfig.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  src/SDL/OOSDLSound.h src/SDL/SDLMusic.h /usr/local/include/SDL/SDL.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_main.h /usr/local/include/SDL/SDL_stdinc.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/begin_code.h /usr/local/include/SDL/close_code.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_audio.h /usr/local/include/SDL/SDL_error.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_endian.h /usr/local/include/SDL/SDL_mutex.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_thread.h /usr/local/include/SDL/SDL_rwops.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_cdrom.h /usr/local/include/SDL/SDL_cpuinfo.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_events.h /usr/local/include/SDL/SDL_active.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_keyboard.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_keysym.h /usr/local/include/SDL/SDL_mouse.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_video.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_joystick.h /usr/local/include/SDL/SDL_quit.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_loadso.h /usr/local/include/SDL/SDL_timer.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_version.h /usr/local/include/SDL/SDL_mixer.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  /usr/local/include/SDL/SDL_types.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:  src/Core/Scripting/OOJSPropID.h /usr/local/include/espeak/speak_lib.h \
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_opengl.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_config.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_platform.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/GL/gl.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/GL/glext.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/GL/glu.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsapi.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jspubtd.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jstypes.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsautocfg.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsosdep.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsotypes.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jscompat.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jslong.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsproto.tbl:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsconfig.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_main.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_stdinc.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/begin_code.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/close_code.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_audio.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_error.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_endian.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_mutex.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_thread.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_rwops.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_cdrom.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_cpuinfo.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_events.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_active.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_keyboard.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_keysym.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_mouse.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_video.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_joystick.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_quit.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_loadso.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_timer.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_version.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_mixer.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/SDL/SDL_types.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/espeak/speak_lib.h:
These would seem to indicate that despite not being in my environment, these headers are being used.

obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsapi.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jspubtd.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jstypes.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsautocfg.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsosdep.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsotypes.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jscompat.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jslong.h:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsproto.tbl:
obj.spk/oolite.obj/OODebugMonitor.m.d:/usr/local/include/jsconfig.h:


If I temporarily move all js*.h out of /usr/local/include the build continues. I'll set it compiling and report back after the linking.

Thanks to both of you for your help,

Re: Problem building 1.75.2 and trunk

Posted: Mon Jul 11, 2011 8:54 pm
by Spooky
Yes! We have success. Splendid work chaps, thanks for your help. Despite not being in my environment gcc is using the the system spiermonkey headers instead of the bundled static ones.

Time to investigate where these are coming from.

Thanks again,

Re: Problem building 1.75.2 and trunk

Posted: Mon Jul 11, 2011 9:00 pm
by JensAyton
It’s quite likely that a SpiderMonkey package was brought in as a dependency of FireFox (or some other Mozilla app) at some point. Historically, SpiderMonkey/libmozjs has been a relatively stable package. This is no longer the case; the API is changing rapidly and Mozilla’s started a new high version churn release policy, so having an unversioned libmozjs as a system package is no longer appropriate, but it’ll probably take a while for distros to catch up to the new reality.

Re: Problem building 1.75.2 and trunk

Posted: Mon Jul 11, 2011 9:28 pm
by Spooky
Ahruman,

Indeed and I don't disagree, however in this instance the problem looks like it's being caused by Oolite's GNUmakefile. Particularly the order in which GCC is parsing the compiler environment flags, it seems that the specified LIBJS flags are being overwritten by nspr.

I have tweaked the following lines in the GNUmakefile and it's sorts the issue.

Code: Select all

ADDITIONAL_INCLUDE_DIRS      = -I$(LIBJS_INC_DIR) -Isrc/SDL -Isrc/Core -Isrc/BSDCompat -Isrc/Core/Scripting -Isrc/Core/Materials -Isrc/Core/Entities -Isrc/Core/OXPVerifier -Isrc/Core/Debug -Isrc/Core/Tables
ADDITIONAL_OBJC_LIBS         = -l$(LIBJS) -lGLU -lGL -lX11 -lSDL -lSDL_mixer -lgnustep-base `nspr-config --libs` -lstdc++
ADDITIONAL_CFLAGS            = -I$(LIBJS_INC_DIR) -Wall -DLINUX -DNEED_STRLCPY `sdl-config --cflags` `nspr-config --cflags` 
ADDITIONAL_OBJCFLAGS         = -I$(LIBJS_INC_DIR) -Wall -std=c99 -DLOADSAVEGUI -DLINUX -DXP_UNIX -Wno-import `sdl-config --cflags` `nspr-config --cflags`
This should be the correct order for library preference across the board think so it might be worth testing this on Linux and OS/X?

Thanks.