Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 499162

Summary: dev-libs/boehm-gc-7.4.0 breaks building dev-lisp/ecls
Product: Gentoo Linux Reporter: Steven Trogdon <strogdon>
Component: [OLD] LibraryAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: RESOLVED DUPLICATE    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: ecls build log
maxima build log

Description Steven Trogdon 2014-01-24 20:49:17 UTC
The ecls I have installed is dev-lisp/ecls-12.12.1-r5. This also breaks building of sci-mathematics/maxima since maxima links against ecls. The error that's presented in building ecls is:

x86_64-pc-linux-gnu-ranlib ../libeclmin.a
if test -f ../CROSS-DPP ; then ../CROSS-DPP /var/tmp/portage/dev-lisp/ecls-12.12.1-r5/work/ecl-12.12.1/src/c/cinit.d cinit.c ; else ./dpp /var/tmp/p
ortage/dev-lisp/ecls-12.12.1-r5/work/ecl-12.12.1/src/c/cinit.d cinit.c ; fi
dpp: /var/tmp/portage/dev-lisp/ecls-12.12.1-r5/work/ecl-12.12.1/src/c/cinit.d -> cinit.c
x86_64-pc-linux-gnu-gcc -I. -I/var/tmp/portage/dev-lisp/ecls-12.12.1-r5/work/ecl-12.12.1/build -I/var/tmp/portage/dev-lisp/ecls-12.12.1-r5/work/ecl-
12.12.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY    -g -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -march=native -O2 -pipe -fPIC -D_THREAD_SAFE -Dlinux
-c -I./ cinit.c -o ../cinit.o
make[2]: Leaving directory `/var/tmp/portage/dev-lisp/ecls-12.12.1-r5/work/ecl-12.12.1/build/c'
if [ -f CROSS-COMPILER ]; then \
        touch ecl_min; \
else \
        x86_64-pc-linux-gnu-gcc -g -Wl,-O1 -Wl,--as-needed  -o ecl_min cinit.o c/all_symbols.o -L./ libeclmin.a -latomic_ops -leclffi  -lgmp -lgc -l
pthread -ldl  -lm ;\
fi
libeclmin.a(alloc_2.o): In function `init_alloc':
/var/tmp/portage/dev-lisp/ecls-12.12.1-r5/work/ecl-12.12.1/src/c/alloc_2.d:1093: undefined reference to `GC_start_call_back'
libeclmin.a(alloc_2.o): In function `si_gc_stats':
/var/tmp/portage/dev-lisp/ecls-12.12.1-r5/work/ecl-12.12.1/src/c/alloc_2.d:1216: undefined reference to `GC_print_stats'
/var/tmp/portage/dev-lisp/ecls-12.12.1-r5/work/ecl-12.12.1/src/c/alloc_2.d:1239: undefined reference to `GC_print_stats'
/var/tmp/portage/dev-lisp/ecls-12.12.1-r5/work/ecl-12.12.1/src/c/alloc_2.d:1232: undefined reference to `GC_print_stats'

and when building maxima the error that's presented is:

test -d binary-sbcl/numerical/slatec || mkdir binary-sbcl/numerical/slatec
"sbcl" --noinform --noprint --no-sysinit --no-userinit --eval '(progn (load "../lisp-utils/defsystem.lisp") (funcall (intern (symbol-name :operate-on-system) :mk) "maxi
ma" :compile :verbose t) (sb-ext:quit))' && \
"sbcl" --noinform --noprint --no-sysinit --no-userinit --eval '(progn (load "../lisp-utils/defsystem.lisp") (funcall (intern (symbol-name :operate-on-system) :mk) "maxi
ma" :load :verbose t) (sb-ext:save-lisp-and-die "binary-sbcl/maxima.core") (sb-ext:quit))'
;; Loading file ../lisp-utils/defsystem.lisp ...ecl: symbol lookup error: /usr/lib64/libecl.so.12.12: undefined symbol: GC_start_call_back
make[1]: *** [binary-ecl/maxima] Error 127
make[1]: *** Waiting for unfinished jobs....

The GC_start_* and GC_print_* symbols are provided by boehm-gc, at least they are present in dev-libs/boehm-gc-7.2e

# nm -D /usr/lib64/libgc.so | grep GC_start
0000000000227ea8 B GC_start_call_back
000000000001ccf0 T GC_start_routine
0000000000227ec0 B GC_start_time

# nm -D /usr/lib64/libgc.so | grep GC_print
000000000001a090 T GC_print_address_map
000000000000ecf0 T GC_print_all_smashed_proc
000000000001ad40 T GC_print_block_descr
000000000001add0 T GC_print_block_list
000000000001ae20 T GC_print_free_list
000000000000ba30 T GC_print_hblkfreelist
000000000000db40 T GC_print_heap_sects
000000000000eb90 T GC_print_obj
000000000000ec10 T GC_print_smashed_obj
0000000000016330 T GC_print_static_roots
00000000002381d4 B GC_print_stats
000000000000ea60 T GC_print_type
0000000000017850 T GC_printf

but are not present in dev-libs/boehm-gc-7.4.0

# nm -D /usr/lib64/libgc.so | grep GC_start
0000000000019250 T GC_start_mark_threads

# nm -D /usr/lib64/libgc.so | grep GC_print
0000000000013570 T GC_printf

My boehm-gc is:

# emerge -pv boehm-gc
[ebuild   R    ] dev-libs/boehm-gc-7.2e  USE="cxx threads -static-libs" 0 kB
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2014-01-24 20:55:13 UTC

*** This bug has been marked as a duplicate of bug 496780 ***
Comment 2 Steven Trogdon 2014-01-24 21:01:44 UTC
Created attachment 368642 [details]
ecls build log
Comment 3 Steven Trogdon 2014-01-24 21:02:22 UTC
Created attachment 368644 [details]
maxima build log
Comment 4 Steven Trogdon 2014-01-24 21:03:38 UTC
Sorry for all the noise.
Comment 5 Steven Trogdon 2014-01-24 23:06:49 UTC
The ecls patch, 13.5.1-gc74.patch from bug 496780 also applies cleanly to ecls-12.12.1-r5. Should 12.12.1-r5 be bumped as was 13.5.1 or is such only reserved for the most recent unstable ebuild. ecls-12.12.1-r5 will not build against boehm-gc-7.4.0 unless the patch is applied. With the patch ecls-12.12.1-r5 builds against <=boehm-gc-7.4.0