linux.amd64

Hi!

I tried to compile jogl on my AMD64 machine without success. I’ve installed Fedora Core 3 and JDK1.5.
gcc throws many errors. It sais that there is something wrong with the syntax of jogl/build/gensrc/native/jogl/GLX_JNI.c and other files.

Has anybody precompiled binaries of jogl for amd64?

Sigi

Are you running “ant linux.amd64”?

Yes, i’m running “ant linux.amd64”.

The last lines of the ant output are:

   [cc] /home/sigi/programmierung/java/jogl/tmp/jogl/build/gensrc/native/jogl/GLX_JNI.c:4382: Warnung: return erzeugt Ganzzahl von Zeiger ohne Typkonvertierung
   [cc] /home/sigi/programmierung/java/jogl/tmp/jogl/build/gensrc/native/jogl/GLX_JNI.c: In function `Java_net_java_games_jogl_impl_x11_GLX_dispatch_1glXSelectEvent':
   [cc] /home/sigi/programmierung/java/jogl/tmp/jogl/build/gensrc/native/jogl/GLX_JNI.c:4396: Fehler: »Display« nicht deklariert (erste Benutzung in dieser Funktion)
   [cc] /home/sigi/programmierung/java/jogl/tmp/jogl/build/gensrc/native/jogl/GLX_JNI.c:4396: Fehler: Syntaxfehler vor »)«
   [cc] /home/sigi/programmierung/java/jogl/tmp/jogl/build/gensrc/native/jogl/GLX_JNI.c: In function `Java_net_java_games_jogl_impl_x11_GLX_glXSwapBuffers':       [cc] /home/sigi/programmierung/java/jogl/tmp/jogl/build/gensrc/native/jogl/GLX_JNI.c:4407: Fehler: »Display« nicht deklariert (erste Benutzung in dieser Funktion)
   [cc] /home/sigi/programmierung/java/jogl/tmp/jogl/build/gensrc/native/jogl/GLX_JNI.c:4407: Fehler: Syntaxfehler vor »)«
   [cc] /home/sigi/programmierung/java/jogl/tmp/jogl/build/gensrc/native/jogl/GLX_JNI.c: In function `Java_net_java_games_jogl_impl_x11_GLX_glXUseXFont':
   [cc] /home/sigi/programmierung/java/jogl/tmp/jogl/build/gensrc/native/jogl/GLX_JNI.c:4418: Fehler: »XID« nicht deklariert (erste Benutzung in dieser Funktion)
   [cc] /home/sigi/programmierung/java/jogl/tmp/jogl/build/gensrc/native/jogl/GLX_JNI.c:4418: Fehler: Syntaxfehler vor "intptr_t"
   [cc] cc1: Warnung: Kommandozeilenoption "-fno-rtti" ist gültig für C++/ObjC++, aber nicht für C
   [cc] cc1: Warnung: Kommandozeilenoption "-fno-rtti" ist gültig für C++/ObjC++, aber nicht für C
   [cc] cc1: Warnung: Kommandozeilenoption "-fno-rtti" ist gültig für C++/ObjC++, aber nicht für C

BUILD FAILED
/home/sigi/programmierung/java/jogl/tmp/jogl/make/build.xml:1106: The following error occurred while executing this line:
/home/sigi/programmierung/java/jogl/tmp/jogl/make/build.xml:856: The following error occurred while executing this line:
/home/sigi/programmierung/java/jogl/tmp/jogl/make/build.xml:811: gcc failed with return code 1

Something is wrong with your gcc installation. Here’s the version information from my version; it works fine.

Note that you can use the 32-bit Linux/x86 VM on AMD64 and use the precompiled 32-bit Linux version of JOGL.

lines jogl/make> gcc -v
Reading specs from /usr/lib64/gcc-lib/x86_64-suse-linux/3.2.2/specs
Configured with: …/configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --enable-languages=c,c++,f77,objc,java,ada --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit x86_64-suse-linux
Thread model: posix
gcc version 3.2.2 (SuSE Linux)

I tried it with gcc 3.4.2 on Fedora Core 3:
gcc -v
Lese Spezifikationen von /usr/lib/gcc/x86_64-redhat-linux/3.4.2/specs
Konfiguriert mit: …/configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,java,f77 --enable-java-awt=gtk --host=x86_64-redhat-linux
Thread-Modell: posix
gcc-Version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)

… and gcc 4.0.0.

Then I installed SuSE Linux 9.2 and received the same error.
gcc -v
Reading specs from /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.4/specs
Configured with: …/configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada --disable-checking --libdir=/usr/lib64 --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib64 --with-system-zlib --enable-shared --enable-__cxa_atexit x86_64-suse-linux
Thread model: posix
gcc version 3.3.4 (pre 3.3.5 20040809)

Note that you can use the 32-bit Linux/x86 VM on AMD64 and use the precompiled 32-bit Linux version of JOGL.

I’ve installed the 64 bit driver for my GeForce 6600 on FC3-x86_64. The 32 bit JOGL libraries don’t work with this driver:
Exception in thread “main” java.lang.UnsatisfiedLinkError: /home/sigi/workspace/game_engine/lib/x86/libjogl.so: libGLU.so.1: cannot open shared object file: No such file or directory

The java.library.path is set correctly.

It would be really nice, if there are precompiled binaries.

I think your compilation errors are happening because you didn’t install X development support and don’t have /usr/include/X11/. Either that or those files are in a different directory on your system and you’ll need to modify the Linux/AMD64 C compiler configuration in JOGL’s build.xml.

You could probably work around the GLU error by putting the 32-bit version of Mesa’s GLU library in your /usr/lib.

Anyway, I’ve put a Linux/AMD64 binary in the “Temporary Files” folder in JOGL’s Documents and Files section. Sorry, but I can’t maintain this on an ongoing basis. Once we figure out how to merge the 32-bit and 64-bit binaries into one jar file, and have our nightly build system back on line, I’ll try to have Linux/AMD64 support included in the release builds.

Thank you! :smiley:

I didn’t install X development support. After I installed it I get a new error:
c.build:
[echo] Output lib name = jogl
[cc] 10 total files to be compiled.

[cc] Starting link
[cc] /usr/bin/ld: /usr/X11R6/lib64/libGL.a(glapi.o): relocation R_X86_64_32 against `a local symbol’ can not be used when making a shared object; recompile with -fPIC
[cc] /usr/X11R6/lib64/libGL.a: could not read symbols: Bad value
[cc] collect2: ld gab 1 als Ende-Status zurück

I think that the -fPIC compiler option is set in the build.xml.
But do not care about it. Your binaries work for me.