From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-ee0-f44.google.com ([74.125.83.44]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1S9LUw-0007ib-S8 for ptxdist@pengutronix.de; Sun, 18 Mar 2012 20:10:56 +0100 Received: by eeke51 with SMTP id e51so2760286eek.31 for ; Sun, 18 Mar 2012 12:10:29 -0700 (PDT) From: Remy Bohmer Date: Sun, 18 Mar 2012 20:10:12 +0100 Message-Id: <1332097818-23592-4-git-send-email-linux@bohmer.net> In-Reply-To: <1332097818-23592-1-git-send-email-linux@bohmer.net> References: <1332097818-23592-1-git-send-email-linux@bohmer.net> Subject: [ptxdist] [PATCH 3/9] [x86_64, multilib] Remove all hardcoded paths from glibc.make Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de These hardcoded paths do not work for a multilib environment where libraries are typically installed in /lib64 for x86-64 instead of /lib All correct paths can be found by interrogating the compiler toolchain for the location of these files. Signed-off-by: Remy Bohmer --- rules/glibc.make | 23 +++++++++++------------ rules/post/install.make | 18 ++++++------------ scripts/install_copy_toolchain.sh | 20 +++++++++++++------- 3 files changed, 30 insertions(+), 31 deletions(-) diff --git a/rules/glibc.make b/rules/glibc.make index 2de7a13..0d110ef 100644 --- a/rules/glibc.make +++ b/rules/glibc.make @@ -104,33 +104,32 @@ ifdef PTXCONF_GLIBC_NSL endif ifdef PTXCONF_GLIBC_GCONF_BASE - @$(call install_copy, glibc, 0, 0, 0755, /usr/lib/gconv) - @$(call install_copy_toolchain_lib, glibc, gconv/gconv-modules, /usr/lib/gconv, n) + @$(call install_copy_toolchain_lib, glibc, gconv/gconv-modules, n) endif ifdef PTXCONF_GLIBC_GCONV_DEF - @$(call install_copy_toolchain_lib, glibc, gconv/ISO8859-1.so, /usr/lib/gconv) - @$(call install_copy_toolchain_lib, glibc, gconv/ISO8859-15.so, /usr/lib/gconv) + @$(call install_copy_toolchain_lib, glibc, gconv/ISO8859-1.so) + @$(call install_copy_toolchain_lib, glibc, gconv/ISO8859-15.so) endif ifdef PTXCONF_GLIBC_GCONV_UTF - @$(call install_copy_toolchain_lib, glibc, gconv/UNICODE.so, /usr/lib/gconv) - @$(call install_copy_toolchain_lib, glibc, gconv/UTF-16.so, /usr/lib/gconv) - @$(call install_copy_toolchain_lib, glibc, gconv/UTF-32.so, /usr/lib/gconv) - @$(call install_copy_toolchain_lib, glibc, gconv/UTF-7.so, /usr/lib/gconv) + @$(call install_copy_toolchain_lib, glibc, gconv/UNICODE.so) + @$(call install_copy_toolchain_lib, glibc, gconv/UTF-16.so) + @$(call install_copy_toolchain_lib, glibc, gconv/UTF-32.so) + @$(call install_copy_toolchain_lib, glibc, gconv/UTF-7.so) endif ifdef PTXCONF_GLIBC_GCONV_ZH - @$(call install_copy_toolchain_lib, glibc, gconv/GBBIG5.so, /usr/lib/gconv) - @$(call install_copy_toolchain_lib, glibc, gconv/GB18030.so, /usr/lib/gconv) + @$(call install_copy_toolchain_lib, glibc, gconv/GBBIG5.so) + @$(call install_copy_toolchain_lib, glibc, gconv/GB18030.so) endif ifdef PTXCONF_GLIBC_I18N_BIN_LOCALE - @$(call install_copy_toolchain_usr, glibc, bin/locale) + @$(call install_copy_toolchain_lib, glibc, bin/locale) endif ifdef PTXCONF_GLIBC_I18N_BIN_LOCALEDEF - @$(call install_copy_toolchain_usr, glibc, bin/localedef) + @$(call install_copy_toolchain_lib, glibc, bin/localedef) endif ifdef PTXCONF_GLIBC_I18N_RAWDATA diff --git a/rules/post/install.make b/rules/post/install.make index 190ec28..cfc73a4 100644 --- a/rules/post/install.make +++ b/rules/post/install.make @@ -300,18 +300,15 @@ install_script_replace = \ # # $1: xpkg label # $2: source -# $3: destination -# $4: strip (y|n) default is to strip +# $3: strip (y|n) default is to strip # install_copy_toolchain_lib = \ XPKG=$(subst _,-,$(strip $(1))); \ LIB="$(strip $2)"; \ - DST="$(strip $3)"; \ - STRIP="$(strip $4)"; \ - test "$${DST}" != "" && DST="-d $${DST}"; \ + STRIP="$(strip $3)"; \ $(call install_check, install_copy_toolchain_lib); \ ${CROSS_ENV_CC} $(CROSS_ENV_STRIP) PKGDIR="$(PKGDIR)" \ - $(SCRIPTSDIR)/install_copy_toolchain.sh -p "$${XPKG}" -l "$${LIB}" $${DST} -s "$${STRIP}" + $(SCRIPTSDIR)/install_copy_toolchain.sh -p "$${XPKG}" -l "$${LIB}" -s "$${STRIP}" # # install_copy_toolchain_dl @@ -331,18 +328,15 @@ install_copy_toolchain_dl = \ # # $1: xpkg label # $2: source -# $3: destination -# $4: strip (y|n) default is to strip +# $3: strip (y|n) default is to strip # install_copy_toolchain_usr = \ XPKG=$(subst _,-,$(strip $(1))); \ LIB="$(strip $2)"; \ - DST="$(strip $3)"; \ - STRIP="$(strip $4)"; \ - test "$${DST}" != "" && DST="-d $${DST}"; \ + STRIP="$(strip $3)"; \ $(call install_check, install_copy_toolchain_other); \ ${CROSS_ENV_CC} $(CROSS_ENV_STRIP) PKGDIR="$(PKGDIR)" \ - $(SCRIPTSDIR)/install_copy_toolchain.sh -p "$${XPKG}" -u "$${LIB}" $${DST} -s "$${STRIP}" + $(SCRIPTSDIR)/install_copy_toolchain.sh -p "$${XPKG}" -u "$${LIB}" -s "$${STRIP}" # # install_link diff --git a/scripts/install_copy_toolchain.sh b/scripts/install_copy_toolchain.sh index 726cc61..27e0a9e 100755 --- a/scripts/install_copy_toolchain.sh +++ b/scripts/install_copy_toolchain.sh @@ -50,7 +50,7 @@ ptxd_abs2rel() { # out: $lib_path # ptxd_get_lib_path() { - local lib lib_dir lib_path extra_cflags + local lib lib_dir lib_path extra_cppflags extra_cflags lib="${1}" extra_cppflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CPPFLAGS)" @@ -78,7 +78,7 @@ ptxd_get_lib_path() { # out: dynamic linker name # ptxd_get_dl() { - local dl + local dl extra_cppflags extra_cflags extra_cppflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CPPFLAGS)" extra_cflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CFLAGS)" @@ -106,7 +106,7 @@ ptxd_split_lib_prefix_sysroot_eval() { lib_dir="${lib_path%/${lib}}" # abs path to that lib # try to identify sysroot part of that path - for prefix in {/usr,}/lib{64,32,}{/tls,} ""; do + for prefix in {/usr,}/lib{64,32,}{/tls,/gconv,/bin,} ""; do tmp="${lib_dir%${prefix}}" if test "${lib_dir}" != "${tmp}"; then break @@ -241,10 +241,13 @@ ptxd_install_toolchain_lib() { _ptxd_get_sysroot_usr_by_sysroot() { - local sysroot + local sysroot extra_cppflags extra_cflags + + extra_cppflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CPPFLAGS)" + extra_cflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CFLAGS)" sysroot="$(echo 'int main(void){return 0;}' | \ - ${CC} -x c -o /dev/null -v - 2>&1 | \ + ${CC} ${extra_cppflags} ${extra_cflags} -x c -o /dev/null -v - 2>&1 | \ sed -ne "/.*collect2.*/s,.*--sysroot=\([^[:space:]]*\).*,\1,p")" test -n "${sysroot}" || return 1 @@ -254,9 +257,12 @@ _ptxd_get_sysroot_usr_by_sysroot() { _ptxd_get_sysroot_usr_by_progname() { - local prog_name + local prog_name extra_cppflags extra_cflags + + extra_cppflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CPPFLAGS)" + extra_cflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CFLAGS)" - prog_name="$(${CC} -print-prog-name=gcc)" + prog_name="$(${CC} ${extra_cppflags} ${extra_cflags} -print-prog-name=gcc)" case "${prog_name}" in /*) prog_name="$(ptxd_abspath ${prog_name%/bin/gcc})" -- 1.7.5.4 -- ptxdist mailing list ptxdist@pengutronix.de