On Fri, Jan 2, 2015 at 5:55 AM, Andrew Haley <aph@xxxxxxxxxx> wrote: > On 01/02/2015 11:48 AM, Cyd Haselton wrote: >> On Fri, Jan 2, 2015 at 4:38 AM, Andrew Haley <aph@xxxxxxxxxx> wrote: >>> On 01/02/2015 10:32 AM, Cyd Haselton wrote: >>> >>> Okay, so if the commands are identical you need to run them by hand in >>> the correct directory to see what is different. if the command which >>> failed in 4.9 is exactly the same as the command which succeeded >>> in 4.8 its input files must be different, and in particular dlopen() >>> must be defined in one of the input files or the user of dlopen() >>> must not be there in 4.8. >>> >> Thanks to the inability to write to extednal storage there is not much >> space to work with on my android device. Keeping both the 4.8.4 and >> the 4.9.2 builds plus the build GCC on device eats up nearly all of >> it. > > Sure, but it never even occurred to me that having gone this far you'd > delete the build tree! That's the problem with trying to debug > problems like this by mail. If you can login to the device then you > can copy a tree from it, I would have thought. > >> That being said... >> >> I still have the build logs and therefore the commands for the libgcc >> link, but the list of input files is huge. I can review them, but if I >> need to post them here should I use a link to a file or just copy and >> paste everything? > > Neither. Sorry, I think you need to be able to run the commands by > hand. I can't think of any other way: we really need to be able to > compare the working and non-working trees. > > Andrew. 4.8.4 build to libgcc is complete. There's a small problem...there are a number of commands run after the libgcc objects are build but before they are linked. Simply running the last command throws a lot of "multiple definition" errors so i'm pasting the series of commands here MINUS the huge list of objects. Which one of these should I run manually? cat libgcc-std.ver ../../../gcc-4.8.4/libgcc/config/libgcc-glibc.ver ../../../gcc-4.8.4/libgcc/config/arm/libgcc-bpabi.ver \ | sed -e '/^[ ]*#/d' \ -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \ | /bld/gcc/builddir-4.8/./gcc/xgcc -B/bld/gcc/builddir-4.8/./gcc/ -B/usr/gcc-4.8.4/arm-linux-androideabi/bin/ -B/usr/gcc-4.8.4/arm-linux-androideabi/lib/ -isystem /usr/gcc-4.8.4/arm-linux-androideabi/include -isystem /usr/gcc-4.8.4/arm-linux-androideabi/sys-include --sysroot=/usr/gcc-4.8.4/sysroot -g -O2 -Wall -O -mandroid -mbionic -O2 -g -O2 -Wall -O -mandroid -mbionic -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -fno-inline -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -fno-inline -I. -I. -I../.././gcc -I../../../gcc-4.8.4/libgcc -I../../../gcc-4.8.4/libgcc/. -I../../../gcc-4.8.4/libgcc/../gcc -I../../../gcc-4.8.4/libgcc/../include -DHAVE_CC_TLS -E -xassembler-with-cpp -; \ } | gawk -f ../../../gcc-4.8.4/libgcc/mkmap-symver.awk > tmp-libgcc.map mv tmp-libgcc.map libgcc.map # @multilib_flags@ is still needed because this may use # /bld/gcc/builddir-4.8/./gcc/xgcc -B/bld/gcc/builddir-4.8/./gcc/ -B/usr/gcc-4.8.4/arm-linux-androideabi/bin/ -B/usr/gcc-4.8.4/arm-linux-androideabi/lib/ -isystem /usr/gcc-4.8.4/arm-linux-androideabi/include -isystem /usr/gcc-4.8.4/arm-linux-androideabi/sys-include --sysroot=/usr/gcc-4.8.4/sysroot and -O2 -g -O2 -Wall -O -mandroid -mbionic -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -fno-inline -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector directly. # @multilib_dir@ is not really necessary, but sometimes it has # more uses than just a directory name. /android_root/system/bin/sh ../../../gcc-4.8.4/libgcc/../mkinstalldirs . /bld/gcc/builddir-4.8/./gcc/xgcc -B/bld/gcc/builddir-4.8/./gcc/ -B/usr/gcc-4.8.4/arm-linux-androideabi/bin/ -B/usr/gcc-4.8.4/arm-linux-androideabi/lib/ -isystem /usr/gcc-4.8.4/arm-linux-androideabi/include -isystem /usr/gcc-4.8.4/arm-linux-androideabi/sys-include --sysroot=/usr/gcc-4.8.4/sysroot -O2 -g -O2 -Wall -O -mandroid -mbionic -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -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./ *.o libgcc.a -lc && 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 -lgcc )" ) > ./libgcc_s.so