harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gregory Shimansky <gshiman...@gmail.com>
Subject Re: [general] what's the status of harmony support for em64?
Date Fri, 10 Nov 2006 18:29:59 GMT
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 
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,
> 
> [stefano@harmony-em64t] ~/src/harmony/classlib $ gcc --version
> gcc (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
> 
> [stefano@harmony-em64t] ~/src/harmony/classlib $ ld --version
> GNU ld version 2.16.91 20060118 Debian GNU/Linux
> 
> [stefano@harmony-em64t] ~/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


Mime
View raw message