Re: [Gc] "include/private/gcconfig.h", line 604: #error: "The collector has not been ported to this machine/OS combination."
Bruce Hoult <[email protected]> Wed, 23 Nov 2016 22:23:26 +0300
| Newsgroups | gmane.comp.programming.garbage-collection.boehmgc |
|---|---|
| Message-ID | <CAMU+Ekz-LSPFzubcY_V6hV42XA43ygw+WeCmbT7sawRo9JhUPA@mail.gmail.com> |
--===============1570209912== Content-Type: multipart/alternative; boundary=f46d04138bfbc74d340541fcd21c --f46d04138bfbc74d340541fcd21c Content-Type: text/plain; charset=UTF-8 Does it work if you disable threads (and therefore don't use atomic ops)? On Wed, Nov 23, 2016 at 10:20 PM, Dennis Clarke <[email protected]> wrote: > On 11/22/2016 10:59 PM, Ivan Maidanski wrote: > >> The following commit treats __amd64 as __amd64__ and __sun as sun: >> https://github.com/ivmai/bdwgc/commit/7f82ed2046cbc4bb594e7c >> 2162d40c819daee111 >> >> > > Thank you for the reply and the patch. However I am past that point in > that I stopped using the C99 compiler and switched to the general cc > compiler which generally works for all code. However it is not going > to accept a lot of gnu'isms or clang special tricks. It is just a flat > C compiler and still has a lot of strict code standards expectations. > > Having said all that, I was making goog progress however the atomic ops > code fails in a strange way. I detailed all that earlier. However here > it is : > > ---------------------- from 22nd Nov ------------------- > > Seems to be libatomic_ops is broken somewhere. > > I found the world is a lot easier to deal with by just letting go > of the reins a small bit :-) so I stopped trying with the c99 compiler > which is obscenely strict and switched over to just cc. That works. > > Sort of. > > The whole process seems to work fine past configure and into the > compile right up until we need to deal with : > > libtool: error: 'libatomic_ops/src/atomic_ops_sysdeps.lo' is not a > valid libtool object > > Weird error. > > There appears to be a strange assembly language source file in > the libatomic_ops area called libatomic_ops/src/atomic_ops_sysdeps.S > however there isn't much in it : > > mimas$ cat libatomic_ops/src/atomic_ops_sysdeps.S > /* > * Include the appropriate system-dependent assembly file, if any. > * This is used only if the platform supports neither inline assembly > * code, nor appropriate compiler intrinsics. > */ > > #if !defined(__GNUC__) && (defined(sparc) || defined(__sparc)) > # include "atomic_ops/sylibatomic_ops/src/atomic_ops_sysdeps.sdeps/sun > c/sparc.S" > #endif > > > Well that is strange because assembly can be compiled no problem. > > I look and see that something was done for sure : > > mimas$ ls -lap .libs/atomic_ops_sysdeps.o > -rw-r--r-- 1 dclarke devl 656 Nov 21 14:47 > .libs/atomic_ops_sysdeps.o > > mimas$ ls -lap atomic_ops_sysdeps.o > -rw-r--r-- 1 dclarke devl 656 Nov 21 14:47 atomic_ops_sysdeps.o > > > So evil libtool comes along later and seems to go looking for > libatomic_ops/src/atomic_ops_sysdeps.lo which does not exist at all and > the whole process comes to a halt. > > In fact the entire build process related to that file looks like : > > > Step 1 : > > /usr/local/bin/bash ./libtool --tag=CC --mode=compile > /opt/solarisstudio12.4/bin/cc -DHAVE_CONFIG_H -I./include -I./include > -I./libatomic_ops/src -I./libatomic_ops/src -D_TS_ERRNO > -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -m64 -xtarget=ultra2 > -xarch=sparcvis -xchip=ultra2 -xcache=generic -errwarn=%none -errhdr=%user > -erroff=%none -errtags=yes -errfmt=error -errshort=full -xstrconst -xildoff > -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g > -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 > -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -c > libatomic_ops/src/atomic_ops_sysdeps.S > > > Step 2 : > > libtool: compile: /opt/solarisstudio12.4/bin/cc -DHAVE_CONFIG_H > -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src > -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -m64 > -xtarget=ultra2 -xarch=sparcvis -xchip=ultra2 -xcache=generic > -errwarn=%none -errhdr=%user -erroff=%none -errtags=yes -errfmt=error > -errshort=full -xstrconst -xildoff -xmemalign=8s -xnolibmil -Xa > -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy > -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -D_TS_ERRNO > -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -c > libatomic_ops/src/atomic_ops_sysdeps.S -KPIC -DPIC -o > .libs/atomic_ops_sysdeps.o > > > Step 3 : > > libtool: compile: /opt/solarisstudio12.4/bin/cc -DHAVE_CONFIG_H > -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src > -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -m64 > -xtarget=ultra2 -xarch=sparcvis -xchip=ultra2 -xcache=generic > -errwarn=%none -errhdr=%user -erroff=%none -errtags=yes -errfmt=error > -errshort=full -xstrconst -xildoff -xmemalign=8s -xnolibmil -Xa > -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy > -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -D_TS_ERRNO > -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -c > libatomic_ops/src/atomic_ops_sysdeps.S -o atomic_ops_sysdeps.o >/dev/null > 2>&1 > > > Step 4 : > > /usr/local/bin/bash ./libtool --tag=CC --mode=link > /opt/solarisstudio12.4/bin/cc -m64 -xtarget=ultra2 -xarch=sparcvis > -xchip=ultra2 -xcache=generic -errwarn=%none -errhdr=%user -erroff=%none > -errtags=yes -errfmt=error -errshort=full -xstrconst -xildoff -xmemalign=8s > -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs > -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -D_TS_ERRNO > -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -version-info 1:3:0 > -no-undefined -L/usr/local/lib -o libgc.la -rpath /usr/local/lib > allchblk.lo alloc.lo blacklst.lo checksums.lo dbg_mlc.lo dyn_load.lo > finalize.lo gc_dlopen.lo gcj_mlc.lo headers.lo mach_dep.lo malloc.lo > mallocx.lo mark.lo mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo > pcr_interface.lo ptr_chck.lo real_malloc.lo reclaim.lo specific.lo > stubborn.lo thread_local_alloc.lo typd_mlc.lo pthread_start.lo > pthread_support.lo pthread_stop_world.lo fnlz_mlc.lo > libatomic_ops/src/atomic_ops_sysdeps.lo sparc_mach_dep.lo > -L/usr/lib/lwp/ -R/usr/lib/lwp/ -lpthread -lrt -ldl > libtool: error: 'libatomic_ops/src/atomic_ops_sysdeps.lo' is not a > valid libtool object > > > So this is quite strange. The absence of the weird ".lo" file which only > libtool needs. > > Something went sadly wrong with libatomic_ops : > > mimas$ cd libatomic_ops/src/ > > mimas$ ls -lo atomic_op* > -rw-r--r-- 1 dclarke 7446 May 24 2016 atomic_ops.c > -rw-r--r-- 1 dclarke 18806 May 24 2016 atomic_ops.h > -rw-r--r-- 1 dclarke 8063 May 24 2016 atomic_ops_malloc.c > -rw-r--r-- 1 dclarke 1665 May 24 2016 atomic_ops_malloc.h > -rw-r--r-- 1 dclarke 9869 May 24 2016 atomic_ops_stack.c > -rw-r--r-- 1 dclarke 6606 May 24 2016 atomic_ops_stack.h > -rw-r--r-- 1 dclarke 306 May 24 2016 atomic_ops_sysdeps.S > > atomic_ops: > total 150 > -rw-r--r-- 1 dclarke 1854 May 24 2016 ao_version.h > -rw-r--r-- 1 dclarke 127867 May 24 2016 generalize-arithm.h > -rw-r--r-- 1 dclarke 32899 May 24 2016 generalize-arithm.template > -rw-r--r-- 1 dclarke 102089 May 24 2016 generalize-small.h > -rw-r--r-- 1 dclarke 20649 May 24 2016 generalize-small.template > -rw-r--r-- 1 dclarke 27996 May 24 2016 generalize.h > drwxr-xr-x 10 dclarke 25 May 24 2016 sysdeps > > > No object files seen there at all and that means > libatomic_ops/src/atomic_ops_sysdeps.lo is missing and so is the object > file. However it does exist as : > > mimas$ find . | grep "atomic_ops_sysdeps" > ./.libs/atomic_ops_sysdeps.o > ./atomic_ops_sysdeps.o > ./libatomic_ops-7.4.4/src/.deps/atomic_ops_sysdeps.Plo > ./libatomic_ops-7.4.4/src/atomic_ops_sysdeps.S > ./atomic_ops_sysdeps.lo > > The problem is somewhere down inside the libatomic sources. > > I wrote a simple link hack.sh thus and ran it : > > mimas$ cat hack.sh > #!/bin/ksh > /opt/solarisstudio12.4/bin/cc -\# -H \ > -m64 -xtarget=ultra2 -xarch=sparcvis \ > -xchip=ultra2 -xcache=generic -errwarn=%none -errhdr=%user \ > -erroff=%none -errtags=yes -errfmt=error -errshort=full -xstrconst \ > -xildoff -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl \ > -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none \ > -xdebugformat=dwarf -xunroll=1 \ > -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE \ > -L/usr/local/lib -L/usr/lib/lwp -R/usr/lib/lwp \ > \ > allchblk.o alloc.o blacklst.o checksums.o dbg_mlc.o dyn_load.o \ > finalize.o gc_dlopen.o gcj_mlc.o headers.o mach_dep.o malloc.o \ > mallocx.o mark.o mark_rts.o misc.o new_hblk.o obj_map.o os_dep.o \ > pcr_interface.o ptr_chck.o real_malloc.o reclaim.o specific.o \ > stubborn.o thread_local_alloc.o typd_mlc.o pthread_start.o \ > pthread_support.o pthread_stop_world.o fnlz_mlc.o \ > \ > atomic_ops_sysdeps.o \ > \ > sparc_mach_dep.o \ > \ > -o libgc.foo -lpthread -lrt -ldl > > > Which works ( other than undefined symbols that must exist somewhere ) : > > > mimas$ ./hack.sh > ### cc: Note: NLSPATH = /opt/solarisstudio12.4/bin/../ > lib/locale/%L/LC_MESSAGES/%N.cat:/opt/solarisstudio12.4/bin/ > ../../lib/locale/%L/LC_MESSAGES/%N.cat > ### command line files and options (expanded): > ### -# -H -m64 -xarch=sparcvis -xchip=ultra2 -xcache=generic > -errwarn=%none -errhdr=%user -erroff=%none -errtags=yes -errfmt=error > -errshort=full -xstrconst -xmemalign=8s -xnolibmil -Xa -xcode=pic32 > -xregs=no%appl -xlibmieee -mc -xdebuginfo=line,param,variable,tagtype,codetag,decl > -xglobalize=yes -xpatchpadding=fix -xkeep_unref=funcs,vars -xs=yes > -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -D_TS_ERRNO > -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -L/usr/local/lib > -L/usr/lib/lwp -R/usr/lib/lwp allchblk.o alloc.o blacklst.o checksums.o > dbg_mlc.o dyn_load.o finalize.o gc_dlopen.o gcj_mlc.o headers.o mach_dep.o > malloc.o mallocx.o mark.o mark_rts.o misc.o new_hblk.o obj_map.o os_dep.o > pcr_interface.o ptr_chck.o real_malloc.o reclaim.o specific.o stubborn.o > thread_local_alloc.o typd_mlc.o pthread_start.o pthread_support.o > pthread_stop_world.o fnlz_mlc.o atomic_ops_sysdeps.o sparc_mach_dep.o > -olibgc.foo -lpthread -lrt -ldl > ### cc: Note: LD_LIBRARY_PATH = (null) > ### cc: Note: LD_LIBRARY_PATH_64 = (null) > ### cc: Note: LD_RUN_PATH = /usr/local/lib > ### cc: Note: LD_OPTIONS = -64 -L/usr/local/lib -R/usr/local/lib > ln -s /opt/solarisstudio12.4/lib/compilers /tmp/lib_link.1479836266.19734 > .01 > /usr/ccs/bin/ld -zld32=-S/tmp/lib_link.1479836266.19734.01/libldstab_ws.so > -zld64=-S/tmp/lib_link.1479836266.19734.01/sparcv9/libldstab_ws.so > -zld32=-S/tmp/lib_link.1479836266.19734.01/libld_annotate.so > -zld64=-S/tmp/lib_link.1479836266.19734.01/sparcv9/libld_annotate.so > /opt/solarisstudio12.4/lib/compilers/sparcv9/crti.o > /opt/solarisstudio12.4/lib/compilers/sparcv9/crt1.o > /opt/solarisstudio12.4/lib/compilers/sparcv9/values-xi.o -L/usr/local/lib > -L/usr/lib/lwp allchblk.o alloc.o blacklst.o checksums.o dbg_mlc.o > dyn_load.o finalize.o gc_dlopen.o gcj_mlc.o headers.o mach_dep.o malloc.o > mallocx.o mark.o mark_rts.o misc.o new_hblk.o obj_map.o os_dep.o > pcr_interface.o ptr_chck.o real_malloc.o reclaim.o specific.o stubborn.o > thread_local_alloc.o typd_mlc.o pthread_start.o pthread_support.o > pthread_stop_world.o fnlz_mlc.o atomic_ops_sysdeps.o sparc_mach_dep.o > -lpthread -lrt -ldl -o libgc.foo -Y "P,/opt/solarisstudio12.4/lib/ > compilers/staticlib/sparcv9:/opt/solarisstudio12.4/lib/compi > lers/sparcvis/sparcv9:/opt/solarisstudio12.4/lib/compiler > s/sparcv9:/usr/ccs/lib/sparcv9:/lib/64:/usr/lib/64" -Qy -R/usr/lib/lwp > -lc /opt/solarisstudio12.4/lib/compilers/sparcv9/crtn.o > Undefined first referenced > symbol in file > main /opt/solarisstudio12.4/lib/compilers/sparcv9/crt1.o > AO_compare_double_and_swap_double_emulation allchblk.o > AO_fetch_compare_and_swap_emulation allchblk.o > AO_store_full_emulation mark.o > ld: fatal: symbol referencing errors. No output written to libgc.foo > mimas$ > > > So the problem seems to be in the libatomic_ops region. > > > > Dennis > > > > -- > This message has been scanned for viruses and > dangerous content by MailScanner, and is > believed to be clean. > > --f46d04138bfbc74d340541fcd21c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Does it work if you disable threads (and therefore don'= ;t use atomic ops)?</div><div class=3D"gmail_extra"><br><div class=3D"gmail= _quote">On Wed, Nov 23, 2016 at 10:20 PM, Dennis Clarke <span dir=3D"ltr">&= lt;<a href=3D"mailto:[email protected]" target=3D"_blank">dclarke@blast= wave.org</a>></span> wrote:<br><blockquote class=3D"gmail_quote" style= =3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 11/22= /2016 10:59 PM, Ivan Maidanski wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> The following commit treats __amd64 as __amd64__ and __sun as sun:<br> <a href=3D"https://github.com/ivmai/bdwgc/commit/7f82ed2046cbc4bb594e7c2162= d40c819daee111" rel=3D"noreferrer" target=3D"_blank">https://github.com/ivm= ai/bdwgc<wbr>/commit/7f82ed2046cbc4bb594e7c<wbr>2162d40c819daee111</a><br> <br> </blockquote> <br> <br> Thank you for the reply and the patch. However I am past that point in<br> that I stopped using the C99 compiler and switched to the general cc<br> compiler which generally works for all code.=C2=A0 However it is not going<= br> to accept a lot of gnu'isms or clang special tricks. It is just a flat<= br> C compiler and still has a lot of strict code standards expectations.<br> <br> Having said all that, I was making goog progress however the atomic ops<br> code fails in a strange way. I detailed all that earlier. However here<br> =C2=A0it is :<br> <br> ---------------------- from 22nd Nov -------------------<div><div class=3D"= h5"><br> Seems to be libatomic_ops is broken somewhere.<br> <br> =C2=A0 =C2=A0 I found the world is a lot easier to deal with by just lettin= g go<br> of the reins a small bit :-) so I stopped trying with the c99 compiler<br> which is obscenely strict and switched over to just cc.=C2=A0 That works.<b= r> <br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Sort = of.<br> <br> The whole process seems to work fine past configure and into the<br> compile right up until we need to deal with :<br> <br> libtool:=C2=A0 =C2=A0error: 'libatomic_ops/src/atomic_ops_<wbr>sysdeps.= lo' is not a valid libtool object<br> <br> Weird error.<br> <br> There appears to be a strange assembly language source file in<br> the libatomic_ops area called libatomic_ops/src/atomic_ops_s<wbr>ysdeps.S<b= r> however there isn't much in it :<br> <br> mimas$ cat libatomic_ops/src/atomic_ops_s<wbr>ysdeps.S<br> /*<br> =C2=A0* Include the appropriate system-dependent assembly file, if any.<br> =C2=A0* This is used only if the platform supports neither inline assembly<= br> =C2=A0* code, nor appropriate compiler intrinsics.<br> =C2=A0*/<br> <br> #if !defined(__GNUC__) && (defined(sparc) || defined(__sparc))<br> #=C2=A0 include "atomic_ops/sylibatomic_ops/sr<wbr>c/atomic_ops_sysdep= s.sdeps/sun<wbr>c/sparc.S"<br> #endif<br> <br> <br> Well that is strange because assembly can be compiled no problem.<br> <br> I look and see that something was done for sure :<br> <br> mimas$ ls -lap .libs/atomic_ops_sysdeps.o<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 devl=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0656 Nov 21 14:47 .libs/atomic_ops_sysdeps.o<br> <br> mimas$ ls -lap=C2=A0 atomic_ops_sysdeps.o<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 devl=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0656 Nov 21 14:47 atomic_ops_sysdeps.o<br> <br> <br> So evil libtool comes along later and seems to go looking for libatomic_ops= /src/atomic_ops_s<wbr>ysdeps.lo which does not exist at all and the whole p= rocess comes to a halt.<br> <br> In fact the entire build process related to that file looks like :<br> <br> <br> Step 1 :<br> <br> /usr/local/bin/bash ./libtool=C2=A0 --tag=3DCC=C2=A0 =C2=A0--mode=3Dcompile= /opt/solarisstudio12.4/bin/cc -DHAVE_CONFIG_H=C2=A0 =C2=A0-I./include -I./= include -I./libatomic_ops/src -I./libatomic_ops/src -D_TS_ERRNO -D_POSIX_PT= HREAD_SEMANTICS -D_LARGEFILE64_SOURCE=C2=A0 =C2=A0-m64 -xtarget=3Dultra2 -x= arch=3Dsparcvis -xchip=3Dultra2 -xcache=3Dgeneric -errwarn=3D%none -errhdr= =3D%user -erroff=3D%none -errtags=3Dyes -errfmt=3Derror -errshort=3Dfull -x= strconst -xildoff -xmemalign=3D8s -xnolibmil -Xa -xcode=3Dpic32 -xregs=3Dno= %appl -xlibmieee -mc -g -xs -ftrap=3D%none -Qy -xbuiltin=3D%none -xdebugfor= mat=3Ddwarf -xunroll=3D1 -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFIL= E64_SOURCE=C2=A0 -c libatomic_ops/src/atomic_ops_s<wbr>ysdeps.S<br> <br> <br> Step 2 :<br> <br> libtool: compile:=C2=A0 /opt/solarisstudio12.4/bin/cc -DHAVE_CONFIG_H -I./i= nclude -I./include -I./libatomic_ops/src -I./libatomic_ops/src -D_TS_ERRNO = -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -m64 -xtarget=3Dultra2 -xa= rch=3Dsparcvis -xchip=3Dultra2 -xcache=3Dgeneric -errwarn=3D%none -errhdr= =3D%user -erroff=3D%none -errtags=3Dyes -errfmt=3Derror -errshort=3Dfull -x= strconst -xildoff -xmemalign=3D8s -xnolibmil -Xa -xcode=3Dpic32 -xregs=3Dno= %appl -xlibmieee -mc -g -xs -ftrap=3D%none -Qy -xbuiltin=3D%none -xdebugfor= mat=3Ddwarf -xunroll=3D1 -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFIL= E64_SOURCE -c libatomic_ops/src/atomic_ops_s<wbr>ysdeps.S=C2=A0 -KPIC -DPIC= -o .libs/atomic_ops_sysdeps.o<br> <br> <br> Step 3 :<br> <br> libtool: compile:=C2=A0 /opt/solarisstudio12.4/bin/cc -DHAVE_CONFIG_H -I./i= nclude -I./include -I./libatomic_ops/src -I./libatomic_ops/src -D_TS_ERRNO = -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -m64 -xtarget=3Dultra2 -xa= rch=3Dsparcvis -xchip=3Dultra2 -xcache=3Dgeneric -errwarn=3D%none -errhdr= =3D%user -erroff=3D%none -errtags=3Dyes -errfmt=3Derror -errshort=3Dfull -x= strconst -xildoff -xmemalign=3D8s -xnolibmil -Xa -xcode=3Dpic32 -xregs=3Dno= %appl -xlibmieee -mc -g -xs -ftrap=3D%none -Qy -xbuiltin=3D%none -xdebugfor= mat=3Ddwarf -xunroll=3D1 -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFIL= E64_SOURCE -c libatomic_ops/src/atomic_ops_s<wbr>ysdeps.S -o atomic_ops_sys= deps.o >/dev/null 2>&1<br> <br> <br> Step 4 :<br> <br> /usr/local/bin/bash ./libtool=C2=A0 --tag=3DCC=C2=A0 =C2=A0--mode=3Dlink /o= pt/solarisstudio12.4/bin/cc=C2=A0 =C2=A0-m64 -xtarget=3Dultra2 -xarch=3Dspa= rcvis -xchip=3Dultra2 -xcache=3Dgeneric -errwarn=3D%none -errhdr=3D%user -e= rroff=3D%none -errtags=3Dyes -errfmt=3Derror -errshort=3Dfull -xstrconst -x= ildoff -xmemalign=3D8s -xnolibmil -Xa -xcode=3Dpic32 -xregs=3Dno%appl -xlib= mieee -mc -g -xs -ftrap=3D%none -Qy -xbuiltin=3D%none -xdebugformat=3Ddwarf= -xunroll=3D1 -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE = -version-info 1:3:0 -no-undefined -L/usr/local/lib -o <a href=3D"http://lib= gc.la" rel=3D"noreferrer" target=3D"_blank">libgc.la</a> -rpath /usr/local/= lib allchblk.lo alloc.lo blacklst.lo checksums.lo dbg_mlc.lo dyn_load.lo fi= nalize.lo gc_dlopen.lo gcj_mlc.lo headers.lo mach_dep.lo malloc.lo mallocx.= lo mark.lo mark_rts.lo misc.lo new_hblk.lo obj_map.lo os_dep.lo pcr_interfa= ce.lo ptr_chck.lo real_malloc.lo reclaim.lo specific.lo stubborn.lo thread_= local_alloc.lo typd_mlc.lo pthread_start.lo pthread_support.lo=C2=A0 pthrea= d_stop_world.lo=C2=A0 fnlz_mlc.lo libatomic_ops/src/atomic_ops_s<wbr>ysdeps= .lo sparc_mach_dep.lo -L/usr/lib/lwp/=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-R/usr/lib/lwp/ -lpthread -lrt= -ldl<br> libtool:=C2=A0 =C2=A0error: 'libatomic_ops/src/atomic_ops_<wbr>sysdeps.= lo' is not a valid libtool object<br> <br> <br> So this is quite strange. The absence of the weird ".lo" file whi= ch only libtool needs.<br> <br> Something went sadly wrong with libatomic_ops :<br> <br> mimas$ cd libatomic_ops/src/<br> <br> mimas$ ls -lo atomic_op*<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 =C2=A07446 May 24=C2=A0 2016 = atomic_ops.c<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 18806 May 24=C2=A0 2016 atomi= c_ops.h<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 =C2=A08063 May 24=C2=A0 2016 = atomic_ops_malloc.c<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 =C2=A01665 May 24=C2=A0 2016 = atomic_ops_malloc.h<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 =C2=A09869 May 24=C2=A0 2016 = atomic_ops_stack.c<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 =C2=A06606 May 24=C2=A0 2016 = atomic_ops_stack.h<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 =C2=A0 306 May 24=C2=A0 2016 = atomic_ops_sysdeps.S<br> <br> atomic_ops:<br> total 150<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 =C2=A01854 May 24=C2=A0 2016 = ao_version.h<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0127867 May 24=C2=A0 2016 gener= alize-arithm.h<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 32899 May 24=C2=A0 2016 gener= alize-arithm.template<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0102089 May 24=C2=A0 2016 gener= alize-small.h<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 20649 May 24=C2=A0 2016 gener= alize-small.template<br> -rw-r--r--=C2=A0 =C2=A01 dclarke=C2=A0 =C2=A0 27996 May 24=C2=A0 2016 gener= alize.h<br> drwxr-xr-x=C2=A0 10 dclarke=C2=A0 =C2=A0 =C2=A0 =C2=A025 May 24=C2=A0 2016 = sysdeps<br> <br> <br> No object files seen there at all and that means libatomic_ops/src/atomic_o= ps_s<wbr>ysdeps.lo is missing and so is the object file.=C2=A0 However it d= oes exist as :<br> <br> mimas$ find . | grep "atomic_ops_sysdeps"<br> ./.libs/atomic_ops_sysdeps.o<br> ./atomic_ops_sysdeps.o<br> ./libatomic_ops-7.4.4/src/.dep<wbr>s/atomic_ops_sysdeps.Plo<br> ./libatomic_ops-7.4.4/src/atom<wbr>ic_ops_sysdeps.S<br> ./atomic_ops_sysdeps.lo<br> <br> The problem is somewhere down inside the libatomic sources.<br> <br> I wrote a simple link hack.sh thus and ran it :<br> <br> mimas$ cat hack.sh<br> #!/bin/ksh<br> /opt/solarisstudio12.4/bin/cc -\# -H \<br></div></div><span class=3D""> -m64 -xtarget=3Dultra2 -xarch=3Dsparcvis \<br> -xchip=3Dultra2 -xcache=3Dgeneric -errwarn=3D%none -errhdr=3D%user \<br> -erroff=3D%none -errtags=3Dyes -errfmt=3Derror -errshort=3Dfull -xstrconst = \<br></span> -xildoff -xmemalign=3D8s -xnolibmil -Xa -xcode=3Dpic32 -xregs=3Dno%appl \<s= pan class=3D"im HOEnZb"><br> -xlibmieee -mc -g -xs -ftrap=3D%none -Qy -xbuiltin=3D%none \<br> -xdebugformat=3Ddwarf -xunroll=3D1 \<br></span><div class=3D"HOEnZb"><div c= lass=3D"h5"> -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE \<br> -L/usr/local/lib -L/usr/lib/lwp -R/usr/lib/lwp \<br> \<br> allchblk.o alloc.o blacklst.o checksums.o dbg_mlc.o dyn_load.o \<br> finalize.o gc_dlopen.o gcj_mlc.o headers.o mach_dep.o malloc.o \<br> mallocx.o mark.o mark_rts.o misc.o new_hblk.o obj_map.o os_dep.o \<br> pcr_interface.o ptr_chck.o real_malloc.o reclaim.o specific.o \<br> stubborn.o thread_local_alloc.o typd_mlc.o pthread_start.o \<br> pthread_support.o pthread_stop_world.o fnlz_mlc.o \<br> \<br> atomic_ops_sysdeps.o \<br> \<br> sparc_mach_dep.o \<br> \<br> -o libgc.foo -lpthread -lrt -ldl<br> <br> <br> Which works ( other than undefined symbols that must exist somewhere ) :<br= > <br> <br> mimas$ ./hack.sh<br> ### cc: Note: NLSPATH =3D /opt/solarisstudio12.4/bin/../<wbr>lib/locale/%L/= LC_MESSAGES/%N.c<wbr>at:/opt/solarisstudio12.4/bin/<wbr>../../lib/locale/%L= /LC_MESSAGE<wbr>S/%N.cat<br> ###=C2=A0 =C2=A0 =C2=A0command line files and options (expanded):<br> ### -# -H -m64 -xarch=3Dsparcvis -xchip=3Dultra2 -xcache=3Dgeneric -errwarn= =3D%none -errhdr=3D%user -erroff=3D%none -errtags=3Dyes -errfmt=3Derror -er= rshort=3Dfull -xstrconst -xmemalign=3D8s -xnolibmil -Xa -xcode=3Dpic32 -xre= gs=3Dno%appl -xlibmieee -mc -xdebuginfo=3Dline,param,variabl<wbr>e,tagtype,= codetag,decl -xglobalize=3Dyes -xpatchpadding=3Dfix -xkeep_unref=3Dfuncs,va= rs -xs=3Dyes -ftrap=3D%none -Qy -xbuiltin=3D%none -xdebugformat=3Ddwarf -xu= nroll=3D1 -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -L/u= sr/local/lib -L/usr/lib/lwp -R/usr/lib/lwp allchblk.o alloc.o blacklst.o ch= ecksums.o dbg_mlc.o dyn_load.o finalize.o gc_dlopen.o gcj_mlc.o headers.o m= ach_dep.o malloc.o mallocx.o mark.o mark_rts.o misc.o new_hblk.o obj_map.o = os_dep.o pcr_interface.o ptr_chck.o real_malloc.o reclaim.o specific.o stub= born.o thread_local_alloc.o typd_mlc.o pthread_start.o pthread_support.o pt= hread_stop_world.o fnlz_mlc.o atomic_ops_sysdeps.o sparc_mach_dep.o -olibgc= .foo -lpthread -lrt -ldl<br> ### cc: Note: LD_LIBRARY_PATH =3D (null)<br> ### cc: Note: LD_LIBRARY_PATH_64 =3D (null)<br> ### cc: Note: LD_RUN_PATH=C2=A0 =C2=A0 =C2=A0=3D /usr/local/lib<br> ### cc: Note: LD_OPTIONS=C2=A0 =C2=A0 =C2=A0 =3D -64 -L/usr/local/lib -R/us= r/local/lib<br> ln -s /opt/solarisstudio12.4/lib/com<wbr>pilers /tmp/lib_link.1479836266.19= 734<wbr>.01<br> /usr/ccs/bin/ld -zld32=3D-S/tmp/lib_link.1479836<wbr>266.19734.01/libldstab= _ws.so -zld64=3D-S/tmp/lib_link.1479836<wbr>266.19734.01/sparcv9/libldstab<= wbr>_ws.so -zld32=3D-S/tmp/lib_link.1479836<wbr>266.19734.01/libld_annotate= .so -zld64=3D-S/tmp/lib_link.1479836<wbr>266.19734.01/sparcv9/libld_<wbr>an= notate.so /opt/solarisstudio12.4/lib/com<wbr>pilers/sparcv9/crti.o /opt/sol= arisstudio12.4/lib/com<wbr>pilers/sparcv9/crt1.o /opt/solarisstudio12.4/lib= /com<wbr>pilers/sparcv9/values-xi.o -L/usr/local/lib -L/usr/lib/lwp allchbl= k.o alloc.o blacklst.o checksums.o dbg_mlc.o dyn_load.o finalize.o gc_dlope= n.o gcj_mlc.o headers.o mach_dep.o malloc.o mallocx.o mark.o mark_rts.o mis= c.o new_hblk.o obj_map.o os_dep.o pcr_interface.o ptr_chck.o real_malloc.o = reclaim.o specific.o stubborn.o thread_local_alloc.o typd_mlc.o pthread_sta= rt.o pthread_support.o pthread_stop_world.o fnlz_mlc.o atomic_ops_sysdeps.o= sparc_mach_dep.o -lpthread -lrt -ldl -o libgc.foo -Y "P,/opt/solariss= tudio12.4/lib/<wbr>compilers/staticlib/sparcv9:/o<wbr>pt/solarisstudio12.4/= lib/compi<wbr>lers/sparcvis/sparcv9:/opt/<wbr>solarisstudio12.4/lib/compile= r<wbr>s/sparcv9:/usr/ccs/lib/<wbr>sparcv9:/lib/64:/usr/lib/64" -Qy -R/= usr/lib/lwp -lc /opt/solarisstudio12.4/lib/com<wbr>pilers/sparcv9/crtn.o<br= > Undefined=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0first referenced<br> =C2=A0symbol=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0in file<br> main /opt/solarisstudio12.4/lib/com<wbr>pilers/sparcv9/crt1.o<br> AO_compare_double_and_swap_dou<wbr>ble_emulation allchblk.o<br> AO_fetch_compare_and_swap_emul<wbr>ation allchblk.o<br> AO_store_full_emulation=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0mark= .o<br> ld: fatal: symbol referencing errors. No output written to libgc.foo<br> mimas$<br> <br> <br> So the problem seems to be in the libatomic_ops region.<br> <br> <br> <br> Dennis<br> <br> <br> <br></div></div><div class=3D"HOEnZb"><div class=3D"h5"> -- <br> This message has been scanned for viruses and<br> dangerous content by MailScanner, and is<br> believed to be clean.<br> <br> </div></div></blockquote></div><br></div> --f46d04138bfbc74d340541fcd21c-- --===============1570209912== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ bdwgc mailing list [email protected] https://lists.opendylan.org/mailman/listinfo/bdwgc --===============1570209912==--