Gregory Shimansky wrote:
Stefano Mazzocchi wrote:
Geir Magnusson Jr. wrote:
anyway, I can't build the native part of harmony/classlib

doing "ant build-native" results in

  classlib/depends/libs/linux.x86_64

not being found.

There should be prebuilt ICU binaries. You can build them yourself or you can take them from HARMONY-1678. Note, for me those libraries had

Oops. It should be HARMONY-1676

libicu*.so.34.1 names while our build wants libicu*.so.34. So I had to set up links from *34.1 to *34.

If I try to make a symlink between linux.x86_64 and linux.x86_32 (no
idea what I'm doing here, just trying things out), I get

I think this is a wrong thing to do. You cannot link together code built for different architectures. Linker should have told you that but apparently it encountered an internal error.

Also don't use x86 versions of lib*.a for libraries in depends/libs/build/{jpeg,lcms,png}/. That shouldn't work. You need to find 64-bit versions on your system or build them yourself.

Yesterday I built classlib native stuff successfully (see [classlib] Building on x86_64 thread) but it wasn't easy. Somehow lib*.a static libraries weren't meant to be linked to shared libraries on SUSE9, so I had to replace links in depends/libs/build/{jpeg,lcms,png}/ with links to shared ones. It seem to have worked, but I couldn't check how well classlib works since drlvm build on x86_64 is now broken, most likely by HARMONY-1558.

build-native:
     [exec] make: Nothing to be done for `all'.
     [exec] make: Nothing to be done for `all'.
     [exec] make: Nothing to be done for `all'.
     [copy] Copying 1 file to
/home/stefano/src/harmony/classlib/deploy/jdk/jre/bin
     [exec] cc -shared -Wl,--version-script,libhythr.exp \
     [exec]     -Wl,-soname=libhythr.so  -o ../libhythr.so \
     [exec]     ../shared/thread_copyright.o x86_64/thrhelp.o
x86_64/thrspinlock.o hythread.o ../shared/hythreadinspect.o
linuxonexit.o priority.o rasthrsup.o ../shared/rwmutex.o thrcreate.o
thrdsup.o ../shared/thrprof.o -lpthread \
     [exec]     -Xlinker --start-group
/home/stefano/src/harmony/classlib/deploy/lib/libhypool.a
/home/stefano/src/harmony/classlib/deploy/lib/libhycommon.a -Xlinker
--end-group \
     [exec]     -lc -lm -ldl
     [exec] /usr/bin/ld: x86_64/thrspinlock.o: relocation R_X86_64_PC32
against `hythread_yield' can not be used when making a shared object;
recompile with -fPIC
     [exec] /usr/bin/ld: final link failed: Bad value
     [exec] collect2: ld returned 1 exit status
     [exec] make: *** [../libhythr.so] Error 1

googling it up a little finds

 http://sources.redhat.com/ml/binutils/2005-04/msg00649.html

which is a reference to a GCC bug that was apparently fixed a long time go.

Ah btw,

[EMAIL PROTECTED] ~/src/harmony/classlib $ gcc --version
gcc (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)

[EMAIL PROTECTED] ~/src/harmony/classlib $ ld --version
GNU ld version 2.16.91 20060118 Debian GNU/Linux

[EMAIL PROTECTED] ~/src/harmony/classlib $ uname -a
Linux harmony-em64t 2.6.15-27-amd64-generic #1 SMP PREEMPT Sat Sep 16
01:50:50 UTC 2006 x86_64 GNU

Please, bare with my ignorance, I have *zero* knowledge on native stuff
(I moved from x86 assembly on windows to java without going thru C ;-)

No idea what to do now, please help and I can reward you with a freshly
juiced gump run :-)





--
Gregory

Reply via email to