# HG changeset patch # User Anthony Foiani # Date 1286483826 -7200 # Node ID 2242d87c5404f698d3b138c5867f59d5322c4bd3 # Parent 98b51f471fbb50e7224bb6649a8ea53190135987 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" diff -r 98b51f471fbb -r 2242d87c5404 scripts/crosstool-NG.sh.in --- a/scripts/crosstool-NG.sh.in Wed Oct 06 22:54:48 2010 +0200 +++ b/scripts/crosstool-NG.sh.in Thu Oct 07 22:37:06 2010 +0200 @@ -328,23 +328,22 @@ 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