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&#39=
;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>&gt;</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&#39;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: &#39;libatomic_ops/src/atomic_ops_<wbr>sysdeps.=
lo&#39; 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&#39;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__) &amp;&amp; (defined(sparc) || defined(__sparc))<br>
#=C2=A0 include &quot;atomic_ops/sylibatomic_ops/sr<wbr>c/atomic_ops_sysdep=
s.sdeps/sun<wbr>c/sparc.S&quot;<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 &gt;/dev/null 2&gt;&amp;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: &#39;libatomic_ops/src/atomic_ops_<wbr>sysdeps.=
lo&#39; is not a valid libtool object<br>
<br>
<br>
So this is quite strange. The absence of the weird &quot;.lo&quot; 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 &quot;atomic_ops_sysdeps&quot;<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 &quot;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&quot; -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==--