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 <[email protected]>
---
 v2: no changes since v1

 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
[email protected]

Reply via email to