On Wed, 2015-01-07 at 12:17 +0000, Andrew Haley wrote: > On 01/07/2015 12:14 PM, Cyd Haselton wrote: > > Here goes. > > You mailer mangled that. As an attachment please. > > Andrew. > Below is the relevant command I saw in the attachment (most .o filenames redacted)... It ends with fakechroot: dlopen: undefined symbol: dlopen collect2: error: ld returned 1 exit status make: *** [libgcc_s.so] Error 1 which I think reinforces your hypothesis that it is the ld program itself which fails, rather than anything in the files being linked. I don't know if Cyd cc'ed you this message... (I'll forward it to the list) ---------------------------------------------------------------------- > The following is a quote from the developer who created the > environment I'm using: > > "Using libfakechroot to virtualize a root filesystem is a bit of a > hack, to be honest, and its weaknesses are easily exposed. Most > obviously, it will only filter dynamic calls to the Bionic C library > (because that was the C library it itself is linked against). ... > I've been in contact with him regarding a number of other ports and > he's confirmed that reverting to static linking would be a pain. > > Also, iIn case anyone reading this is interested: > http://kevinboone.net/kbox2_how_it_works.html ---------------------------------------------------------------------- which makes me wonder about Bionic's support for dlopen(). Cyd confirmed that he uses the same binutils version for 4.8 and 4.9 so we may be looking at a failure in a 2-step process (a) 4.9 assumes some capability from ld that 4.8 doesn't, which requires a DLL to be opened (b) fakechroot layered over Bionic is failing to implement that capability (we know from nm that dlopen is undefined in Cyd's libfakechroot.so) Step (a) may be within the remit of gcc-help, what is the difference and can it be worked round) but step (b) probably lies elsewhere : as a first step, enquire about the missing dlopen() in fakechroot. -- Brian Failing command... ------------------------------------------------------------------------------------------- /bld/gcc/builddir-4.9/./gcc/xgcc -v -Wl,--verbose -B/bld/gcc/builddir-4.9/./gcc/ -B/usr/gcc-4.9.2/arm-linux-androideabi/bin/ -B/usr/gcc-4.9.2/arm-linux-androideabi/lib/ -isystem /usr/gcc-4.9.2/arm-linux-androideabi/include -isystem /usr/gcc-4.9.2/arm-linux-androideabi/sys-include --sysroot=/usr/gcc-4.9.2/sysroot -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -fno-inline -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -Wall -O -mandroid -mbionic -B./ _thumb1_case_sqi_s.o _thumb1_case_uqi_s.o _thumb1_case_shi_s.o _thumb1_case_uhi_s.o _thumb1_case_si_s.o _udivsi3_s.o _divsi3_s.o _umodsi3_s.o _modsi3_s.o _bb_init_func_s.o _call_via_rX_s.o _interwork_call_via_rX_s.o _lshrdi3_s.o _ashrdi3_s.o _ashldi3_s.o _arm_negdf2_s.o _arm_addsubdf3_s.o _arm_muldivdf3_s.o _arm_cmpdf2_s.o ... divdf3_s.o eqdf2_s.o gedf2_s.o ledf2_s.o muldf3_s.o negdf2_s.o subdf3_s.o unorddf2_s.o fixdfsi_s.o floatsidf_s.o floatunsidf_s.o extendsfdf2_s.o truncdfsf2_s.o enable-execute-stack_s.o unwind-arm_s.o libunwind_s.o pr-support_s.o unwind-c_s.o emutls_s.o libgcc.a -lc -ldl && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && (echo "/* GNU ld script"; echo " Use the shared library, but some functions are only in"; echo " the static library. */"; echo "GROUP ( libgcc_s.so.1 -ldl -lgcc )" ) > ./libgcc_s.so Reading specs from /bld/gcc/builddir-4.9/./gcc/specs COLLECT_GCC=/bld/gcc/builddir-4.9/./gcc/xgcc COLLECT_LTO_WRAPPER=/bld/gcc/builddir-4.9/./gcc/lto-wrapper Target: arm-linux-androideabi Configured with: ../gcc-4.9.2/configure --prefix=/usr/gcc-4.9.2 --build=arm-linux-androideabi --host=arm-linux-androideabi --target=arm-linux-androideabi --with-gmp=/usr/gcc-4.9.2 --with-mpfr=/usr/gcc-4.9.2 --with-mpc=/usr/gcc-4.9.2 --disable-ld --with-as=/usr/gcc-4.9.2/bin/as --with-ld=/usr/gcc-4.9.2/bin/ld --enable-shared --enable-languages=c,c++ --disable-gold --disable-fortran --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libada --disable-werror --disable-multilib --disable-libgomp --disable-cloog --with-build-time-tools=/usr/gcc-4.9.2/bin --with-build-sysroot=/usr/gcc-4.9.2/sysroot CC='gcc --sysroot=/usr/gcc-4.8.3/sysroot' CFLAGS='-Wall -O -mandroid -mbionic' LDFLAGS='-Wl,--dynamic-linker=/system/bin/linker -lc -ldl -lgcc -lm -lsupc++ -lgnustl_shared' LIBCFLAGS='-O2 -mandroid -mbionic' LIBCPPFLAGS='-O2 -mandroid -mbionic' LIBCXXFLAGS='-O2 -mandroid -mbionic -fno-implicit-templates' LIBS='-lc -ldl -lgcc -lm -lsupc++ -lgnustl_shared' Thread model: posix gcc version 4.9.2 (GCC) COMPILER_PATH=/bld/gcc/builddir-4.9/./gcc/:/usr/gcc-4.9.2/arm-linux-androideabi/bin/:/usr/gcc-4.9.2/arm-linux-androideabi/lib/:./ LIBRARY_PATH=/bld/gcc/builddir-4.9/./gcc/:/usr/gcc-4.9.2/arm-linux-androideabi/bin/:/usr/gcc-4.9.2/arm-linux-androideabi/lib/:./:/usr/gcc-4.9.2/sysroot/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-B' '/bld/gcc/builddir-4.9/./gcc/' '-B' '/usr/gcc-4.9.2/arm-linux-androideabi/bin/' '-B' '/usr/gcc-4.9.2/arm-linux-androideabi/lib/' '-isystem' '/usr/gcc-4.9.2/arm-linux-androideabi/include' '-isystem' '/usr/gcc-4.9.2/arm-linux-androideabi/sys-include' '-O2' '-D' 'IN_GCC' '-Wextra' '-Wno-narrowing' '-Wwrite-strings' '-Wcast-qual' '-Wformat=0' '-Wstrict-prototypes' '-Wmissing-prototypes' '-Wold-style-definition' '-isystem' './include' '-fPIC' '-fno-inline' '-g' '-D' 'IN_LIBGCC2' '-fbuilding-libgcc' '-fno-stack-protector' '-shared' '-nodefaultlibs' '-o' './libgcc_s.so.1.tmp' '-g' '-O2' '-Wall' '-O' '-mandroid' '-mbionic' '-B' './' '-mtls-dialect=gnu' /bld/gcc/builddir-4.9/./gcc/collect2 -plugin /bld/gcc/builddir-4.9/./gcc/liblto_plugin.so -plugin-opt=/bld/gcc/builddir-4.9/./gcc/lto-wrapper -plugin-opt=-fresolution=/data/data/jackpal.androidterm/kbox2/tmp/cc757Z3H.res --sysroot=/usr/gcc-4.9.2/sysroot --eh-frame-hdr -shared -dynamic-linker /system/bin/linker -X -m armelf_linux_eabi -Bsymbolic -o ./libgcc_s.so.1.tmp /usr/gcc-4.9.2/sysroot/usr/lib/crtbegin_so.o -L/bld/gcc/builddir-4.9/./gcc -L/usr/gcc-4.9.2/arm-linux-androideabi/bin -L/usr/gcc-4.9.2/arm-linux-androideabi/lib -L. -L/usr/gcc-4.9.2/sysroot/usr/lib --verbose --soname=libgcc_s.so.1 --version-script=libgcc.map _thumb1_case_sqi_s.o _thumb1_case_uqi_s.o _thumb1_case_shi_s.o _thumb1_case_uhi_s.o _thumb1_case_si_s.o _udivsi3_s.o _divsi3_s.o _umodsi3_s.o _modsi3_s.o _bb_init_func_s.o _call_via_rX_s.o _interwork_call_via_rX_s.o _lshrdi3_s.o _ashrdi3_s.o _ashldi3_s.o _arm_negdf2_s.o _arm_addsubdf3_s.o _arm_muldivdf3_s.o _arm_cmpdf2_s.o ... divdf3_s.o eqdf2_s.o gedf2_s.o ledf2_s.o muldf3_s.o negdf2_s.o subdf3_s.o unorddf2_s.o fixdfsi_s.o floatsidf_s.o floatunsidf_s.o extendsfdf2_s.o truncdfsf2_s.o enable-execute-stack_s.o unwind-arm_s.o libunwind_s.o pr-support_s.o unwind-c_s.o emutls_s.o libgcc.a -lc -ldl /usr/gcc-4.9.2/sysroot/usr/lib/crtend_so.o fakechroot: dlopen: undefined symbol: dlopen collect2: error: ld returned 1 exit status make: *** [libgcc_s.so] Error 1 -------------------------------------------------------------------------------------------