mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH 1/8 v3] [x86_64] libgcc need to be install in /lib64 instead of /lib
@ 2012-03-24 19:07 Remy Bohmer
  2012-03-24 19:07 ` [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make Remy Bohmer
                   ` (6 more replies)
  0 siblings, 7 replies; 21+ messages in thread
From: Remy Bohmer @ 2012-03-24 19:07 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>
---
 v2: no changes since v1
 v3: trivial rebase of v2

 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] 21+ messages in thread

* [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make
  2012-03-24 19:07 [ptxdist] [PATCH 1/8 v3] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
@ 2012-03-24 19:07 ` Remy Bohmer
  2012-03-25 11:01   ` Michael Olbrich
  2012-03-24 19:07 ` [ptxdist] [PATCH 3/8 v3] [x86_64, multilib] Make packages install their libraries at the right place Remy Bohmer
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 21+ messages in thread
From: Remy Bohmer @ 2012-03-24 19:07 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>
---
 v2: no changes since v1
 v3: rebase of v2 (dropped some changes since they are in mainline already)

 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] 21+ messages in thread

* [ptxdist] [PATCH 3/8 v3] [x86_64, multilib] Make packages install their libraries at the right place
  2012-03-24 19:07 [ptxdist] [PATCH 1/8 v3] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
  2012-03-24 19:07 ` [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make Remy Bohmer
@ 2012-03-24 19:07 ` Remy Bohmer
  2012-03-25 10:25   ` Michael Olbrich
  2012-03-24 19:07 ` [ptxdist] [PATCH 4/8 v3] [x86_64, multilib] Install Zlib " Remy Bohmer
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 21+ messages in thread
From: Remy Bohmer @ 2012-03-24 19:07 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>
---
 v2: Fixed uClibc dynamic linker name resolving
     Reworked review remarks from Michael Olbrich:
     - Do not add fix paths to lib64, but get them from ptxd_get_lib_dir
     - Call ptxd_get_lib_dir from the shell script in the make files
 v3: trivial rebase of v2

 rules/pre/Rules.make              |    4 +++-
 scripts/lib/ptxd_make_00-init.sh  |   20 ++++++++++++++++++--
 scripts/lib/ptxd_make_xpkg_pkg.sh |    7 +++++--
 3 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/rules/pre/Rules.make b/rules/pre/Rules.make
index 1d6da52..018c815 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,7 +268,7 @@ 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=
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] 21+ messages in thread

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

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 v2: no changes since v1
 v3: no changes since v2

 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] 21+ messages in thread

* [ptxdist] [PATCH 5/8 v3] [x86_64, multilib] Install Ncurses libraries at the right place
  2012-03-24 19:07 [ptxdist] [PATCH 1/8 v3] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
                   ` (2 preceding siblings ...)
  2012-03-24 19:07 ` [ptxdist] [PATCH 4/8 v3] [x86_64, multilib] Install Zlib " Remy Bohmer
@ 2012-03-24 19:07 ` Remy Bohmer
  2012-03-24 19:07 ` [ptxdist] [PATCH 6/8 v3] [x86_64, multilib] Install Util-linux-ng " Remy Bohmer
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 21+ messages in thread
From: Remy Bohmer @ 2012-03-24 19:07 UTC (permalink / raw)
  To: ptxdist

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 v2: no changes since v1
 v3: no changes since v2

 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] 21+ messages in thread

* [ptxdist] [PATCH 6/8 v3] [x86_64, multilib] Install Util-linux-ng libraries at the right place
  2012-03-24 19:07 [ptxdist] [PATCH 1/8 v3] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
                   ` (3 preceding siblings ...)
  2012-03-24 19:07 ` [ptxdist] [PATCH 5/8 v3] [x86_64, multilib] Install Ncurses " Remy Bohmer
@ 2012-03-24 19:07 ` Remy Bohmer
  2012-03-25 10:51   ` Michael Olbrich
  2012-03-24 19:07 ` [ptxdist] [PATCH 7/8 v3] [x86_64, multilib] Install Readline " Remy Bohmer
  2012-03-24 19:07 ` [ptxdist] [PATCH 8/8 v3] [x86_64, multilib] Install Procps " Remy Bohmer
  6 siblings, 1 reply; 21+ messages in thread
From: Remy Bohmer @ 2012-03-24 19:07 UTC (permalink / raw)
  To: ptxdist

Notice that CROSS_AUTOCONF_USR contains --libdir=/usr/lib{,64} setting.
We want this library in /lib{,64} so we override this setting here
explicitly.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 v2: no changes since v1
 v3: no changes since v2

 rules/util-linux-ng.make |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/rules/util-linux-ng.make b/rules/util-linux-ng.make
index d9a3651..45bb9c2 100644
--- a/rules/util-linux-ng.make
+++ b/rules/util-linux-ng.make
@@ -45,6 +45,7 @@ UTIL_LINUX_NG_ENV 	:= \
 #
 UTIL_LINUX_NG_AUTOCONF := \
 	$(CROSS_AUTOCONF_USR) \
+	--libdir=/$(CROSS_LIB_DIR) \
 	--enable-shared \
 	--disable-static \
 	--disable-gtk-doc \
-- 
1.7.5.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

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

* [ptxdist] [PATCH 7/8 v3] [x86_64, multilib] Install Readline libraries at the right place
  2012-03-24 19:07 [ptxdist] [PATCH 1/8 v3] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
                   ` (4 preceding siblings ...)
  2012-03-24 19:07 ` [ptxdist] [PATCH 6/8 v3] [x86_64, multilib] Install Util-linux-ng " Remy Bohmer
@ 2012-03-24 19:07 ` Remy Bohmer
  2012-03-24 19:07 ` [ptxdist] [PATCH 8/8 v3] [x86_64, multilib] Install Procps " Remy Bohmer
  6 siblings, 0 replies; 21+ messages in thread
From: Remy Bohmer @ 2012-03-24 19:07 UTC (permalink / raw)
  To: ptxdist

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 v2: no changes since v1
 v3: no changes since v2

 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] 21+ messages in thread

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

Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
 v2: no changes since v1
 v3: no changes since v2

 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] 21+ messages in thread

* Re: [ptxdist] [PATCH 3/8 v3] [x86_64, multilib] Make packages install their libraries at the right place
  2012-03-24 19:07 ` [ptxdist] [PATCH 3/8 v3] [x86_64, multilib] Make packages install their libraries at the right place Remy Bohmer
@ 2012-03-25 10:25   ` Michael Olbrich
  2012-03-25 10:41     ` Remy Bohmer
  0 siblings, 1 reply; 21+ messages in thread
From: Michael Olbrich @ 2012-03-25 10:25 UTC (permalink / raw)
  To: ptxdist

On Sat, Mar 24, 2012 at 08:07:03PM +0100, 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.
> 
> Signed-off-by: Remy Bohmer <linux@bohmer.net>
> ---
>  v2: Fixed uClibc dynamic linker name resolving
>      Reworked review remarks from Michael Olbrich:
>      - Do not add fix paths to lib64, but get them from ptxd_get_lib_dir
>      - Call ptxd_get_lib_dir from the shell script in the make files
>  v3: trivial rebase of v2
> 
>  rules/pre/Rules.make              |    4 +++-
>  scripts/lib/ptxd_make_00-init.sh  |   20 ++++++++++++++++++--
>  scripts/lib/ptxd_make_xpkg_pkg.sh |    7 +++++--
>  3 files changed, 26 insertions(+), 5 deletions(-)
> 
> diff --git a/rules/pre/Rules.make b/rules/pre/Rules.make
> index 1d6da52..018c815 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,7 +268,7 @@ 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=

Any reason why you didn't add --libdir=/$(CROSS_LIB_DIR) here?

Michael

> 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] 21+ messages in thread

* Re: [ptxdist] [PATCH 3/8 v3] [x86_64, multilib] Make packages install their libraries at the right place
  2012-03-25 10:25   ` Michael Olbrich
@ 2012-03-25 10:41     ` Remy Bohmer
  2012-03-25 17:43       ` Remy Bohmer
  0 siblings, 1 reply; 21+ messages in thread
From: Remy Bohmer @ 2012-03-25 10:41 UTC (permalink / raw)
  To: ptxdist

Hi,

2012/3/25 Michael Olbrich <m.olbrich@pengutronix.de>:
> On Sat, Mar 24, 2012 at 08:07:03PM +0100, Remy Bohmer wrote:
>>  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=
>
> Any reason why you didn't add --libdir=/$(CROSS_LIB_DIR) here?

No special reason. I guess I forgot it, and did not see it go wrong anywhere...
I will update it in v4

Kind regards,

Remy

-- 
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH 6/8 v3] [x86_64, multilib] Install Util-linux-ng libraries at the right place
  2012-03-24 19:07 ` [ptxdist] [PATCH 6/8 v3] [x86_64, multilib] Install Util-linux-ng " Remy Bohmer
@ 2012-03-25 10:51   ` Michael Olbrich
  2012-03-25 10:55     ` Remy Bohmer
  0 siblings, 1 reply; 21+ messages in thread
From: Michael Olbrich @ 2012-03-25 10:51 UTC (permalink / raw)
  To: ptxdist

On Sat, Mar 24, 2012 at 08:07:06PM +0100, Remy Bohmer wrote:
> Notice that CROSS_AUTOCONF_USR contains --libdir=/usr/lib{,64} setting.
> We want this library in /lib{,64} so we override this setting here
> explicitly.

Does it break anything if we don't do this? I don't think anybody ever
cared what ends up in / and what in /usr. I wouldn't mind installing these
in /usr/lib.

Michael

> Signed-off-by: Remy Bohmer <linux@bohmer.net>
> ---
>  v2: no changes since v1
>  v3: no changes since v2
> 
>  rules/util-linux-ng.make |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/rules/util-linux-ng.make b/rules/util-linux-ng.make
> index d9a3651..45bb9c2 100644
> --- a/rules/util-linux-ng.make
> +++ b/rules/util-linux-ng.make
> @@ -45,6 +45,7 @@ UTIL_LINUX_NG_ENV 	:= \
>  #
>  UTIL_LINUX_NG_AUTOCONF := \
>  	$(CROSS_AUTOCONF_USR) \
> +	--libdir=/$(CROSS_LIB_DIR) \
>  	--enable-shared \
>  	--disable-static \
>  	--disable-gtk-doc \
> -- 
> 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] 21+ messages in thread

* Re: [ptxdist] [PATCH 6/8 v3] [x86_64, multilib] Install Util-linux-ng libraries at the right place
  2012-03-25 10:51   ` Michael Olbrich
@ 2012-03-25 10:55     ` Remy Bohmer
  0 siblings, 0 replies; 21+ messages in thread
From: Remy Bohmer @ 2012-03-25 10:55 UTC (permalink / raw)
  To: ptxdist

Hi,

2012/3/25 Michael Olbrich <m.olbrich@pengutronix.de>:
> On Sat, Mar 24, 2012 at 08:07:06PM +0100, Remy Bohmer wrote:
>> Notice that CROSS_AUTOCONF_USR contains --libdir=/usr/lib{,64} setting.
>> We want this library in /lib{,64} so we override this setting here
>> explicitly.
>
> Does it break anything if we don't do this? I don't think anybody ever
> cared what ends up in / and what in /usr. I wouldn't mind installing these
> in /usr/lib.

I do not expect it would break anything, but I wanted to install the
libraries at the same place as before this patch series.
Goal was not to introduce any regression.

Kind regards,

Remy

-- 
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make
  2012-03-24 19:07 ` [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make Remy Bohmer
@ 2012-03-25 11:01   ` Michael Olbrich
  2012-03-25 17:34     ` Remy Bohmer
  0 siblings, 1 reply; 21+ messages in thread
From: Michael Olbrich @ 2012-03-25 11:01 UTC (permalink / raw)
  To: ptxdist

On Sat, Mar 24, 2012 at 08:07:02PM +0100, 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>
> ---
>  v2: no changes since v1
>  v3: rebase of v2 (dropped some changes since they are in mainline already)
> 
>  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

This breaks with my toolchain:
[...]
install_copy_toolchain_lib: bin/locale not found
[...]

I guess, in your toolchain this is in lib[64]/bin because you need on for
each.

Michael

>  
>  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] 21+ messages in thread

* Re: [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make
  2012-03-25 11:01   ` Michael Olbrich
@ 2012-03-25 17:34     ` Remy Bohmer
  2012-03-26  8:44       ` Michael Olbrich
  0 siblings, 1 reply; 21+ messages in thread
From: Remy Bohmer @ 2012-03-25 17:34 UTC (permalink / raw)
  To: ptxdist

Hi Michael,

2012/3/25 Michael Olbrich <m.olbrich@pengutronix.de>:
> On Sat, Mar 24, 2012 at 08:07:02PM +0100, Remy Bohmer wrote:
>>  ifdef PTXCONF_GLIBC_I18N_BIN_LOCALE
>> -     @$(call install_copy_toolchain_usr, glibc, bin/locale)
>> +     @$(call install_copy_toolchain_lib, glibc, bin/locale)
>>  endif
>
> This breaks with my toolchain:
> [...]
> install_copy_toolchain_lib: bin/locale not found
> [...]
>
> I guess, in your toolchain this is in lib[64]/bin because you need on for
> each.

Correct, these are indeed for example in
/arm-none-linux-gnueabi/libc/usr/lib/bin/locale.
What toolchain are you using? So, I can reproduce it here and fix it.

Kind regards,

Remy

-- 
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH 3/8 v3] [x86_64, multilib] Make packages install their libraries at the right place
  2012-03-25 10:41     ` Remy Bohmer
@ 2012-03-25 17:43       ` Remy Bohmer
  2012-03-25 18:11         ` Remy Bohmer
  0 siblings, 1 reply; 21+ messages in thread
From: Remy Bohmer @ 2012-03-25 17:43 UTC (permalink / raw)
  To: ptxdist

Hi,

2012/3/25 Remy Bohmer <linux@bohmer.net>:
> Hi,
>
> 2012/3/25 Michael Olbrich <m.olbrich@pengutronix.de>:
>> On Sat, Mar 24, 2012 at 08:07:03PM +0100, Remy Bohmer wrote:
>>>  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=
>>
>> Any reason why you didn't add --libdir=/$(CROSS_LIB_DIR) here?
>
> No special reason. I guess I forgot it, and did not see it go wrong anywhere...
> I will update it in v4

I added it and started a testbuild: Adding it will break termcap on
unsupported configure option.
Not sure how to solve it properly, any ideas? (patching termcap as well?)

Kind regards,

Remy

-- 
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH 3/8 v3] [x86_64, multilib] Make packages install their libraries at the right place
  2012-03-25 17:43       ` Remy Bohmer
@ 2012-03-25 18:11         ` Remy Bohmer
  2012-03-27 14:09           ` Michael Olbrich
  0 siblings, 1 reply; 21+ messages in thread
From: Remy Bohmer @ 2012-03-25 18:11 UTC (permalink / raw)
  To: ptxdist

Hi,

> 2012/3/25 Remy Bohmer <linux@bohmer.net>:
>> Hi,
>>
>> 2012/3/25 Michael Olbrich <m.olbrich@pengutronix.de>:
>>> On Sat, Mar 24, 2012 at 08:07:03PM +0100, Remy Bohmer wrote:
>>>>  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=
>>>
>>> Any reason why you didn't add --libdir=/$(CROSS_LIB_DIR) here?
>>
>> No special reason. I guess I forgot it, and did not see it go wrong anywhere...
>> I will update it in v4
>
> I added it and started a testbuild: Adding it will break termcap on
> unsupported configure option.
> Not sure how to solve it properly, any ideas? (patching termcap as well?)

Solved it by adapting termcap.make in v4.

Kind regards,

Remy

-- 
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make
  2012-03-25 17:34     ` Remy Bohmer
@ 2012-03-26  8:44       ` Michael Olbrich
  2012-03-26 10:09         ` Remy Bohmer
  0 siblings, 1 reply; 21+ messages in thread
From: Michael Olbrich @ 2012-03-26  8:44 UTC (permalink / raw)
  To: ptxdist

On Sun, Mar 25, 2012 at 07:34:47PM +0200, Remy Bohmer wrote:
> 2012/3/25 Michael Olbrich <m.olbrich@pengutronix.de>:
> > On Sat, Mar 24, 2012 at 08:07:02PM +0100, Remy Bohmer wrote:
> >>  ifdef PTXCONF_GLIBC_I18N_BIN_LOCALE
> >> -     @$(call install_copy_toolchain_usr, glibc, bin/locale)
> >> +     @$(call install_copy_toolchain_lib, glibc, bin/locale)
> >>  endif
> >
> > This breaks with my toolchain:
> > [...]
> > install_copy_toolchain_lib: bin/locale not found
> > [...]
> >
> > I guess, in your toolchain this is in lib[64]/bin because you need on for
> > each.
> 
> Correct, these are indeed for example in
> /arm-none-linux-gnueabi/libc/usr/lib/bin/locale.
> What toolchain are you using? So, I can reproduce it here and fix it.

Any OSELAS.Toolchain[1] should do. The CodeSourcery toolchains should work
as well, with the current code.
Which toolchain are you using? This code should realy be cleaned up, if I
ever find the time for it. I think it would be a good I idea to have
multiple toolchains at hand for it.

Michael

[1] http://www.pengutronix.de/oselas/toolchain/

-- 
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] 21+ messages in thread

* Re: [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make
  2012-03-26  8:44       ` Michael Olbrich
@ 2012-03-26 10:09         ` Remy Bohmer
  2012-03-27  6:23           ` Michael Olbrich
  0 siblings, 1 reply; 21+ messages in thread
From: Remy Bohmer @ 2012-03-26 10:09 UTC (permalink / raw)
  To: ptxdist

Hi Michael,

2012/3/26 Michael Olbrich <m.olbrich@pengutronix.de>:
> On Sun, Mar 25, 2012 at 07:34:47PM +0200, Remy Bohmer wrote:
>> 2012/3/25 Michael Olbrich <m.olbrich@pengutronix.de>:
>> > On Sat, Mar 24, 2012 at 08:07:02PM +0100, Remy Bohmer wrote:
>> >>  ifdef PTXCONF_GLIBC_I18N_BIN_LOCALE
>> >> -     @$(call install_copy_toolchain_usr, glibc, bin/locale)
>> >> +     @$(call install_copy_toolchain_lib, glibc, bin/locale)
>> >>  endif
>> >
>> > This breaks with my toolchain:
>> > [...]
>> > install_copy_toolchain_lib: bin/locale not found
>> > [...]
>> >
>> > I guess, in your toolchain this is in lib[64]/bin because you need on for
>> > each.
>>
>> Correct, these are indeed for example in
>> /arm-none-linux-gnueabi/libc/usr/lib/bin/locale.
>> What toolchain are you using? So, I can reproduce it here and fix it.
>
> Any OSELAS.Toolchain[1] should do. The CodeSourcery toolchains should work
> as well, with the current code.
> Which toolchain are you using? This code should realy be cleaned up, if I
> ever find the time for it. I think it would be a good I idea to have
> multiple toolchains at hand for it.

I am not sure I understood you correctly. You mentioned that it breaks
with your toolchain... Does it work with OSELAS, or does it not?
We are using CodeSourcery toolchains for ia32 and ARM (several
different releases since 2009-2011), furthermore we are using
toolchains build with crosstool-ng. I tested with all of them, and
these compilers work.
I did NOT test with OSELAS toolchains (since the last time I checked
there was no Windows hosted equivalent for the application developers
besides the Linux hosted toolchains.)

Kind regards,

Remy

-- 
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make
  2012-03-26 10:09         ` Remy Bohmer
@ 2012-03-27  6:23           ` Michael Olbrich
  2012-03-27  7:18             ` Remy Bohmer
  0 siblings, 1 reply; 21+ messages in thread
From: Michael Olbrich @ 2012-03-27  6:23 UTC (permalink / raw)
  To: ptxdist

On Mon, Mar 26, 2012 at 12:09:08PM +0200, Remy Bohmer wrote:
> Hi Michael,
> 
> 2012/3/26 Michael Olbrich <m.olbrich@pengutronix.de>:
> > On Sun, Mar 25, 2012 at 07:34:47PM +0200, Remy Bohmer wrote:
> >> 2012/3/25 Michael Olbrich <m.olbrich@pengutronix.de>:
> >> > On Sat, Mar 24, 2012 at 08:07:02PM +0100, Remy Bohmer wrote:
> >> >>  ifdef PTXCONF_GLIBC_I18N_BIN_LOCALE
> >> >> -     @$(call install_copy_toolchain_usr, glibc, bin/locale)
> >> >> +     @$(call install_copy_toolchain_lib, glibc, bin/locale)
> >> >>  endif
> >> >
> >> > This breaks with my toolchain:
> >> > [...]
> >> > install_copy_toolchain_lib: bin/locale not found
> >> > [...]
> >> >
> >> > I guess, in your toolchain this is in lib[64]/bin because you need on for
> >> > each.
> >>
> >> Correct, these are indeed for example in
> >> /arm-none-linux-gnueabi/libc/usr/lib/bin/locale.
> >> What toolchain are you using? So, I can reproduce it here and fix it.
> >
> > Any OSELAS.Toolchain[1] should do. The CodeSourcery toolchains should work
> > as well, with the current code.
> > Which toolchain are you using? This code should realy be cleaned up, if I
> > ever find the time for it. I think it would be a good I idea to have
> > multiple toolchains at hand for it.
> 
> I am not sure I understood you correctly. You mentioned that it breaks
> with your toolchain... Does it work with OSELAS, or does it not?
> We are using CodeSourcery toolchains for ia32 and ARM (several
> different releases since 2009-2011), furthermore we are using
> toolchains build with crosstool-ng. I tested with all of them, and
> these compilers work.
> I did NOT test with OSELAS toolchains (since the last time I checked
> there was no Windows hosted equivalent for the application developers
> besides the Linux hosted toolchains.)

The code currently in master works with OSELAS.Toolchain and CodeSourcery
toolchains. Your code does _not_ work with OSELAS.Toolchain. But if I
understand you corrctly, it works with CodeSourcery toolchains?

Michael

-- 
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] 21+ messages in thread

* Re: [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make
  2012-03-27  6:23           ` Michael Olbrich
@ 2012-03-27  7:18             ` Remy Bohmer
  0 siblings, 0 replies; 21+ messages in thread
From: Remy Bohmer @ 2012-03-27  7:18 UTC (permalink / raw)
  To: ptxdist

Hi,

2012/3/27 Michael Olbrich <m.olbrich@pengutronix.de>:
> The code currently in master works with OSELAS.Toolchain and CodeSourcery
> toolchains. Your code does _not_ work with OSELAS.Toolchain. But if I
> understand you corrctly, it works with CodeSourcery toolchains?

Correct, it works with codesourcery toolchains and crosstool-ng toolchains.
I will look into the OSELAS issues.
Thanks.

Kind regards,

Remy

-- 
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH 3/8 v3] [x86_64, multilib] Make packages install their libraries at the right place
  2012-03-25 18:11         ` Remy Bohmer
@ 2012-03-27 14:09           ` Michael Olbrich
  0 siblings, 0 replies; 21+ messages in thread
From: Michael Olbrich @ 2012-03-27 14:09 UTC (permalink / raw)
  To: ptxdist

On Sun, Mar 25, 2012 at 08:11:51PM +0200, Remy Bohmer wrote:
> > 2012/3/25 Remy Bohmer <linux@bohmer.net>:
> >> 2012/3/25 Michael Olbrich <m.olbrich@pengutronix.de>:
> >>> On Sat, Mar 24, 2012 at 08:07:03PM +0100, Remy Bohmer wrote:
> >>>>  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=
> >>>
> >>> Any reason why you didn't add --libdir=/$(CROSS_LIB_DIR) here?
> >>
> >> No special reason. I guess I forgot it, and did not see it go wrong anywhere...
> >> I will update it in v4
> >
> > I added it and started a testbuild: Adding it will break termcap on
> > unsupported configure option.
> > Not sure how to solve it properly, any ideas? (patching termcap as well?)
> 
> Solved it by adapting termcap.make in v4.

Hmmm, we could also add a autogen.sh to create a proper configure. Keep you
patch as it is I'll think about this and make any necessary changes.

Michael

-- 
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] 21+ messages in thread

end of thread, other threads:[~2012-03-27 14:09 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-24 19:07 [ptxdist] [PATCH 1/8 v3] [x86_64] libgcc need to be install in /lib64 instead of /lib Remy Bohmer
2012-03-24 19:07 ` [ptxdist] [PATCH 2/8 v3] [x86_64, multilib] Remove all hardcoded paths from glibc.make Remy Bohmer
2012-03-25 11:01   ` Michael Olbrich
2012-03-25 17:34     ` Remy Bohmer
2012-03-26  8:44       ` Michael Olbrich
2012-03-26 10:09         ` Remy Bohmer
2012-03-27  6:23           ` Michael Olbrich
2012-03-27  7:18             ` Remy Bohmer
2012-03-24 19:07 ` [ptxdist] [PATCH 3/8 v3] [x86_64, multilib] Make packages install their libraries at the right place Remy Bohmer
2012-03-25 10:25   ` Michael Olbrich
2012-03-25 10:41     ` Remy Bohmer
2012-03-25 17:43       ` Remy Bohmer
2012-03-25 18:11         ` Remy Bohmer
2012-03-27 14:09           ` Michael Olbrich
2012-03-24 19:07 ` [ptxdist] [PATCH 4/8 v3] [x86_64, multilib] Install Zlib " Remy Bohmer
2012-03-24 19:07 ` [ptxdist] [PATCH 5/8 v3] [x86_64, multilib] Install Ncurses " Remy Bohmer
2012-03-24 19:07 ` [ptxdist] [PATCH 6/8 v3] [x86_64, multilib] Install Util-linux-ng " Remy Bohmer
2012-03-25 10:51   ` Michael Olbrich
2012-03-25 10:55     ` Remy Bohmer
2012-03-24 19:07 ` [ptxdist] [PATCH 7/8 v3] [x86_64, multilib] Install Readline " Remy Bohmer
2012-03-24 19:07 ` [ptxdist] [PATCH 8/8 v3] [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