Bart De VOS pointed out that removing absolute paths from the libc linker scripts is plainly wrong.
It dates from dawn ages of the original crosstool code, and is not well explained. At that time, binutils might not understand the sysroot stuff, and it was necessary to remove absolute paths in that case.
/trunk/scripts/build/libc/glibc.sh | 14 2 12 0 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
1 # This file adds functions to build binutils
2 # Copyright 2007 Yann E. MORIN
3 # Licensed under the GPL v2. See COPYING in the root of this package
6 echo "binutils-${CT_BINUTILS_VERSION}"
11 CT_GetFile "${CT_BINUTILS_FILE}" \
12 {ftp,http}://{ftp.gnu.org/gnu,ftp.kernel.org/pub/linux/devel}/binutils
16 do_binutils_extract() {
17 CT_ExtractAndPatch "${CT_BINUTILS_FILE}"
22 mkdir -p "${CT_BUILD_DIR}/build-binutils"
23 cd "${CT_BUILD_DIR}/build-binutils"
25 CT_DoStep INFO "Installing binutils"
28 # If GMP and MPFR were configured, then use that,
29 # otherwise let binutils find the system-wide libraries, if they exist.
30 if [ "${CT_GMP_MPFR}" = "y" ]; then
31 binutils_opts="--with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}"
34 CT_DoLog EXTRA "Configuring binutils"
35 CFLAGS="${CT_CFLAGS_FOR_HOST}" \
37 "${CT_SRC_DIR}/${CT_BINUTILS_FILE}/configure" \
41 --target=${CT_TARGET} \
42 --prefix=${CT_PREFIX_DIR} \
47 ${CT_ARCH_WITH_FLOAT} \
48 ${CT_BINUTILS_EXTRA_CONFIG} \
49 ${BINUTILS_SYSROOT_ARG}
51 CT_DoLog EXTRA "Building binutils"
52 CT_DoExecLog ALL make ${PARALLELMFLAGS}
54 CT_DoLog EXTRA "Installing binutils"
55 CT_DoExecLog ALL make install
57 # Make those new tools available to the core C compilers to come.
58 # Note: some components want the ${TARGET}-{ar,as,ld,strip} commands as
60 mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin"
61 mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin"
62 mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin"
63 mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin"
64 for t in ar as ld strip; do
65 ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
66 ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
67 ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
68 ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
69 done 2>&1 |CT_DoLog ALL
74 # Now on for the target libraries
75 do_binutils_target() {
77 [ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ] && targets="${targets} libiberty"
78 [ "${CT_BINUTILS_FOR_TARGET_BFD}" = "y" ] && targets="${targets} bfd"
79 targets="${targets# }"
81 if [ -n "${targets}" ]; then
82 CT_DoStep INFO "Installing binutils for target"
83 mkdir -p "${CT_BUILD_DIR}/build-binutils-for-target"
84 CT_Pushd "${CT_BUILD_DIR}/build-binutils-for-target"
86 CT_DoLog EXTRA "Configuring binutils for target"
88 "${CT_SRC_DIR}/${CT_BINUTILS_FILE}/configure" \
91 --target=${CT_TARGET} \
98 ${CT_ARCH_WITH_FLOAT} \
99 ${CT_BINUTILS_EXTRA_CONFIG}
101 build_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1all-/g;')
102 install_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1install-/g;')
104 CT_DoLog EXTRA "Building binutils' libraries (${targets}) for target"
105 CT_DoExecLog ALL make ${PARALLELMFLAGS} ${build_targets}
106 CT_DoLog EXTRA "Installing binutils' libraries (${targets}) for target"
107 CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" ${install_targets}