Allow user to add a directory component in the sys-root path.
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Mar 03 17:41:59 2009 +0000 (2009-03-03)
changeset 12192b875ed306c2
parent 1218 6e15a14224ef
child 1220 63d8500c8fc1
Allow user to add a directory component in the sys-root path.
Rename CT_DEBUG_INSTALL_DIR to CT_DEBUGROOT_DIR (to match CT_SYSROOT_DIR).
As a side effect, fix creating lib64->lib symlinks.

/trunk/scripts/build/debug/100-dmalloc.sh | 2 1 1 0 +-
/trunk/scripts/build/debug/400-ltrace.sh | 2 1 1 0 +-
/trunk/scripts/build/debug/300-gdb.sh | 6 3 3 0 +++---
/trunk/scripts/build/debug/500-strace.sh | 2 1 1 0 +-
/trunk/scripts/build/debug/200-duma.sh | 6 3 3 0 +++---
/trunk/scripts/crosstool-NG.sh.in | 16 7 9 0 +++++++---------
/trunk/scripts/functions | 2 1 1 0 +-
/trunk/config/toolchain.in | 17 17 0 0 +++++++++++++++++
8 files changed, 34 insertions(+), 19 deletions(-)
config/toolchain.in
scripts/build/debug/100-dmalloc.sh
scripts/build/debug/200-duma.sh
scripts/build/debug/300-gdb.sh
scripts/build/debug/400-ltrace.sh
scripts/build/debug/500-strace.sh
scripts/crosstool-NG.sh.in
scripts/functions
     1.1 --- a/config/toolchain.in	Tue Mar 03 17:39:51 2009 +0000
     1.2 +++ b/config/toolchain.in	Tue Mar 03 17:41:59 2009 +0000
     1.3 @@ -12,6 +12,23 @@
     1.4        
     1.5        You definitely want to say 'Y' here. Yes you do. I know you do. Say 'Y'.
     1.6  
     1.7 +config SYSROOT_DIR_PREFIX
     1.8 +    string
     1.9 +    prompt "sysroot prefix dir (READ HELP)"
    1.10 +    depends on USE_SYSROOT
    1.11 +    depends on EXPERIMENTAL
    1.12 +    default ""
    1.13 +    help
    1.14 +      *
    1.15 +      * Unless you realy know you need that, leave it empty!
    1.16 +      *
    1.17 +      
    1.18 +      This string will be interpreted as a directory component to be added
    1.19 +      to the sysroot path, just before the actual sysroot directory.
    1.20 +      
    1.21 +      In fact, the sysroot path is constructed as:
    1.22 +        ${CT_PREFIX_DIR}/${CT_TARGET}/${CT_SYSROOT_DIR_PREFIX}/sys-root
    1.23 +
    1.24  config SHARED_LIBS
    1.25      bool
    1.26      prompt "Build shared libraries"
     2.1 --- a/scripts/build/debug/100-dmalloc.sh	Tue Mar 03 17:39:51 2009 +0000
     2.2 +++ b/scripts/build/debug/100-dmalloc.sh	Tue Mar 03 17:41:59 2009 +0000
     2.3 @@ -47,7 +47,7 @@
     2.4  
     2.5      CT_DoLog EXTRA "Installing dmalloc"
     2.6      CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" installincs installlib
     2.7 -    CT_DoExecLog ALL make DESTDIR="${CT_DEBUG_INSTALL_DIR}" installutil
     2.8 +    CT_DoExecLog ALL make DESTDIR="${CT_DEBUGROOT_DIR}" installutil
     2.9  
    2.10      CT_EndStep
    2.11  }
     3.1 --- a/scripts/build/debug/200-duma.sh	Tue Mar 03 17:39:51 2009 +0000
     3.2 +++ b/scripts/build/debug/200-duma.sh	Tue Mar 03 17:41:59 2009 +0000
     3.3 @@ -47,12 +47,12 @@
     3.4          CT_DoLog EXTRA "Installing shared library link"
     3.5          ln -vsf ${duma_so} "${CT_SYSROOT_DIR}/usr/lib/libduma.so"   2>&1 |CT_DoLog ALL
     3.6          CT_DoLog EXTRA "Installing wrapper script"
     3.7 -        mkdir -p "${CT_DEBUG_INSTALL_DIR}/usr/bin"
     3.8 +        mkdir -p "${CT_DEBUGROOT_DIR}/usr/bin"
     3.9          # Install a simpler, smaller, safer wrapper than the one provided by D.U.M.A.
    3.10          sed -r -e 's:^LIBDUMA_SO=.*:LIBDUMA_SO=/usr/lib/'"${duma_so}"':;'   \
    3.11              "${CT_LIB_DIR}/scripts/build/debug/duma.in"                     \
    3.12 -            >"${CT_DEBUG_INSTALL_DIR}/usr/bin/duma"
    3.13 -        chmod 755 "${CT_DEBUG_INSTALL_DIR}/usr/bin/duma"
    3.14 +            >"${CT_DEBUGROOT_DIR}/usr/bin/duma"
    3.15 +        chmod 755 "${CT_DEBUGROOT_DIR}/usr/bin/duma"
    3.16      fi
    3.17  
    3.18      CT_Popd
     4.1 --- a/scripts/build/debug/300-gdb.sh	Tue Mar 03 17:39:51 2009 +0000
     4.2 +++ b/scripts/build/debug/300-gdb.sh	Tue Mar 03 17:41:59 2009 +0000
     4.3 @@ -215,10 +215,10 @@
     4.4          CT_DoExecLog ALL make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC}
     4.5  
     4.6          CT_DoLog EXTRA "Installing native gdb"
     4.7 -        CT_DoExecLog ALL make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install
     4.8 +        CT_DoExecLog ALL make DESTDIR="${CT_DEBUGROOT_DIR}" install
     4.9  
    4.10          # Building a native gdb also builds a gdbserver
    4.11 -        find "${CT_DEBUG_INSTALL_DIR}" -type f -name gdbserver -exec rm -fv {} \; 2>&1 |CT_DoLog ALL
    4.12 +        find "${CT_DEBUGROOT_DIR}" -type f -name gdbserver -exec rm -fv {} \; 2>&1 |CT_DoLog ALL
    4.13  
    4.14          unset ac_cv_func_strncmp_works
    4.15  
    4.16 @@ -269,7 +269,7 @@
    4.17          CT_DoExecLog ALL make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC}
    4.18  
    4.19          CT_DoLog EXTRA "Installing gdbserver"
    4.20 -        CT_DoExecLog ALL make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install
    4.21 +        CT_DoExecLog ALL make DESTDIR="${CT_DEBUGROOT_DIR}" install
    4.22  
    4.23          CT_EndStep
    4.24      fi
     5.1 --- a/scripts/build/debug/400-ltrace.sh	Tue Mar 03 17:39:51 2009 +0000
     5.2 +++ b/scripts/build/debug/400-ltrace.sh	Tue Mar 03 17:41:59 2009 +0000
     5.3 @@ -37,7 +37,7 @@
     5.4      CT_DoExecLog ALL make
     5.5  
     5.6      CT_DoLog EXTRA "Installing ltrace"
     5.7 -    CT_DoExecLog ALL make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install
     5.8 +    CT_DoExecLog ALL make DESTDIR="${CT_DEBUGROOT_DIR}" install
     5.9  
    5.10      CT_Popd
    5.11      CT_EndStep
     6.1 --- a/scripts/build/debug/500-strace.sh	Tue Mar 03 17:39:51 2009 +0000
     6.2 +++ b/scripts/build/debug/500-strace.sh	Tue Mar 03 17:41:59 2009 +0000
     6.3 @@ -27,7 +27,7 @@
     6.4      CT_DoExecLog ALL make
     6.5  
     6.6      CT_DoLog EXTRA "Installing strace"
     6.7 -    CT_DoExecLog ALL make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install
     6.8 +    CT_DoExecLog ALL make DESTDIR="${CT_DEBUGROOT_DIR}" install
     6.9  
    6.10      CT_Popd
    6.11      CT_EndStep
     7.1 --- a/scripts/crosstool-NG.sh.in	Tue Mar 03 17:39:51 2009 +0000
     7.2 +++ b/scripts/crosstool-NG.sh.in	Tue Mar 03 17:41:59 2009 +0000
     7.3 @@ -32,7 +32,7 @@
     7.4  CT_WORK_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/targets}"
     7.5  
     7.6  # Create the bin-overide early
     7.7 -# Contains symlinks to the tools found bu ./configure
     7.8 +# Contains symlinks to the tools found by ./configure
     7.9  # Note: CT_DoLog and CT_DoExecLog do not use any of those tool, so
    7.10  # they can be safely used
    7.11  CT_BIN_OVERIDE_DIR="${CT_WORK_DIR}/bin"
    7.12 @@ -108,7 +108,6 @@
    7.13  CT_TARBALLS_DIR="${CT_WORK_DIR}/tarballs"
    7.14  CT_SRC_DIR="${CT_WORK_DIR}/src"
    7.15  CT_BUILD_DIR="${CT_WORK_DIR}/${CT_TARGET}/build"
    7.16 -CT_DEBUG_INSTALL_DIR="${CT_INSTALL_DIR}/${CT_TARGET}/debug-root"
    7.17  # Note: we'll always install the core compiler in its own directory, so as to
    7.18  # not mix the two builds: core and final.
    7.19  CT_CC_CORE_STATIC_PREFIX_DIR="${CT_BUILD_DIR}/${CT_CC}-core-static"
    7.20 @@ -177,9 +176,6 @@
    7.21      if [ -d "${CT_INSTALL_DIR}" ]; then
    7.22          CT_DoForceRmdir "${CT_INSTALL_DIR}"
    7.23      fi
    7.24 -    if [ -d "${CT_DEBUG_INSTALL_DIR}" ]; then
    7.25 -        CT_DoForceRmdir "${CT_DEBUG_INSTALL_DIR}"
    7.26 -    fi
    7.27      # In case we start anew, get rid of the previously saved state directory
    7.28      if [ -d "${CT_STATE_DIR}" ]; then
    7.29          CT_DoForceRmdir "${CT_STATE_DIR}"
    7.30 @@ -194,7 +190,6 @@
    7.31  CT_DoExecLog ALL mkdir -p "${CT_BUILD_DIR}"
    7.32  CT_DoExecLog ALL mkdir -p "${CT_INSTALL_DIR}"
    7.33  CT_DoExecLog ALL mkdir -p "${CT_PREFIX_DIR}"
    7.34 -CT_DoExecLog ALL mkdir -p "${CT_DEBUG_INSTALL_DIR}"
    7.35  CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}"
    7.36  CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}"
    7.37  CT_DoExecLog ALL mkdir -p "${CT_STATE_DIR}"
    7.38 @@ -229,7 +224,8 @@
    7.39  
    7.40      # Arrange paths depending on wether we use sys-root or not.
    7.41      if [ "${CT_USE_SYSROOT}" = "y" ]; then
    7.42 -        CT_SYSROOT_DIR="${CT_PREFIX_DIR}/${CT_TARGET}/sys-root"
    7.43 +        CT_SYSROOT_DIR="${CT_PREFIX_DIR}/${CT_TARGET}/${CT_SYSROOT_DIR_PREFIX}/sys-root"
    7.44 +        CT_DEBUGROOT_DIR="${CT_PREFIX_DIR}/${CT_TARGET}/${CT_SYSROOT_DIR_PREFIX}/debug-root"
    7.45          CT_HEADERS_DIR="${CT_SYSROOT_DIR}/usr/include"
    7.46          BINUTILS_SYSROOT_ARG="--with-sysroot=${CT_SYSROOT_DIR}"
    7.47          CC_CORE_SYSROOT_ARG="--with-sysroot=${CT_SYSROOT_DIR}"
    7.48 @@ -253,6 +249,8 @@
    7.49          CC_SYSROOT_ARG="--with-headers=${CT_HEADERS_DIR}"
    7.50          LIBC_SYSROOT_ARG="prefix="
    7.51      fi
    7.52 +    CT_DoExecLog ALL mkdir -p "${CT_SYSROOT_DIR}"
    7.53 +    CT_DoExecLog ALL mkdir -p "${CT_DEBUGROOT_DIR}"
    7.54  
    7.55      # Prepare the 'lib' directories in sysroot, else the ../lib64 hack used by
    7.56      # 32 -> 64 bit crosscompilers won't work, and build of final gcc will fail
    7.57 @@ -264,7 +262,7 @@
    7.58      CT_DoExecLog ALL mkdir -p "${CT_SYSROOT_DIR}/usr/lib"
    7.59  
    7.60      # Prevent gcc from installing its libraries outside of the sys-root
    7.61 -    CT_DoExecLog ALL ln -sf "sys-root/lib" "${CT_PREFIX_DIR}/${CT_TARGET}/lib"
    7.62 +    CT_DoExecLog ALL ln -sf "./${CT_SYSROOT_DIR_PREFIX}/sys-root/lib" "${CT_PREFIX_DIR}/${CT_TARGET}/lib"
    7.63  
    7.64      # Now, in case we're 64 bits, just have lib64/ be a symlink to lib/
    7.65      # so as to have all libraries in the same directory (we can do that
    7.66 @@ -273,7 +271,7 @@
    7.67          CT_DoExecLog ALL ln -sf "lib" "${CT_PREFIX_DIR}/lib64"
    7.68          CT_DoExecLog ALL ln -sf "lib" "${CT_SYSROOT_DIR}/lib64"
    7.69          CT_DoExecLog ALL ln -sf "lib" "${CT_SYSROOT_DIR}/usr/lib64"
    7.70 -        CT_DoExecLog ALL ln -sf "sys-root/lib" "${CT_PREFIX_DIR}/${CT_TARGET}/lib64"
    7.71 +        CT_DoExecLog ALL ln -sf "lib" "${CT_PREFIX_DIR}/${CT_TARGET}/lib64"
    7.72      fi
    7.73  
    7.74      # Determine build system if not set by the user
     8.1 --- a/scripts/functions	Tue Mar 03 17:39:51 2009 +0000
     8.2 +++ b/scripts/functions	Tue Mar 03 17:41:59 2009 +0000
     8.3 @@ -944,7 +944,7 @@
     8.4          CT_DoLog EXTRA "Removing installed documentation"
     8.5          CT_DoForceRmdir "${CT_PREFIX_DIR}/"{,usr/}{man,info}
     8.6          CT_DoForceRmdir "${CT_SYSROOT_DIR}/"{,usr/}{man,info}
     8.7 -        CT_DoForceRmdir "${CT_DEBUG_INSTALL_DIR}/"{,usr/}{man,info}
     8.8 +        CT_DoForceRmdir "${CT_DEBUGROOT_DIR}/"{,usr/}{man,info}
     8.9      fi
    8.10  
    8.11      CT_EndStep