Binutils build directory path limitation?

David Wuertele dave+gmane@wuertele.com
Fri Sep 5 21:34:00 GMT 2008


I need to write scripts to drive crosstool to build toolchains in any
location the user desires.  But I'm running into a path limitation,
which appears to be in binutils-2.17.50.0.12.  Unfortunately, I can't
change the binutils version (or my vendor will stop supporting me).
Does anyone know if this is a know issue in binutils, and whether
there is a patch?

Using crosstool to build a toolchain with a RESULT_TOP path 53
characters long works:

  $ env -i BINUTILS_DIR=binutils-2.17.50.0.12 GCC_CORE_DIR=gcc-3.4.6 \
    GCC_DIR=gcc-3.4.6 GDB_DIR=gdb-6.5 \
    GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6 GLIBC_DIR=glibc-2.3.6 \
    GLIBC_EXTRA_CONFIG=--with-tls --enable-kernel=2.6.9 \
    LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0 \
    RESULT_TOP=/nightly/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
    SHELL=/bin/sh TARBALLS_DIR=/tarballs TARGET=mipsel-unknown-linux-gnu \
    TARGET_CFLAGS=-O2 -finline-limit=10000 \
    TOOLS_DIR=/nightly/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx sh all.sh \
    --notest --gdb > .log 2>&1

But using the exact same crosstool configuration to build a toolchain
with a RESULT_TOP path 54 characters long fails (sorry about the line
folding, but GMANE won't let me post wider than 80 columns):

  $ env -i BINUTILS_DIR=binutils-2.17.50.0.12 GCC_CORE_DIR=gcc-3.4.6 \
    GCC_DIR=gcc-3.4.6 GDB_DIR=gdb-6.5 \
    GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6
    GLIBC_DIR=glibc-2.3.6 \
    GLIBC_EXTRA_CONFIG=--with-tls --enable-kernel=2.6.9 \
    LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0 \
    RESULT_TOP=/nightly/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
    SHELL=/bin/sh TARBALLS_DIR=/tarballs
    TARGET=mipsel-unknown-linux-gnu \
    TARGET_CFLAGS=-O2 -finline-limit=10000 \
    TOOLS_DIR=/nightly/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx sh
    all.sh \
    --notest --gdb > .log 2>&1
  $ tail -12 .log | fold -w 75
  mipsel-unknown-linux-gnu-ranlib /crosstool-0.43/build/mipsel-unknown-linux-
  gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/math/libm_pic.a
  mipsel-unknown-linux-gnu-gcc  -mabi=32   -shared -static-libgcc -Wl,-O1  -W
  l,-z,defs -Wl,-dynamic-linker=/lib/ld.so.1  -B/crosstool-0.43/build/mipsel-
  unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/csu/  -Wl,--version-scr
  ipt=/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/bu
  ild-glibc/libm.map -Wl,-soname=libm.so.6 -Wl,-z,relro  -L/crosstool-0.43/bu
  ild/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc -L/crosstool
  -0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/math
   -L/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/bui
  ld-glibc/elf -L/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-gli
  bc-2.3.6/build-glibc/dlfcn -L/crosstool-0.43/build/mipsel-unknown-linux-gnu
  /gcc-3.4.6-glibc-2.3.6/build-glibc/nss -L/crosstool-0.43/build/mipsel-unkno
  wn-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/nis -L/crosstool-0.43/build/
  mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/rt -L/crosstool-
  0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/resol
  v -L/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/bu
  ild-glibc/crypt -L/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-
  glibc-2.3.6/build-glibc/linuxthreads -Wl,-rpath-link=/crosstool-0.43/build/
  mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc:/crosstool-0.43/
  build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/math:/cros
  stool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc
  /elf:/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/b
  uild-glibc/dlfcn:/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-g
  libc-2.3.6/build-glibc/nss:/crosstool-0.43/build/mipsel-unknown-linux-gnu/g
  cc-3.4.6-glibc-2.3.6/build-glibc/nis:/crosstool-0.43/build/mipsel-unknown-l
  inux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/rt:/crosstool-0.43/build/mipsel-
  unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/resolv:/crosstool-0.43/
  build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/crypt:/cro
  sstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glib
  c/linuxthreads -o /crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-
  glibc-2.3.6/build-glibc/math/libm.so -T /crosstool-0.43/build/mipsel-unknow
  n-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/shlib.lds /crosstool-0.43/bui
  ld/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/csu/abi-note.
  o -Wl,--whole-archive /crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.
  4.6-glibc-2.3.6/build-glibc/math/libm_pic.a -Wl,--no-whole-archive /crossto
  ol-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-2.3.6/build-glibc/el
  f/interp.os /crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glibc-
  2.3.6/build-glibc/libc.so /crosstool-0.43/build/mipsel-unknown-linux-gnu/gc
  c-3.4.6-glibc-2.3.6/build-glibc/libc_nonshared.a 
  /nightly/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/gcc-3.4.6-glibc-2.3.6
  /mipsel-unknown-linux-gnu/lib/gcc/mipsel-unknown-linux-gnu/3.4.6/../../../.
  ./mipsel-unknown-linux-gnu/bin/ld: BFD 2.17.50.0.12 20070128 internal error
  , aborting at /crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glib
  c-2.3.6/binutils-2.17.50.0.12/bfd/elfxx-mips.c line 4840 in mips_elf_create
  _dynamic_relocation

  /nightly/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/gcc-3.4.6-glibc-2.3.6
  /mipsel-unknown-linux-gnu/lib/gcc/mipsel-unknown-linux-gnu/3.4.6/../../../.
  ./mipsel-unknown-linux-gnu/bin/ld: Please report this bug.

  collect2: ld returned 1 exit status
  make[2]: *** [/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.6-glib
  c-2.3.6/build-glibc/math/libm.so] Error 1
  make[2]: Leaving directory `/crosstool-0.43/build/mipsel-unknown-linux-gnu/
  gcc-3.4.6-glibc-2.3.6/glibc-2.3.6/math'
  make[1]: *** [math/others] Error 2
  make[1]: Leaving directory `/crosstool-0.43/build/mipsel-unknown-linux-gnu/
  gcc-3.4.6-glibc-2.3.6/glibc-2.3.6'
  make: *** [all] Error 2
  $



--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list