Re: Android Native GCC 4.9.2 Build Fails at Dynamic libgcc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux