[Gc] gc make fail on Solaris 10 x86_64 with gcc-3.* & -m64 option

Kiyoshi KANAZAWA yoi_no_myoujou at yahoo.co.jp
Sat Mar 31 21:28:57 PST 2012

Hi, Ivan,

I may encountered some problem again with "release" branch.

"Segmentation Fault" happened in building guile-2.0.5 with -m64 option.

It seems to happen in os_dep.c of GC function:
What I checked is:
% pwd
% ldd guile
        libguile-2.0.so.22 =>    /tmp/guile-2.0.5/libguile/.libs/libguile-2.0.so.22
        libgc.so.1 =>    /usr/local/GNU/amd64/lib/libgc.so.1
        libpthread.so.1 =>       /usr/lib/amd64/libpthread.so.1
        libdl.so.1 =>    /usr/lib/amd64/libdl.so.1
        libffi.so.5 =>   /usr/local/GNU/amd64/lib/libffi.so.5
        libintl.so.8 =>  /usr/local/GNU/amd64/lib/libintl.so.8
        libc.so.1 =>     /usr/lib/amd64/libc.so.1
        libunistring.so.0 =>     /usr/local/GNU/amd64/lib/libunistring.so.0
        libiconv.so.2 =>         /usr/local/GNU/amd64/lib/libiconv.so.2
        libgmp.so.10 =>  /usr/local/GNU/amd64/lib/libgmp.so.10
        libltdl.so.7 =>  /usr/local/GNU/amd64/lib/libltdl.so.7
        librt.so.1 =>    /usr/lib/amd64/librt.so.1
        libsocket.so.1 =>        /usr/lib/amd64/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/amd64/libnsl.so.1
        libm.so.2 =>     /usr/lib/amd64/libm.so.2
        libgcc_s.so.1 =>         /usr/local/gcc/lib/amd64/libgcc_s.so.1
        libaio.so.1 =>   /usr/lib/amd64/libaio.so.1
        libmd.so.1 =>    /usr/lib/amd64/libmd.so.1
        libmp.so.2 =>    /usr/lib/amd64/libmp.so.2
        libscf.so.1 =>   /usr/lib/amd64/libscf.so.1
        libdoor.so.1 =>  /usr/lib/amd64/libdoor.so.1
        libuutil.so.1 =>         /usr/lib/amd64/libuutil.so.1
        libgen.so.1 =>   /usr/lib/amd64/libgen.so.1

libpthread.so.1 is linked to /usr/lib/amd64/libpthread.so.1 in the 3rd line.
Is this strange ?

% dbx guile
(dbx) run                                                                    
Running: guile 
(process id 742)
t at 1 (l at 1) signal SEGV (no mapping at the fault address) in GC_SysVGetDataStart at line 1859 in file "os_dep.c"
 1859           *result = *result;
(dbx) print result
result = 0x402270 "<bad address 0x0000000000402270>"

"os_dep.o" is compiled and linked to .libs/libgc.so.1.0.3: in make log:
libtool: compile:  gcc -O2 -m64 -DHAVE_CONFIG_H -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src -fexceptions -g -O2 -fno-strict-aliasing -MT os_dep.lo -MD -MP -MF .deps/os_dep.Tpo -c os_dep.c  -fPIC -DPIC -o .libs/os_dep.o
libtool: compile:  gcc -O2 -m64 -DHAVE_CONFIG_H -I./include -I./include -I./libatomic_ops/src -I./libatomic_ops/src -fexceptions -g -O2 -fno-strict-aliasing -MT os_dep.lo -MD -MP -MF .deps/os_dep.Tpo -c os_dep.c -o os_dep.o >/dev/null 2>&1
libtool: link: gcc -O2 -m64 -shared  -fPIC -DPIC -Wl,-z -Wl,text -Wl,-h -Wl,libgc.so.1 -o .libs/libgc.so.1.0.3  .libs/allchblk.o .libs/alloc.o .libs/blacklst.o .libs/checksums.o .libs/dbg_mlc.o .libs/dyn_load.o .libs/finalize.o .libs/gc_dlopen.o .libs/gcj_mlc.o .libs/headers.o .libs/malloc.o .libs/mallocx.o .libs/mark.o .libs/mark_rts.o .libs/misc.o .libs/new_hblk.o .libs/obj_map.o .libs/os_dep.o .libs/pcr_interface.o .libs/ptr_chck.o .libs/real_malloc.o .libs/reclaim.o .libs/specific.o .libs/stubborn.o .libs/typd_mlc.o .libs/backgraph.o .libs/thread_local_alloc.o .libs/pthread_start.o .libs/pthread_support.o .libs/pthread_stop_world.o .libs/atomic_ops.o .libs/mach_dep.o   -R/usr/lib/lwp/amd64 -L/usr/local/GNU/amd64/lib -L/usr/lib/lwp/amd64 -lpthread -lrt -ldl -lc  -mtune=athlon64 -msse3 -mno-3dnow -msse -mfpmath=sse -O2 -m64 -O2  

Do you have any suggestion ?


--- Kiyoshi <yoi_no_myoujou at yahoo.co.jp>

More information about the Gc mailing list