This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Arm cross gcc-3.4.0, glibc-2.3.2, binutils-1.1[45] build failure.


Hi,

Perhaps someone can help, please.

Building on a RH9.0 box, with either a RH9.0 gcc, or gcc-3.4.0 as the native compiler.
I get the same failure using binutils-2.14 or 2.15.  If I use gcc-3.3.2, the compile
works fine.

Here's the reported failure.

sed -n -e '1,/@HEADER_ENDS/p' \
-e '/@_.*_PROLOG_BEGINS/,/@_.*_PROLOG_ENDS/p' \
-e '/@TRAILER_BEGINS/,$p' /usr/src/xscale/glibc-2.3.2-bld/csu/initfini.s > /usr/src/xscale/glibc-2.3.2-bld/csu/crti.S
sed -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' /usr/src/xscale/glibc-2.3.2-bld/csu/initfini.s | \
gawk -f defs.awk > /usr/src/xscale/glibc-2.3.2-bld/csu/defs.h
arm-linux-gcc /usr/src/xscale/glibc-2.3.2-bld/csu/crti.S -c -I../include -I. -I/usr/src/xscale/glibc-2.3.2-bld/csu -I.. -I../libio -I/usr/src/xscale/glibc-2.3.2-bld -I../sysdeps/arm/elf -I../linuxthreads/sysdeps/unix/sysv/linux/arm -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/arm -I../sysdeps/unix/sysv/linux/arm -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/arm -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/arm -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /usr/local/xscale/3.4.0/lib/gcc/arm-linux/3.4.0/include -isystem /usr/src/xscale/elroy-jack/sw/linux-2.6.6/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DHAVE_INITFINI -DASSEMBLER -I/usr/src/xscale/glibc-2.3.2-bld/csu/. -g0 -o /usr/src/xscale/glibc-2.3.2-bld/csu/crti.o
/usr/src/xscale/glibc-2.3.2-bld/csu/crti.S: Assembler messages:
/usr/src/xscale/glibc-2.3.2-bld/csu/crti.S:96: Error: can't resolve `_GLOBAL_OFFSET_TABLE_' {*UND* section} - `.L7' {.text section}
/usr/src/xscale/glibc-2.3.2-bld/csu/crti.S:61: Error: internal_relocation (type: OFFSET_IMM) not fixed up
/usr/src/xscale/glibc-2.3.2-bld/csu/crti.S:62: Error: internal_relocation (type: OFFSET_IMM) not fixed up
/usr/src/xscale/glibc-2.3.2-bld/csu/crti.S:63: Error: internal_relocation (type: OFFSET_IMM) not fixed up
/usr/src/xscale/glibc-2.3.2-bld/csu/crti.S:64: Error: internal_relocation (type: OFFSET_IMM) not fixed up
make[2]: *** [/usr/src/xscale/glibc-2.3.2-bld/csu/crti.o] Error 1
make[2]: Leaving directory `/usr/src/xscale/glibc-2.3.2/csu'
make[1]: *** [csu/subdir_lib] Error 2
make[1]: Leaving directory `/usr/src/xscale/glibc-2.3.2'
make: *** [all] Error 2


Here's a summary of the build process:

../binutils-2.14/configure --target=arm-linux --prefix=/usr/local/xscale/3.4.0 --host=i686-pc-linux-gnu --with-cpu=xscale
make
make install

../gcc-3.4.0/configure --target=arm-linux --prefix=/usr/local/xscale/3.4.0 --host=i686-pc-linux-gnu --with-cpu=xscale \
--with-headers=/usr/src/xscale/elroy-jack/sw/linux-2.6.6/include --disable-shared --disable-threads --enable-languages=c \
--with-float=soft --disable-nls --enable--symvers=gnu --enable-__cxa_atexit
make
make install

../glibc-2.3.2/configure --host=arm-linux --build=i686-pc-linux-gnu \
--with-headers=/usr/src/xscale/elroy-jack/sw/linux-2.6.6/include  \
--enable-add-ons=linuxthreads --enable-shared --prefix=/usr/local/xscale/3.4.0 \
--with-cpu=xscale --without-fp --enable-kernel=2.6.6
make
make install

So what have I found out so far?
A file .../sysdeps/generic/initfini.c is run through the compiler and generates an assembler file ..../csu/initfini.s.

Below is a copy of initfini.s  It looks like the compiler did not do too good a job of generating it.
The gcc-3.3.2 compiler did a much better job.  Note how _BEGIN's and _END's are mixed up -
eg. PROLOG_BEGIN with EPILOG_END.  We all know what we can expect when this file is passed through sed - as shown in
the transscript snippet.

Anyone know what I can do to fix it.

Thanks

Jonathan

>>>>>>>>>>>>>>>>>>>>>>>>>>
        .file   "initfini.c"
#APP

#include "defs.h"

/*@HEADER_ENDS*/

/*@TESTS_BEGIN*/

/*@TESTS_END*/

/*@_init_PROLOG_BEGINS*/
        .section .init
        END_INIT

/*@_init_EPILOG_ENDS*/

/*@_fini_PROLOG_BEGINS*/
        .section .fini
        END_FINI

/*@_fini_EPILOG_ENDS*/

/*@TRAILER_BEGINS*/
        .text
        .align  2
        .global dummy
        .type   dummy, %function
dummy:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
        cmp     r0, #0
        str     lr, [sp, #-4]!
        ldreq   pc, [sp], #4
        mov     lr, pc
        mov     pc, r0
        ldr     pc, [sp], #4
        .align  2
        .global _init
        .type   _init, %function
_init:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
        stmfd   sp!, {sl, lr}
        ldr     sl, .L8
        ldr     r3, .L8+4
.L7:
        add     sl, pc, sl
        ldr     r3, [sl, r3]
        cmp     r3, #0
        movne   lr, pc
        movne   pc, r3
.L6:
#APP
        ALIGN
        END_INIT

/*@_init_PROLOG_ENDS*/

/*@_init_EPILOG_BEGINS*/
        .section .init
        ldmfd   sp!, {sl, pc}
.L9:
        .align  2
.L8:
        .word   _GLOBAL_OFFSET_TABLE_-(.L7+8)
        .word   __gmon_start__(GOT)
        .align  2
        .global _fini
        .type   _fini, %function
_fini:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
        str     lr, [sp, #-4]!
#APP
        ALIGN
        END_FINI

/*@_fini_PROLOG_ENDS*/
        bl      i_am_not_a_leaf(PLT)
#APP

/*@_fini_EPILOG_BEGINS*/
        .section .fini
        ldr     pc, [sp], #4
        .weak   __gmon_start__
        .ident  "GCC: (GNU) 3.4.0"


------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]