From 96c2e118944d4f2052dd3849cc8c6993c2bcc7a2 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Thu, 7 Oct 2010 22:37:06 +0200 Subject: [PATCH] scripts: always create lib32 and lib64 symlinks Unconditionally create the lib32 -> lib/ and lib64 -> lib/ symlinks. This is reportedly a fix to build a toolchain for a 32-bit target on a 'pure' 64-bit host (eg. on Fedora FC12, host libs are in lib64/, and there is no lib -> lib64 symlink, as we can see on other distors, as Debian). As gcc only puts static host lib in lib64/ (along with target files in subdirs), we can safely create the symlinks. Also note that the symlinks are summarily removed at the end of the build. Signed-off-by: Anthony Foiani [Yann E. MORIN: fix a comment, rephrase the commit log] Signed-off-by: "Yann E. MORIN" --- scripts/crosstool-NG.sh.in | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in index 2d28c3e6..9ea76648 100644 --- a/scripts/crosstool-NG.sh.in +++ b/scripts/crosstool-NG.sh.in @@ -328,23 +328,22 @@ if [ -z "${CT_RESTART}" ]; then CT_DoExecLog ALL ln -sf "./${CT_SYSROOT_DIR_PREFIX}/sys-root/usr/include" "${CT_PREFIX_DIR}/${CT_TARGET}/include" fi - # 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). - # Mips64 with n32 emulation install its libs in lib32, so also prepare - # these symlinks - # Not all the symlinks are necessary, but better safe than sorry... - if [ "${CT_ARCH_64}" = "y" ]; then - for d in \ - "${CT_PREFIX_DIR}" \ - "${CT_SYSROOT_DIR}" \ - "${CT_SYSROOT_DIR}/usr" \ - "${CT_PREFIX_DIR}/${CT_TARGET}" \ - ; do - CT_DoExecLog ALL ln -sf "lib" "${d}/lib32" - CT_DoExecLog ALL ln -sf "lib" "${d}/lib64" - done - fi + # Since we're *not* multilib on the target side, we want all the + # libraries to end up in "lib". We create "lib64" (for 64-bit + # build or host architectures) and "lib32" (for 32-bit emulation + # on 64-bit) as symlinks to "lib". + # + # Not all of these symlinks are necessary, but better safe than + # sorry. They are summarily removed by build/internals.sh:do_finish. + for d in \ + "${CT_PREFIX_DIR}" \ + "${CT_SYSROOT_DIR}" \ + "${CT_SYSROOT_DIR}/usr" \ + "${CT_PREFIX_DIR}/${CT_TARGET}" \ + ; do + CT_DoExecLog ALL ln -sf "lib" "${d}/lib32" + CT_DoExecLog ALL ln -sf "lib" "${d}/lib64" + done # Determine build system if not set by the user if [ -z "${CT_BUILD}" ]; then