Hi, I'm cross-compiling DirectFB 1.2.3 on an ARC processor (arc-uclibc-linux). In the beginning I got a "multiple definition" error with __init() and __fini(), since 'make' was trying to create libfusion.so-1.2.so.0.3.0, linking it against crti.o and libdirect.so (which was already linked to crti.o). I got rid of this error by modifying my libtool script around line 2800:
# Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # HACK NOT TO LINK linklib AGAINST crti.o # MODIFIED (ADDED) found_libfusion="no" linklib=$linklib\ -nostartfiles # MODIFIED (ADDED) echo "[ $LINENO ] --> linklib: $linklib" # MODIFIED (ADDED) # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then (etc...) This removed crti.o from the linking process... I hope it works. Now I have another - more annoying - error when making libdirectfb-1.2.so.0.3.0: /opt/arc-uclibc-candidate8/bin/arc-linux-uclibc-gcc -shared .libs/directfb.o .libs/idirectfb.o -Wl,--whole-archive display/.libs/libdirectfb_display.a media/.libs/libdirectfb_media.a windows/.libs/libdirectfb_windows.a input/.libs/libdirectfb_input.a misc/.libs/libdirectfb_misc.a gfx/.libs/libdirectfb_gfx.a core/.libs/libdirectfb_core.a -Wl,--no-whole-archive -Wl,--rpath -Wl,/home/piero/vixs/DirectFB-1.2.3/lib/direct/.libs -Wl,--rpath -Wl,/home/piero/vixs/DirectFB-1.2.3/lib/fusion/.libs -Wl,--rpath -Wl,/home/piero/vixs/staging/lib -L/opt/arc-uclibc-candidate8/lib -lz -nostartfiles ../lib/direct/.libs/libdirect.so ../lib/fusion/.libs/libfusion.so -ldl -lpthread -Wl,-soname -Wl,libdirectfb-1.2.so.0 -o .libs/libdirectfb-1.2.so.0.3.0 ../lib/fusion/.libs/libfusion.so: In function `direct_debug_exit': (.text+0x5c08): multiple definition of `direct_debug_exit' ../lib/direct/.libs/libdirect.so:(.text+0x198c): first defined here ../lib/fusion/.libs/libfusion.so: In function `direct_thread_set_name': (.text+0x10f04): multiple definition of `direct_thread_set_name' ../lib/direct/.libs/libdirect.so:(.text+0xcc88): first defined here ../lib/fusion/.libs/libfusion.so: In function `direct_trace_print_stack': (.text+0xfea4): multiple definition of `direct_trace_print_stack' ../lib/direct/.libs/libdirect.so:(.text+0xbc28): first defined here ../lib/fusion/.libs/libfusion.so: In function `direct_thread_cancel': (.text+0x10a48): multiple definition of `direct_thread_cancel' ../lib/direct/.libs/libdirect.so:(.text+0xc7cc): first defined here ../lib/fusion/.libs/libfusion.so: In function `direct_tree_lookup': (.text+0x10570): multiple definition of `direct_tree_lookup' ../lib/direct/.libs/libdirect.so:(.text+0xc2f4): first defined here ../lib/fusion/.libs/libfusion.so: In function `direct_hash_create': (.text+0x66c0): multiple definition of `direct_hash_create' ../lib/direct/.libs/libdirect.so:(.text+0x2444): first defined here ../lib/fusion/.libs/libfusion.so: In function `__divdi3': (.text+0x12974): multiple definition of `__divdi3' ../lib/direct/.libs/libdirect.so:/tmp/candidate8/gcc/build/gcc/../../src/gcc/libgcc2.c:1063: first defined here ../lib/fusion/.libs/libfusion.so: In function `direct_modules_explore_directory': (.text+0x971c): multiple definition of `direct_modules_explore_directory' ../lib/direct/.libs/libdirect.so:(.text+0x54a0): first defined here ../lib/fusion/.libs/libfusion.so: In function `__SDATA_BEGIN__': (.bss+0x0): multiple definition of `stdout' [continues........] So here's the situation: sources + crti.o => libdirect.so [MADE] sources + (crti.o) + libdirect.so => libfusion.so [FIXED ERRORS] sources + (crti.o) + libdirect.so + libfusion.so => libdirectfb.so [ERRORS!] Any suggestion on how can I fix this errors? Regards, Piero _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev