lib/libmopt.a lib/libmvec.a and others...

I see that these files are simlinked to v8/libm* (the same inline lib), this means that it always links v8 code. I've try to pass -xargs=v8plusb when linking and linker used lib/libmvec.a (which is v8/libmvec.a). Does it mean, that I have to relink symlinks of these files to corresponding architecture (Ultra3i), to get the best performance? And what about of PIC of these static libs? I've got linker relocation problems during build of libpng.so -> means that is possible to link it only to final binary, not dynlib.

[531 byte] By [nudzo] at [2007-11-26 8:31:07]
# 1
If you want to use, say, v8b/libmvec.a then I would add -xarch=v8plusb to the command line. -Ross
Ross at 2007-7-6 21:52:50 > top of Java-index,Open Source Technologies,OpenSPARC...
# 2

Yes, I know... I'm using such flags during both, compile and linking. But when missconfigured libpng I saw relocation errors on file .../lib/libmvec.a not the .../lib/v8b/libmvec.a even when -xarch=v8plusb was suplied to gcc when linking. The for libmopt.a. So why I thing it always links with /opt/SUNW0scgfss/4.0.2/prod/lib/libmvec.a not the /opt/SUNW0scgfss/4.0.2/prod/lib/v8plusb/libmvec.a even with -xarch=v8plusb.

gcc -shared -Wl,-M -Wl,.libs/libpng12.so.0.12.0.exp -Wl,-h -Wl,libpng12.so.0 -o .libs/libpng12.so.0.12.0 .libs/libpng12_la-png.o .libs/libpng12_la-pngset.o .libs/libpng12_la-pngget.o .libs/libpng12_la-pngrutil.o .libs/libpng12_la-pngtrans.o .libs/libpng12_la-pngwutil.o .libs/libpng12_la-pngread.o .libs/libpng12_la-pngrio.o .libs/libpng12_la-pngwio.o .libs/libpng12_la-pngwrite.o .libs/libpng12_la-pngrtran.o .libs/libpng12_la-pngwtran.o .libs/libpng12_la-pngmem.o .libs/libpng12_la-pngerror.o .libs/libpng12_la-pngpread.o .libs/libpng12_la-pnggccrd.o -R/usr/pkgsrc/graphics/png/work/.buildlink/lib -R/usr/pkgsrc/graphics/png/work/.buildlink/lib -L/usr/pkgsrc/graphics/png/work/.buildlink/lib /usr/pkgsrc/graphics/png/work/.buildlink/lib/libz.so -lc -xarch=v8plusa -Wl,-z -Wl,combreloc -fast -xarch=v8plusa -Wl,-R/usr/pkg/lib

Text relocation remains referenced

against symboloffsetin file

<unknown>0x144/opt/gcc/bin/../../SUNW0scgfss/4.0.2/prod/lib/libmopt.a(f_pow.o)

<unknown>0x14c/opt/gcc/bin/../../SUNW0scgfss/4.0.2/prod/lib/libmopt.a(f_pow.o)

<unknown>0x1cc/opt/gcc/bin/../../SUNW0scgfss/4.0.2/prod/lib/libmopt.a(f_pow.o)

<unknown>0x4b4/opt/gcc/bin/../../SUNW0scgfss/4.0.2/prod/lib/libmopt.a(f_pow.o)

<unknown>0x844/opt/gcc/bin/../../SUNW0scgfss/4.0.2/prod/lib/libmopt.a(f_pow.o)

<unknown>0x868/opt/gcc/bin/../../SUNW0scgfss/4.0.2/prod/lib/libmopt.a(f_pow.o)

<unknown>0x888/opt/gcc/bin/../../SUNW0scgfss/4.0.2/prod/lib/libmopt.a(f_pow.o)

<unknown>0x898/opt/gcc/bin/../../SUNW0scgfss/4.0.2/prod/lib/libmopt.a(f_pow.o)

<unknown>0x90c/opt/gcc/bin/../../SUNW0scgfss/4.0.2/prod/lib/libmopt.a(f_pow.o)

<unknown>0x974/opt/gcc/bin/../../SUNW0scgfss/4.0.2/prod/lib/libmopt.a(f_pow.o)

.......

Relocation error is my fault - linking static lib. to dyn., but look at the path of libmopt.a...

nudzo at 2007-7-6 21:52:50 > top of Java-index,Open Source Technologies,OpenSPARC...
# 3

Thanks for the command line. As a result I have been able to reproduce your problem and the linker is picking up lib/libmopt.a instead of lib/v8plusa/libmopt.

This problem has been fixed while fixing something else in our upcoming 4.0.3 release which should be in the next couple of weeks.

-Ross

Ross at 2007-7-6 21:52:50 > top of Java-index,Open Source Technologies,OpenSPARC...