summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/build/cc_gcc.sh26
-rwxr-xr-xscripts/crosstool.sh14
2 files changed, 14 insertions, 26 deletions
diff --git a/scripts/build/cc_gcc.sh b/scripts/build/cc_gcc.sh
index 8139e77..742b804 100644
--- a/scripts/build/cc_gcc.sh
+++ b/scripts/build/cc_gcc.sh
@@ -281,26 +281,6 @@ do_cc() {
CT_DoExecLog ALL make ${PARALLELMFLAGS} all-build-libiberty
fi
- # Idea from <cort.dougan at gmail.com>:
- # Fix lib/lib64 confusion for GCC 3.3.3 on PowerPC64 and x86_64.
- # GCC 3.4.0 and up don't suffer from this confusion, and don't need this
- # kludge.
- # FIXME: we should patch gcc's source rather than uglify crosstool.sh.
- # FIXME: is this needed for gcc-3.3.[56]?
- case "${CT_CC_FILE}" in
- gcc-3.3.[34])
- case "${CT_TARGET}" in
- powerpc64-unknown-linux-gnu|x86_64-unknown-linux-gnu)
- for d in $(find "${CT_SYSROOT_DIR}" -name lib -type d -empty); do
- if [ -d $(dirname "${d}")/lib64 ] ; then
- rm -rf "${d}"
- ln -s $(dirname "${d}")/lib64 "${d}"
- fi
- done ;;
- *) ;;
- esac ;;
- esac
-
CT_DoLog EXTRA "Building final compiler"
CT_DoExecLog ALL make ${PARALLELMFLAGS} all
@@ -311,11 +291,5 @@ do_cc() {
# to call the C compiler with the same, somewhat canonical name.
ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}"-{g,}cc 2>&1 |CT_DoLog ALL
- # gcc installs stuff in prefix/target/lib, when it would make better sense
- # to install that into sysroot/usr/lib
- CT_DoLog EXTRA "Moving improperly installed gcc libs to sysroot"
- ( cd "${CT_PREFIX_DIR}/${CT_TARGET}/lib"; tar cf - . ) | ( cd "${CT_SYSROOT_DIR}/usr/lib"; tar xfv - ) |CT_DoLog ALL
- rm -rf "${CT_PREFIX_DIR}/${CT_TARGET}/lib"
-
CT_EndStep
}
diff --git a/scripts/crosstool.sh b/scripts/crosstool.sh
index e170915..a393d87 100755
--- a/scripts/crosstool.sh
+++ b/scripts/crosstool.sh
@@ -350,6 +350,20 @@ if [ -z "${CT_RESTART}" ]; then
mkdir -p "${CT_SYSROOT_DIR}/lib"
mkdir -p "${CT_SYSROOT_DIR}/usr/lib"
+ # Prevent gcc from installing its libraries outside of the sys-root
+ ln -sf "sys-root/lib" "${CT_PREFIX_DIR}/${CT_TARGET}/lib"
+
+ # Now, in case we're 64 bits, just have lib64/ be a symlink to lib/
+ # so as to have all libraries in the same directory (we can do that
+ # because we are *not* multilib).
+ case "${CT_TARGET}" in
+ powerpc64*|ppc64*|x86_64*)
+ ln -sf "lib" "${CT_SYSROOT_DIR}/lib64"
+ ln -sf "lib" "${CT_SYSROOT_DIR}/usr/lib64"
+ ln -sf "sys-root/lib" "${CT_PREFIX_DIR}/${CT_TARGET}/lib64"
+ ;;
+ esac
+
# Canadian-cross are really picky on the way they are built. Tweak the values.
CT_UNIQ_BUILD=$(echo "${CT_BUILD}" |sed -r -e 's/-/-build_/')
if [ "${CT_CANADIAN}" = "y" ]; then