mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH v4 1/7] [x86_64] libgcc need to be install in /lib64 instead of /lib
@ 2012-03-25 18:31 Remy Bohmer
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 2/7] [x86_64, multilib] Remove all hardcoded paths from glibc.make Remy Bohmer
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Remy Bohmer @ 2012-03-25 18:31 UTC (permalink / raw)
  To: ptxdist

Let install_copy_toolchain itself figure out where to install the
libgcc libraries and its friends.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 rules/gcclibs.make |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/rules/gcclibs.make b/rules/gcclibs.make
index 60c474c..a1079c2 100644
--- a/rules/gcclibs.make
+++ b/rules/gcclibs.make
@@ -36,15 +36,15 @@ $(STATEDIR)/gcclibs.targetinstall:
 	@$(call install_fixup, gcclibs,DESCRIPTION,missing)
 
 ifdef PTXCONF_GCCLIBS_GCC_S
-	@$(call install_copy_toolchain_lib, gcclibs, libgcc_s.so, /lib)
+	@$(call install_copy_toolchain_lib, gcclibs, libgcc_s.so)
 endif
 
 ifdef PTXCONF_GCCLIBS_CXX
-	@$(call install_copy_toolchain_lib, gcclibs, libstdc++.so, /usr/lib)
+	@$(call install_copy_toolchain_lib, gcclibs, libstdc++.so)
 endif
 
 ifdef PTXCONF_GCCLIBS_GCJ
-	@$(call install_copy_toolchain_lib, gcclibs, libgcj.so, /usr/lib)
+	@$(call install_copy_toolchain_lib, gcclibs, libgcj.so)
 endif
 
 	@$(call install_finish, gcclibs)
-- 
1.7.5.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ptxdist] [PATCH v4 2/7] [x86_64, multilib] Remove all hardcoded paths from glibc.make
  2012-03-25 18:31 [ptxdist] [PATCH v4 1/7] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
@ 2012-03-25 18:31 ` Remy Bohmer
  2012-03-28 10:52   ` Michael Olbrich
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 3/7] [x86_64, multilib] Make packages install their libraries at the right place Remy Bohmer
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Remy Bohmer @ 2012-03-25 18:31 UTC (permalink / raw)
  To: ptxdist

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 <linux@bohmer.net>
---
 rules/glibc.make                  |   23 +++++++++++------------
 rules/post/install.make           |   18 ++++++------------
 scripts/install_copy_toolchain.sh |    2 +-
 3 files changed, 18 insertions(+), 25 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 7b91fc4..44c399a 100755
--- a/scripts/install_copy_toolchain.sh
+++ b/scripts/install_copy_toolchain.sh
@@ -101,7 +101,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
-- 
1.7.5.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ptxdist] [PATCH v4 3/7] [x86_64, multilib] Make packages install their libraries at the right place
  2012-03-25 18:31 [ptxdist] [PATCH v4 1/7] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 2/7] [x86_64, multilib] Remove all hardcoded paths from glibc.make Remy Bohmer
@ 2012-03-25 18:31 ` Remy Bohmer
  2012-03-27 14:13   ` Michael Olbrich
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 4/7] [x86_64, multilib] Install Zlib " Remy Bohmer
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Remy Bohmer @ 2012-03-25 18:31 UTC (permalink / raw)
  To: ptxdist

While cross-compiling for x86_64 in a multilib configuration we need to
install the libraries conform the Filesystem Hierarchy Standard (FHS).
Summarised this will be for multilib:
* All libraries compiled for and used in 64-bit applications need to be
  installed in /lib64 or /usr/lib64.
* All libraries compiled for and used in 32-bit applications need to be
  installed in /lib or /usr/lib.
* All executables will still find its way in the regular /bin and /sbin
  paths.
* The Operating System itself and all its libraries should only be compiled
  in 64 bit mode. It should not be a mix between 32 and 64 bit libraries.
  32 bit support will only contain the libraries that are required by
  32-bit-applications to link against.

This is also conform what many distros derived from Redhat have in their
setup. Note that Debian based distros follow a somewhat different setup.

Note that we use the compiler toolchain to tell us at which paths we
need to install the libraries. This means that if you build for a x86_64
target _without_ multilib support the libraries will likely end up in the
classical /lib and /usr/lib directories, but that is completely steered
by the compiler toolchain configuration. (it follows the location where
the corresponding dynamic linker is expected to be installed)

So, this change makes ptxdist follow the sysroot of the compiler toolchain
more such that preliminary multilib support can be achieved. Preliminary
in the sense that only still one C-library is being installed.
In another changeset the support for a 2nd C-library installation will be
added. At least after this change (and a few subsequent ptxdist makefile
fixes) the /lib and /usr/lib area will only contain the contents that belong
there in multilib environment.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 rules/pre/Rules.make              |    6 ++++--
 rules/termcap.make                |    3 ++-
 scripts/lib/ptxd_make_00-init.sh  |   20 ++++++++++++++++++--
 scripts/lib/ptxd_make_xpkg_pkg.sh |    7 +++++--
 4 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/rules/pre/Rules.make b/rules/pre/Rules.make
index 1d6da52..1d09a18 100644
--- a/rules/pre/Rules.make
+++ b/rules/pre/Rules.make
@@ -174,6 +174,8 @@ CROSS_ENV_PROGS := \
 	$(CROSS_ENV_CPP_FOR_BUILD) \
 	$(CROSS_ENV_LINK_FOR_BUILD)
 
+CROSS_LIB_DIR   := $(shell ptxd_get_lib_dir)
+
 #
 # prepare to use pkg-config with wrapper which takes care of
 # $(PTXDIST_SYSROOT_TARGET). The wrapper's magic doesn't work when
@@ -266,10 +268,10 @@ CROSS_ENV := \
 #
 
 CROSS_AUTOCONF_SYSROOT_USR := \
-	--prefix=/usr --sysconfdir=/etc --localstatedir=/var
+	--prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/$(CROSS_LIB_DIR)
 
 CROSS_AUTOCONF_SYSROOT_ROOT := \
-	--prefix=
+	--libdir=/$(CROSS_LIB_DIR) --prefix=
 
 CROSS_AUTOCONF_ARCH := \
 	--host=$(PTXCONF_GNU_TARGET) \
diff --git a/rules/termcap.make b/rules/termcap.make
index 4222840..4cbcb5a 100644
--- a/rules/termcap.make
+++ b/rules/termcap.make
@@ -44,7 +44,8 @@ TERMCAP_ENV 	:= $(CROSS_ENV)
 # autoconf
 #
 TERMCAP_AUTOCONF := \
-	$(CROSS_AUTOCONF_ROOT) \
+	--prefix= \
+	$(CROSS_AUTOCONF_ARCH) \
 	--enable-install-termcap
 
 # ----------------------------------------------------------------------------
diff --git a/scripts/lib/ptxd_make_00-init.sh b/scripts/lib/ptxd_make_00-init.sh
index eed2a2e..bd8f6a0 100644
--- a/scripts/lib/ptxd_make_00-init.sh
+++ b/scripts/lib/ptxd_make_00-init.sh
@@ -137,6 +137,19 @@ ptxd_init_collectionconfig() {
 
 
 #
+# out: 'lib' or 'lib64', derived from the ld-{linux,uClibc}.so.? from the compiler toolchain
+#
+ptxd_get_lib_dir() {
+    local dl lib_dir
+
+    dl="$(ptxd_cross_cc_v | \
+	sed -n -e 's/.* -dynamic-linker \([^ ]*\).*/\1/p')"
+    lib_dir="${dl%%/ld-*.so.*}"
+    echo "${lib_dir#/}"
+}
+export -f ptxd_get_lib_dir
+
+#
 # setup compiler and pkgconfig environment
 #
 # in:
@@ -158,6 +171,9 @@ ptxd_init_cross_env() {
     prefix=( ${PTXDIST_PATH_SYSROOT_PREFIX} )
     IFS="${orig_IFS}"
 
+    local -a lib_dir
+    lib_dir=$(ptxd_get_lib_dir)
+
     # add "-isystem <DIR>/include"
     local -a cppflags
     cppflags=( "${prefix[@]/%//include}" )
@@ -165,7 +181,7 @@ ptxd_init_cross_env() {
 
     # add "-L<DIR>/lib -Wl,-rpath-link -Wl,<DIR>"
     local -a ldflags
-    ldflags=( "${prefix[@]/%//lib}" )
+    ldflags=( "${prefix[@]/%//${lib_dir}}" )
     ldflags=( "${ldflags[@]/#/-L}" "${ldflags[@]/#/-Wl,-rpath-link -Wl,}" )
 
     export \
@@ -184,7 +200,7 @@ ptxd_init_cross_env() {
 
     # add <DIR>/lib/pkgconfig and <DIR>/share/pkgconfig
     local -a pkg_libdir
-    pkg_libdir=( "${prefix[@]/%//lib/pkgconfig}" "${prefix[@]/%//share/pkgconfig}" )
+    pkg_libdir=( "${prefix[@]/%//${lib_dir}/pkgconfig}" "${prefix[@]/%//share/pkgconfig}" )
 
     #
     # PKG_CONFIG_PATH contains additional pkg-config search
diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh b/scripts/lib/ptxd_make_xpkg_pkg.sh
index c03f19e..73ff2c2 100644
--- a/scripts/lib/ptxd_make_xpkg_pkg.sh
+++ b/scripts/lib/ptxd_make_xpkg_pkg.sh
@@ -597,6 +597,8 @@ ptxd_install_spec() {
 export -f ptxd_install_spec
 
 ptxd_install_package() {
+    local lib_dir=$(ptxd_get_lib_dir)
+
     for dir in "${pkg_pkg_dir}/"{,usr/}{bin,sbin,libexec}; do
 	find "${dir}" \( -type f -o -type l \) \
 		    -perm /111 2>/dev/null | while read file; do
@@ -605,7 +607,7 @@ ptxd_install_package() {
 	done
     done
 
-    for dir in "${pkg_pkg_dir}/"{,usr/}lib; do
+    for dir in "${pkg_pkg_dir}/"{,usr/}${lib_dir}; do
 	find "${dir}" \( -type f -o -type l \) \
 		    -a -name "*.so*" 2>/dev/null | while read file; do
 	    ptxd_install_generic - "${file#${pkg_pkg_dir}}" ||
@@ -635,10 +637,11 @@ ptxd_install_shared() {
 export -f ptxd_install_shared
 
 ptxd_install_lib() {
+    local lib_dir=$(ptxd_get_lib_dir)
     local lib="$1"
     shift
 
-    local file="$(for dir in "${pkg_pkg_dir}/"{,usr/}lib; do
+    local file="$(for dir in "${pkg_pkg_dir}/"{,usr/}${lib_dir}; do
 	    find "${dir}" -type f -path "${dir}/${lib}.so*"; done 2>/dev/null)"
 
     if [ ! -f "${file}" ]; then
-- 
1.7.5.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ptxdist] [PATCH v4 4/7] [x86_64, multilib] Install Zlib libraries at the right place
  2012-03-25 18:31 [ptxdist] [PATCH v4 1/7] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 2/7] [x86_64, multilib] Remove all hardcoded paths from glibc.make Remy Bohmer
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 3/7] [x86_64, multilib] Make packages install their libraries at the right place Remy Bohmer
@ 2012-03-25 18:31 ` Remy Bohmer
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 5/7] [x86_64, multilib] Install Ncurses " Remy Bohmer
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Remy Bohmer @ 2012-03-25 18:31 UTC (permalink / raw)
  To: ptxdist

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 rules/zlib.make |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/rules/zlib.make b/rules/zlib.make
index 1618e1b..2c15ccb 100644
--- a/rules/zlib.make
+++ b/rules/zlib.make
@@ -48,7 +48,8 @@ ZLIB_CONF_ENV := \
 #
 ZLIB_AUTOCONF := \
 	--prefix=/usr \
-	--uname=Linux
+	--uname=Linux \
+	--libdir=/usr/$(CROSS_LIB_DIR)
 
 ifdef PTXCONF_ZLIB_STATIC
 ZLIB_AUTOCONF += --static
-- 
1.7.5.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ptxdist] [PATCH v4 5/7] [x86_64, multilib] Install Ncurses libraries at the right place
  2012-03-25 18:31 [ptxdist] [PATCH v4 1/7] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
                   ` (2 preceding siblings ...)
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 4/7] [x86_64, multilib] Install Zlib " Remy Bohmer
@ 2012-03-25 18:31 ` Remy Bohmer
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 6/7] [x86_64, multilib] Install Readline " Remy Bohmer
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 7/7] [x86_64, multilib] Install Procps " Remy Bohmer
  5 siblings, 0 replies; 13+ messages in thread
From: Remy Bohmer @ 2012-03-25 18:31 UTC (permalink / raw)
  To: ptxdist

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 rules/ncurses.make |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/rules/ncurses.make b/rules/ncurses.make
index 19247bd..bf25512 100644
--- a/rules/ncurses.make
+++ b/rules/ncurses.make
@@ -37,7 +37,7 @@ NCURSES_AUTOCONF_SHARED := \
 	--disable-nls \
 	--enable-const \
 	--enable-overwrite \
-	--libdir=/lib \
+	--libdir=/$(CROSS_LIB_DIR) \
 	--with-debug \
 	--with-normal \
 	--with-shared \
@@ -115,9 +115,9 @@ ifdef PTXCONF_NCURSES_WIDE_CHAR
 # For this, the links at runtime are required
 #
 	for lib in $(NCURSES_LIBRARY_LIST); do \
-		echo "INPUT(-l$${lib}w)" > $(NCURSES_PKGDIR)/lib/lib$${lib}.so ; \
+		echo "INPUT(-l$${lib}w)" > $(NCURSES_PKGDIR)/$(CROSS_LIB_DIR)/lib$${lib}.so ; \
 	done
-	ln -sf libncurses++w.a $(NCURSES_PKGDIR)/lib/libncurses++.a
+	ln -sf libncurses++w.a $(NCURSES_PKGDIR)/$(CROSS_LIB_DIR)/libncurses++.a
 
 	ln -sf -- "ncursesw$(NCURSES_MAJOR)-config" \
 		"$(NCURSES_PKGDIR)/usr/bin/ncurses$(NCURSES_MAJOR)-config"
@@ -147,22 +147,22 @@ $(STATEDIR)/ncurses.targetinstall:
 
 ifdef PTXCONF_NCURSES_BACKWARD_COMPATIBLE_NON_WIDE_CHAR
 	@$(call install_link, ncurses, libncursesw.so.$(NCURSES_VERSION), \
-		/lib/libncurses.so.$(NCURSES_VERSION))
+		/$(CROSS_LIB_DIR)/libncurses.so.$(NCURSES_VERSION))
 	@$(call install_link, ncurses, libncursesw.so.$(NCURSES_VERSION), \
-		/lib/libncurses.so.$(NCURSES_MAJOR))
+		/$(CROSS_LIB_DIR)/libncurses.so.$(NCURSES_MAJOR))
 	@$(call install_link, ncurses, libncursesw.so.$(NCURSES_VERSION), \
-		/lib/libncurses.so)
+		/$(CROSS_LIB_DIR)/libncurses.so)
 endif
 
 ifdef PTXCONF_NCURSES_FORM
 	@$(call install_lib, ncurses, 0, 0, 0644, libform$(NCURSES_WIDE))
 ifdef PTXCONF_NCURSES_BACKWARD_COMPATIBLE_NON_WIDE_CHAR
 	@$(call install_link, ncurses, libformw.so.$(NCURSES_VERSION), \
-		/lib/libform.so.$(NCURSES_VERSION))
+		/$(CROSS_LIB_DIR)/libform.so.$(NCURSES_VERSION))
 	@$(call install_link, ncurses, libformw.so.$(NCURSES_VERSION), \
-		/lib/libform.so.$(NCURSES_MAJOR))
+		/$(CROSS_LIB_DIR)/libform.so.$(NCURSES_MAJOR))
 	@$(call install_link, ncurses, libformw.so.$(NCURSES_VERSION), \
-		/lib/libform.so)
+		/$(CROSS_LIB_DIR)/libform.so)
 endif
 endif
 
@@ -171,11 +171,11 @@ ifdef PTXCONF_NCURSES_MENU
 	@$(call install_lib, ncurses, 0, 0, 0644, libmenu$(NCURSES_WIDE))
 ifdef PTXCONF_NCURSES_BACKWARD_COMPATIBLE_NON_WIDE_CHAR
 	@$(call install_link, ncurses, libmenuw.so.$(NCURSES_VERSION), \
-		/lib/libmenu.so.$(NCURSES_VERSION))
+		/$(CROSS_LIB_DIR)/libmenu.so.$(NCURSES_VERSION))
 	@$(call install_link, ncurses, libmenuw.so.$(NCURSES_VERSION), \
-		/lib/libmenu.so.$(NCURSES_MAJOR))
+		/$(CROSS_LIB_DIR)/libmenu.so.$(NCURSES_MAJOR))
 	@$(call install_link, ncurses, libmenuw.so.$(NCURSES_VERSION), \
-		/lib/libmenu.so)
+		/$(CROSS_LIB_DIR)/libmenu.so)
 endif
 endif
 
@@ -184,11 +184,11 @@ ifdef PTXCONF_NCURSES_PANEL
 	@$(call install_lib, ncurses, 0, 0, 0644, libpanel$(NCURSES_WIDE))
 ifdef PTXCONF_NCURSES_BACKWARD_COMPATIBLE_NON_WIDE_CHAR
 	@$(call install_link, ncurses, libpanelw.so.$(NCURSES_VERSION), \
-		/lib/libpanel.so.$(NCURSES_VERSION))
+		/$(CROSS_LIB_DIR)/libpanel.so.$(NCURSES_VERSION))
 	@$(call install_link, ncurses, libpanelw.so.$(NCURSES_VERSION), \
-		/lib/libpanel.so.$(NCURSES_MAJOR))
+		/$(CROSS_LIB_DIR)/libpanel.so.$(NCURSES_MAJOR))
 	@$(call install_link, ncurses, libpanelw.so.$(NCURSES_VERSION), \
-		/lib/libpanel.so)
+		/$(CROSS_LIB_DIR)/libpanel.so)
 endif
 endif
 
-- 
1.7.5.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ptxdist] [PATCH v4 6/7] [x86_64, multilib] Install Readline libraries at the right place
  2012-03-25 18:31 [ptxdist] [PATCH v4 1/7] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
                   ` (3 preceding siblings ...)
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 5/7] [x86_64, multilib] Install Ncurses " Remy Bohmer
@ 2012-03-25 18:31 ` Remy Bohmer
  2012-03-27 14:09   ` Michael Olbrich
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 7/7] [x86_64, multilib] Install Procps " Remy Bohmer
  5 siblings, 1 reply; 13+ messages in thread
From: Remy Bohmer @ 2012-03-25 18:31 UTC (permalink / raw)
  To: ptxdist

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 rules/readline.make |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/rules/readline.make b/rules/readline.make
index d5a8ec0..6e6c55a 100644
--- a/rules/readline.make
+++ b/rules/readline.make
@@ -41,7 +41,8 @@ READLINE_AUTOCONF := \
 	$(CROSS_AUTOCONF_ROOT) \
 	--enable-shared \
 	--disable-static\
-	--disable-multibyte
+	--disable-multibyte \
+	--libdir=/$(CROSS_LIB_DIR)
 
 ifdef PTXCONF_READLINE_TERMCAP
 READLINE_AUTOCONF += --without-curses
-- 
1.7.5.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [ptxdist] [PATCH v4 7/7] [x86_64, multilib] Install Procps libraries at the right place
  2012-03-25 18:31 [ptxdist] [PATCH v4 1/7] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
                   ` (4 preceding siblings ...)
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 6/7] [x86_64, multilib] Install Readline " Remy Bohmer
@ 2012-03-25 18:31 ` Remy Bohmer
  5 siblings, 0 replies; 13+ messages in thread
From: Remy Bohmer @ 2012-03-25 18:31 UTC (permalink / raw)
  To: ptxdist

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 rules/procps.make |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/rules/procps.make b/rules/procps.make
index 7ab3786..44d7ea5 100644
--- a/rules/procps.make
+++ b/rules/procps.make
@@ -51,7 +51,7 @@ PROCPS_MAKEVARS	:= \
 	CFLAGS=-O2 \
 	CPPFLAGS='$(CROSS_CPPFLAGS)' \
 	LDFLAGS='$(CROSS_LDFLAGS)' \
-	lib64=lib \
+	lib64=$(CROSS_LIB_DIR) \
 	ldconfig=true \
 	MANFILES="" \
 	BINFILES="$(PROCPS_ALL-y)"
@@ -73,8 +73,7 @@ $(STATEDIR)/procps.targetinstall:
 	@$(call install_fixup, procps,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
 	@$(call install_fixup, procps,DESCRIPTION,missing)
 
-	@$(call install_copy, procps, 0, 0, 0644, -, \
-		/lib/libproc-3.2.8.so)
+	@$(call install_lib, procps, 0, 0, 0644, libproc-3.2.8)
 
 ifdef PTXCONF_PROCPS_TOP
 	@$(call install_copy, procps, 0, 0, 0755, -,\
-- 
1.7.5.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [ptxdist] [PATCH v4 6/7] [x86_64, multilib] Install Readline libraries at the right place
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 6/7] [x86_64, multilib] Install Readline " Remy Bohmer
@ 2012-03-27 14:09   ` Michael Olbrich
  2012-03-27 17:07     ` Remy Bohmer
  0 siblings, 1 reply; 13+ messages in thread
From: Michael Olbrich @ 2012-03-27 14:09 UTC (permalink / raw)
  To: ptxdist

On Sun, Mar 25, 2012 at 08:31:39PM +0200, Remy Bohmer wrote:
> Signed-off-by: Remy Bohmer <linux@bohmer.net>
> ---
>  rules/readline.make |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/rules/readline.make b/rules/readline.make
> index d5a8ec0..6e6c55a 100644
> --- a/rules/readline.make
> +++ b/rules/readline.make
> @@ -41,7 +41,8 @@ READLINE_AUTOCONF := \
>  	$(CROSS_AUTOCONF_ROOT) \
>  	--enable-shared \
>  	--disable-static\
> -	--disable-multibyte
> +	--disable-multibyte \
> +	--libdir=/$(CROSS_LIB_DIR)

I think, this should be obsolete now, right?

Michael

>  
>  ifdef PTXCONF_READLINE_TERMCAP
>  READLINE_AUTOCONF += --without-curses
> -- 
> 1.7.5.4
> 
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [ptxdist] [PATCH v4 3/7] [x86_64, multilib] Make packages install their libraries at the right place
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 3/7] [x86_64, multilib] Make packages install their libraries at the right place Remy Bohmer
@ 2012-03-27 14:13   ` Michael Olbrich
  2012-03-27 19:57     ` Remy Bohmer
  0 siblings, 1 reply; 13+ messages in thread
From: Michael Olbrich @ 2012-03-27 14:13 UTC (permalink / raw)
  To: ptxdist

On Sun, Mar 25, 2012 at 08:31:36PM +0200, Remy Bohmer wrote:
> While cross-compiling for x86_64 in a multilib configuration we need to
> install the libraries conform the Filesystem Hierarchy Standard (FHS).
> Summarised this will be for multilib:
> * All libraries compiled for and used in 64-bit applications need to be
>   installed in /lib64 or /usr/lib64.
> * All libraries compiled for and used in 32-bit applications need to be
>   installed in /lib or /usr/lib.
> * All executables will still find its way in the regular /bin and /sbin
>   paths.
> * The Operating System itself and all its libraries should only be compiled
>   in 64 bit mode. It should not be a mix between 32 and 64 bit libraries.
>   32 bit support will only contain the libraries that are required by
>   32-bit-applications to link against.
> 
> This is also conform what many distros derived from Redhat have in their
> setup. Note that Debian based distros follow a somewhat different setup.
> 
> Note that we use the compiler toolchain to tell us at which paths we
> need to install the libraries. This means that if you build for a x86_64
> target _without_ multilib support the libraries will likely end up in the
> classical /lib and /usr/lib directories, but that is completely steered
> by the compiler toolchain configuration. (it follows the location where
> the corresponding dynamic linker is expected to be installed)
> 
> So, this change makes ptxdist follow the sysroot of the compiler toolchain
> more such that preliminary multilib support can be achieved. Preliminary
> in the sense that only still one C-library is being installed.
> In another changeset the support for a 2nd C-library installation will be
> added. At least after this change (and a few subsequent ptxdist makefile
> fixes) the /lib and /usr/lib area will only contain the contents that belong
> there in multilib environment.

I want to run some more tests, but this patch and the following patches
look good now. I'll probably merge them right after the release.
Not sure yet how I want to handle the first two patches...

Michael

> Signed-off-by: Remy Bohmer <linux@bohmer.net>
> ---
>  rules/pre/Rules.make              |    6 ++++--
>  rules/termcap.make                |    3 ++-
>  scripts/lib/ptxd_make_00-init.sh  |   20 ++++++++++++++++++--
>  scripts/lib/ptxd_make_xpkg_pkg.sh |    7 +++++--
>  4 files changed, 29 insertions(+), 7 deletions(-)
> 
> diff --git a/rules/pre/Rules.make b/rules/pre/Rules.make
> index 1d6da52..1d09a18 100644
> --- a/rules/pre/Rules.make
> +++ b/rules/pre/Rules.make
> @@ -174,6 +174,8 @@ CROSS_ENV_PROGS := \
>  	$(CROSS_ENV_CPP_FOR_BUILD) \
>  	$(CROSS_ENV_LINK_FOR_BUILD)
>  
> +CROSS_LIB_DIR   := $(shell ptxd_get_lib_dir)
> +
>  #
>  # prepare to use pkg-config with wrapper which takes care of
>  # $(PTXDIST_SYSROOT_TARGET). The wrapper's magic doesn't work when
> @@ -266,10 +268,10 @@ CROSS_ENV := \
>  #
>  
>  CROSS_AUTOCONF_SYSROOT_USR := \
> -	--prefix=/usr --sysconfdir=/etc --localstatedir=/var
> +	--prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/$(CROSS_LIB_DIR)
>  
>  CROSS_AUTOCONF_SYSROOT_ROOT := \
> -	--prefix=
> +	--libdir=/$(CROSS_LIB_DIR) --prefix=
>  
>  CROSS_AUTOCONF_ARCH := \
>  	--host=$(PTXCONF_GNU_TARGET) \
> diff --git a/rules/termcap.make b/rules/termcap.make
> index 4222840..4cbcb5a 100644
> --- a/rules/termcap.make
> +++ b/rules/termcap.make
> @@ -44,7 +44,8 @@ TERMCAP_ENV 	:= $(CROSS_ENV)
>  # autoconf
>  #
>  TERMCAP_AUTOCONF := \
> -	$(CROSS_AUTOCONF_ROOT) \
> +	--prefix= \
> +	$(CROSS_AUTOCONF_ARCH) \
>  	--enable-install-termcap
>  
>  # ----------------------------------------------------------------------------
> diff --git a/scripts/lib/ptxd_make_00-init.sh b/scripts/lib/ptxd_make_00-init.sh
> index eed2a2e..bd8f6a0 100644
> --- a/scripts/lib/ptxd_make_00-init.sh
> +++ b/scripts/lib/ptxd_make_00-init.sh
> @@ -137,6 +137,19 @@ ptxd_init_collectionconfig() {
>  
>  
>  #
> +# out: 'lib' or 'lib64', derived from the ld-{linux,uClibc}.so.? from the compiler toolchain
> +#
> +ptxd_get_lib_dir() {
> +    local dl lib_dir
> +
> +    dl="$(ptxd_cross_cc_v | \
> +	sed -n -e 's/.* -dynamic-linker \([^ ]*\).*/\1/p')"
> +    lib_dir="${dl%%/ld-*.so.*}"
> +    echo "${lib_dir#/}"
> +}
> +export -f ptxd_get_lib_dir
> +
> +#
>  # setup compiler and pkgconfig environment
>  #
>  # in:
> @@ -158,6 +171,9 @@ ptxd_init_cross_env() {
>      prefix=( ${PTXDIST_PATH_SYSROOT_PREFIX} )
>      IFS="${orig_IFS}"
>  
> +    local -a lib_dir
> +    lib_dir=$(ptxd_get_lib_dir)
> +
>      # add "-isystem <DIR>/include"
>      local -a cppflags
>      cppflags=( "${prefix[@]/%//include}" )
> @@ -165,7 +181,7 @@ ptxd_init_cross_env() {
>  
>      # add "-L<DIR>/lib -Wl,-rpath-link -Wl,<DIR>"
>      local -a ldflags
> -    ldflags=( "${prefix[@]/%//lib}" )
> +    ldflags=( "${prefix[@]/%//${lib_dir}}" )
>      ldflags=( "${ldflags[@]/#/-L}" "${ldflags[@]/#/-Wl,-rpath-link -Wl,}" )
>  
>      export \
> @@ -184,7 +200,7 @@ ptxd_init_cross_env() {
>  
>      # add <DIR>/lib/pkgconfig and <DIR>/share/pkgconfig
>      local -a pkg_libdir
> -    pkg_libdir=( "${prefix[@]/%//lib/pkgconfig}" "${prefix[@]/%//share/pkgconfig}" )
> +    pkg_libdir=( "${prefix[@]/%//${lib_dir}/pkgconfig}" "${prefix[@]/%//share/pkgconfig}" )
>  
>      #
>      # PKG_CONFIG_PATH contains additional pkg-config search
> diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh b/scripts/lib/ptxd_make_xpkg_pkg.sh
> index c03f19e..73ff2c2 100644
> --- a/scripts/lib/ptxd_make_xpkg_pkg.sh
> +++ b/scripts/lib/ptxd_make_xpkg_pkg.sh
> @@ -597,6 +597,8 @@ ptxd_install_spec() {
>  export -f ptxd_install_spec
>  
>  ptxd_install_package() {
> +    local lib_dir=$(ptxd_get_lib_dir)
> +
>      for dir in "${pkg_pkg_dir}/"{,usr/}{bin,sbin,libexec}; do
>  	find "${dir}" \( -type f -o -type l \) \
>  		    -perm /111 2>/dev/null | while read file; do
> @@ -605,7 +607,7 @@ ptxd_install_package() {
>  	done
>      done
>  
> -    for dir in "${pkg_pkg_dir}/"{,usr/}lib; do
> +    for dir in "${pkg_pkg_dir}/"{,usr/}${lib_dir}; do
>  	find "${dir}" \( -type f -o -type l \) \
>  		    -a -name "*.so*" 2>/dev/null | while read file; do
>  	    ptxd_install_generic - "${file#${pkg_pkg_dir}}" ||
> @@ -635,10 +637,11 @@ ptxd_install_shared() {
>  export -f ptxd_install_shared
>  
>  ptxd_install_lib() {
> +    local lib_dir=$(ptxd_get_lib_dir)
>      local lib="$1"
>      shift
>  
> -    local file="$(for dir in "${pkg_pkg_dir}/"{,usr/}lib; do
> +    local file="$(for dir in "${pkg_pkg_dir}/"{,usr/}${lib_dir}; do
>  	    find "${dir}" -type f -path "${dir}/${lib}.so*"; done 2>/dev/null)"
>  
>      if [ ! -f "${file}" ]; then
> -- 
> 1.7.5.4
> 
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [ptxdist] [PATCH v4 6/7] [x86_64, multilib] Install Readline libraries at the right place
  2012-03-27 14:09   ` Michael Olbrich
@ 2012-03-27 17:07     ` Remy Bohmer
  0 siblings, 0 replies; 13+ messages in thread
From: Remy Bohmer @ 2012-03-27 17:07 UTC (permalink / raw)
  To: ptxdist

Hi,

2012/3/27 Michael Olbrich <m.olbrich@pengutronix.de>:
> On Sun, Mar 25, 2012 at 08:31:39PM +0200, Remy Bohmer wrote:
>> Signed-off-by: Remy Bohmer <linux@bohmer.net>
>> ---
>>  rules/readline.make |    3 ++-
>>  1 files changed, 2 insertions(+), 1 deletions(-)
>>
>> diff --git a/rules/readline.make b/rules/readline.make
>> index d5a8ec0..6e6c55a 100644
>> --- a/rules/readline.make
>> +++ b/rules/readline.make
>> @@ -41,7 +41,8 @@ READLINE_AUTOCONF := \
>>       $(CROSS_AUTOCONF_ROOT) \
>>       --enable-shared \
>>       --disable-static\
>> -     --disable-multibyte
>> +     --disable-multibyte \
>> +     --libdir=/$(CROSS_LIB_DIR)
>
> I think, this should be obsolete now, right?

Indeed, we added libdir now to CROSS_AUTOCONF_ROOT, so drop it.

Kind regards,

Remy

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [ptxdist] [PATCH v4 3/7] [x86_64, multilib] Make packages install their libraries at the right place
  2012-03-27 14:13   ` Michael Olbrich
@ 2012-03-27 19:57     ` Remy Bohmer
  0 siblings, 0 replies; 13+ messages in thread
From: Remy Bohmer @ 2012-03-27 19:57 UTC (permalink / raw)
  To: ptxdist

Hi,

2012/3/27 Michael Olbrich <m.olbrich@pengutronix.de>:
> I want to run some more tests, but this patch and the following patches
> look good now. I'll probably merge them right after the release.
> Not sure yet how I want to handle the first two patches...

I just build an OSELAS toolchain, and I noticed the following:
* gconf installation works as well with OSELAS toolchain
* libgcc installation works also
--> /bin/locale fails.

So, the first (libgcc) patch works with: OSELAS, CodeSourcery and
crosstool-ng toolchains.
The 2nd patch patch needs some rework on /bin/locale. I will see if I
can come up with a solution for this one as well.

Kind regards,

Remy

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [ptxdist] [PATCH v4 2/7] [x86_64, multilib] Remove all hardcoded paths from glibc.make
  2012-03-25 18:31 ` [ptxdist] [PATCH v4 2/7] [x86_64, multilib] Remove all hardcoded paths from glibc.make Remy Bohmer
@ 2012-03-28 10:52   ` Michael Olbrich
  2012-03-28 15:24     ` Remy Bohmer
  0 siblings, 1 reply; 13+ messages in thread
From: Michael Olbrich @ 2012-03-28 10:52 UTC (permalink / raw)
  To: ptxdist

On Sun, Mar 25, 2012 at 08:31:35PM +0200, Remy Bohmer wrote:
> 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 <linux@bohmer.net>
> ---

Please split the patch. I think the gconf stuff + change in
scripts/install_copy_toolchain.sh is ready to be merged together with patch
1/7. We can merge bin/locale later when we have something.

And leave rules/post/install.make as it is for now. We'll just not use the
extra option for now.

Michael

>  rules/glibc.make                  |   23 +++++++++++------------
>  rules/post/install.make           |   18 ++++++------------
>  scripts/install_copy_toolchain.sh |    2 +-
>  3 files changed, 18 insertions(+), 25 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 7b91fc4..44c399a 100755
> --- a/scripts/install_copy_toolchain.sh
> +++ b/scripts/install_copy_toolchain.sh
> @@ -101,7 +101,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
> -- 
> 1.7.5.4
> 
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [ptxdist] [PATCH v4 2/7] [x86_64, multilib] Remove all hardcoded paths from glibc.make
  2012-03-28 10:52   ` Michael Olbrich
@ 2012-03-28 15:24     ` Remy Bohmer
  0 siblings, 0 replies; 13+ messages in thread
From: Remy Bohmer @ 2012-03-28 15:24 UTC (permalink / raw)
  To: ptxdist

Hi,

2012/3/28 Michael Olbrich <m.olbrich@pengutronix.de>:
> On Sun, Mar 25, 2012 at 08:31:35PM +0200, Remy Bohmer wrote:
>> 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 <linux@bohmer.net>
>> ---
>
> Please split the patch. I think the gconf stuff + change in
> scripts/install_copy_toolchain.sh is ready to be merged together with patch
> 1/7. We can merge bin/locale later when we have something.
>
> And leave rules/post/install.make as it is for now. We'll just not use the
> extra option for now.

OK, I will send an update of this patch.
Thanks

Kind regards,

Remy

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-03-28 15:24 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-25 18:31 [ptxdist] [PATCH v4 1/7] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
2012-03-25 18:31 ` [ptxdist] [PATCH v4 2/7] [x86_64, multilib] Remove all hardcoded paths from glibc.make Remy Bohmer
2012-03-28 10:52   ` Michael Olbrich
2012-03-28 15:24     ` Remy Bohmer
2012-03-25 18:31 ` [ptxdist] [PATCH v4 3/7] [x86_64, multilib] Make packages install their libraries at the right place Remy Bohmer
2012-03-27 14:13   ` Michael Olbrich
2012-03-27 19:57     ` Remy Bohmer
2012-03-25 18:31 ` [ptxdist] [PATCH v4 4/7] [x86_64, multilib] Install Zlib " Remy Bohmer
2012-03-25 18:31 ` [ptxdist] [PATCH v4 5/7] [x86_64, multilib] Install Ncurses " Remy Bohmer
2012-03-25 18:31 ` [ptxdist] [PATCH v4 6/7] [x86_64, multilib] Install Readline " Remy Bohmer
2012-03-27 14:09   ` Michael Olbrich
2012-03-27 17:07     ` Remy Bohmer
2012-03-25 18:31 ` [ptxdist] [PATCH v4 7/7] [x86_64, multilib] Install Procps " Remy Bohmer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox