bdwgc icon indicating copy to clipboard operation
bdwgc copied to clipboard

SIGSEGV of a2ps when compiled against bdw-gc on Solaris

Open l1gi opened this issue 5 months ago • 17 comments

Hello,

I am trying to upgrade to a recent version of a2ps where bdw-gc is a mandatory dependency. I have successfully built and tested bdw-gc on recent Solaris:

$ gmake check
...
/bin/bash ./libtool  --tag=CC   --mode=link /usr/gcc/13/bin/gcc   -fexceptions -DGC_VISIBILITY_HIDDEN_SET -fvi
sibility=hidden -Wall -Wextra -Wpedantic -Wno-long-long -m64 -fPIC -DPIC -O3 -ffile-prefix-map=/scratch/userla
nd-gate/components/bdw-gc=. -fno-strict-aliasing -Wno-frame-address    -o disclaim_weakmap_test tests/disclaim_weakmap_test.o  ./libgc.la  -lpthread -lrt -ldl 
libtool: link: /usr/gcc/13/bin/gcc -fexceptions -DGC_VISIBILITY_HIDDEN_SET -fvisibility=hidden -Wall -Wextra -
Wpedantic -Wno-long-long -m64 -fPIC -DPIC -O3 -ffile-prefix-map=/scratch/userland-gate/components/bdw-gc=. -fn
o-strict-aliasing -Wno-frame-address -o .libs/disclaim_weakmap_test tests/disclaim_weakmap_test.o  ./.libs/lib
gc.so -lpthread -lrt -ldl -R/usr/lib/amd64          
make[3]: 'libstaticrootslib_test.la' is up to date.  
make[3]: 'libstaticrootslib2_test.la' is up to date.
make[3]: Leaving directory '/scratch/userland-gate/components/bdw-gc/build/amd64'
/usr/gnu/bin/make  check-TESTS                                                                                
make[3]: Entering directory '/scratch/userland-gate/components/bdw-gc/build/amd64'
make[4]: Entering directory '/scratch/userland-gate/components/bdw-gc/build/amd64'
PASS: cordtest                                         
PASS: gctest                                           
PASS: leaktest                                         
PASS: middletest                                                                                              
PASS: smashtest                                        
PASS: hugetest                                                                                                
PASS: realloc_test                                                                                            
PASS: staticrootstest                                                                                         
PASS: test_atomic_ops                                                                                         
PASS: threadleaktest                                                                                          
PASS: threadkey_test                                                                                          
PASS: subthreadcreate_test                                                                                    
PASS: initsecondarythread_test                        
PASS: disclaim_test                                    
PASS: disclaim_bench                                   
PASS: disclaim_weakmap_test                                                                                   
============================================================================   
Testsuite summary for gc 8.2.8
============================================================================                                  
# TOTAL: 16                                                                                                   
# PASS:  16                                            
# SKIP:  0                                                                                                    
# XFAIL: 0                                                                                                    
# FAIL:  0                                             
# XPASS: 0                                                                                                    
# ERROR: 0                                                                                                    
============================================================================
make[4]: Leaving directory '/scratch/userland-gate/components/bdw-gc/build/amd64'

a2ps configure script has found libgc.so.1 and the whole package has built without issues. I am getting following SIGSEGV after trying to run the binary built:

Reading symbols from build/prototype/i386/usr/bin/a2ps...
(gdb) r
Starting program: /scratch/userland-gate/components/a2ps/build/prototype/i386/usr/bin/a2ps 
[Thread debugging using libthread_db enabled]
warning: could not convert 'mutex_t' from the host encoding (ISO-8859-1) to UTF-32.
This normally should not happen, please file a bug report.
[New Thread 1 (LWP 1)]

Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0x00007fdec8425491 in GC_SysVGetDataStart () from /usr/lib/64/libgc.so.1
(gdb) bt
#0  0x00007fdec8425491 in GC_SysVGetDataStart () from /usr/lib/64/libgc.so.1
#1  0x00007fdec84258d3 in GC_init () from /usr/lib/64/libgc.so.1
#2  0x00007fdec8426a32 in GC_generic_malloc_inner () from /usr/lib/64/libgc.so.1
#3  0x00007fdec8427ddf in GC_generic_malloc () from /usr/lib/64/libgc.so.1
#4  0x00007fdec84281fd in GC_malloc_kind_global () from /usr/lib/64/libgc.so.1
#5  0x00007fdec8e67a2a in rpl_malloc (n=5) at ./build/amd64/lib/malloc.c:43
#6  0x00007fdec8e63dfb in imalloc (s=5) at ./build/amd64/lib/ialloc.h:51
#7  0x00007fdec8e67432 in ximalloc (s=5) at ./build/amd64/lib/xmalloc.c:51
#8  0x00007fdec8e638df in base_name (
    name=0x7fed2e720cf0 "/scratch/userland-gate/components/a2ps/build/prototype/i386/usr/bin/a2ps")
    at ./build/amd64/lib/basename.c:53
#9  0x00007fdec8e30d01 in main (argc=1, argv=0x7fed2e720a98) at ./build/amd64/src/main.c:922
(gdb) 

Could you help me with debugging the issue, please? Should you need more information, dont't hesitate to ask.

Thank you, m.

l1gi avatar Sep 23 '24 15:09 l1gi