Stefano Mazzocchi wrote:
> 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
>> libicu*.so.34.1 names while our build wants libicu*.so.34. So I had to
>> set up links from *34.1 to *34.
>
> Ok, I've done this. But I still get the same error
>
> [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
>
>
> I've also tried to change make/properties.xml into
>
> --- properties.xml (revision 472739)
> +++ properties.xml (working copy)
> @@ -116,7 +116,7 @@
> <equals arg1="${hy.arch}" arg2="ia64"/>
> </condition>
>
> - <condition property="hy.cflags" value="-fpic">
> + <condition property="hy.cflags" value="-fPIC">
> <equals arg1="${hy.arch}" arg2="x86_64"/>
> </condition>
> <condition property="hy.cflags" value="-march=pentium3">
>
> to see if case makes any difference (and 'ant rebuild-native') but it
> didn't.
Did the -fPIC flag appear in compilation flags of hythread sources? I
think ANT files is not the correct place to set C compilation flags.
They are set somewhere in depends/build/make.include and
depends/build/rules.mk.
--
Gregory
|