[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/10259] ld generates bad long branch stubs
From: |
dave at hiauly1 dot hia dot nrc dot ca |
Subject: |
[Bug ld/10259] ld generates bad long branch stubs |
Date: |
17 Jun 2009 15:31:24 -0000 |
------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca
2009-06-17 15:31 -------
Subject: Re: ld generates bad long branch stubs
Hi Julian,
> I have tried to reproduce this, but not managed so far. I attempted to build
> current binutils head with current GCC head under an ARM full-system (Debian)
> qemu instance, using:
>
> binutils-build$ configure --prefix=/path/to/prefix
> binutils-build$ make; make install
>
> gcc-build$ configure --prefix=/path/to/prefix --enable-languages=c,c++
> gcc-build$ make bootstrap
>
> where:
>
> $ uname -a
> Linux armel 2.6.24-1-versatile #1 Sat Feb 23 08:09:20 UTC 2008 armv5tejl
> GNU/Linux
> $ cat /etc/debian_version
> lenny/sid
>
> Which gcc, binutils versions and/or configure options did you use? In
> particular, were you building for ARM mode or Thumb mode?
The system that I am using was built up from a Marvell BSP. It's
running on a RD-6281-A.
-bash-3.2$ uname -a
Linux feroceon 2.6.22.18 #1 Tue Dec 23 17:32:37 EST 2008 armv5tejl GNU/Linux
The binutils version that I am currently using is:
-bash-3.2$ as --version
GNU assembler (GNU Binutils) 2.19.51.20090522
I use the following to build binutils:
#! /bin/sh
export CC=gcc
export CXX=g++
unset CFLAGS
unset CXXFLAGS
unset LDFLAGS
unset FFLAGS
export CPPFLAGS="-I/home/dave/opt/gnu/include -D_LARGEFILE64_SOURCE"
export
PATH=/home/dave/opt/gnu/gcc/gcc-4.3.3/bin:/home/dave/opt/gnu/bin:/home/dave/opt/perl/bin:/bin:/usr/bin
date
../src/configure --prefix=/home/dave/opt/gnu --disable-nls &&
make &&
make -k check
date
My bootstrap compiler is:
-bash-3.2$ gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: ../gcc/configure --host=arm-none-linux-gnueabi
--target=arm-none-linux-gnueabi --build=arm-none-linux-gnueabi
--enable-languages=c,c++,fortran --enable-shared --enable-threads
--disable-multilib --disable-libmudflap --disable-libssp --enable-symvers=gnu
--enable-__cxa_atexit --disable-libstdcxx-pch --enable-checking=release
--prefix=/home/dave/opt/gnu/gcc/gcc-4.3.3 --with-gmp=/home/dave/opt/gnu
Thread model: posix
gcc version 4.3.3 (GCC)
-bash-3.2$ which gcc
My GCC build options are:
#! /bin/sh
unset AS
unset AR
unset CC
unset CXX
unset LD
unset NM
unset CFLAGS
unset CXXFLAGS
unset LDFLAGS
unset CPPFLAGS
export AS=as
export AR=ar
export CC=gcc
export CXX=g++
export LD=ld
export NM=nm
export CPPFLAGS=-I/home/dave/opt/gnu/include
export
PATH=/home/dave/opt/gnu/gcc/gcc-4.3.3/bin:/home/dave/opt/gnu/bin:/home/dave/opt/perl/bin:/bin:/usr/bin
date
../gcc/configure --host=armv5tejl-unknown-linux-gnueabi
--target=armv5tejl-unknown-linux-gnueabi
--build=armv5tejl-unknown-linux-gnueabi --enable-languages="c,c++,fortran"
--enable-shared --enable-threads --disable-multilib --disable-libmudflap
--disable-libssp --enable-symvers=gnu --enable-__cxa_atexit
--disable-libstdcxx-pch --prefix=/home/dave/opt/gnu/gcc/gcc-4.5.0
--with-gmp=/home/dave/opt/gnu &&
make bootstrap &&
make -k check
date
>
> (My build broke with a pile of errors like the following:
>
> libbackend.a(insn-automata.o): In function `VEC_rtx_base_quick_insert':
> /home/jules/mainline/gcc-build/gcc/../../gcc-trunk/gcc/rtl.h:199: relocation
> truncated to fit: R_ARM_CALL against symbol `memmove@@GLIBC_2.4' defined in
> .plt
> section in /usr/lib/gcc/arm-linux-gnueabi/4.3.3/../../../crti.o
>
> so I guess I did something wrong somewhere.)
I believe this is the long branch stub problem. You may be able to
work around it by adding --disable-stage1-checking to your GCC configure
options. Another work around is to use binutils with the tag
D2009.05.22.11.00.00 UTC. This is just before the change that breaks
binutils for me.
I'm building for arm.
Dave
--
http://sourceware.org/bugzilla/show_bug.cgi?id=10259
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.