WIP. Not liking this much. Although it works. I've tested this on a cross x86_64 which builds and runs just fine.
1. Not really in need of a BUILTIN_SO workaround with version checking. It doesn't hurt to install the "empty" .so, esp. if you want to run older binaries with the sonames that end up used through DT_NEEDED. Then it's a must. 2. Unknown how static the real sonames are. I prefer something that will work over architectures and over time. Ergo, nack on the glibc suggestion to use the sonames directly. 3. Would be much cleaner if the copying could resolve libname.so manually instead of using -print-file-name. Then this could go away. Signed-off-by: Christian Melki <[email protected]> --- rules/glibc.make | 47 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/rules/glibc.make b/rules/glibc.make index d29f9e2ed..a0b8a2827 100644 --- a/rules/glibc.make +++ b/rules/glibc.make @@ -22,6 +22,15 @@ GLIBC_VERSION := $(call ptx/config-version, PTXCONF_GLIBC) # for license information -include $(PTXDIST_PLATFORMDIR)/selected_toolchain/../share/compliance/glibc.make +glibc-version-split = $(subst -, ,$(subst ., ,$($(strip $(1))_VERSION))) +glibc-major = $(word 1,$(call kernel-version-split, $(1))) +glibc-minor = $(word 2,$(call kernel-version-split, $(1))) + +GLIBC_VERSION_MAJOR := $(call kernel-major,GLIBC) +GLIBC_VERSION_MINOR := $(call kernel-minor,GLIBC) + +GLIBC_BUILTIN_SO := $(call ptx/force-sh, test $(GLIBC_VERSION_MAJOR) -ge 2 -a \( $(GLIBC_VERSION_MINOR) -ge 34 \) && echo y) + # ---------------------------------------------------------------------------- # Target-Install # ---------------------------------------------------------------------------- @@ -44,67 +53,75 @@ ifdef PTXCONF_GLIBC_C endif ifdef PTXCONF_GLIBC_PTHREAD - @$(call install_copy_toolchain_lib, glibc, libpthread.so) +ifneq ($(GLIBC_BUILTIN_SO),y) + @$(call install_copy_toolchain_lib, glibc, libpthread.so.0) +endif endif ifdef PTXCONF_GLIBC_THREAD_DB - @$(call install_copy_toolchain_lib, glibc, libthread_db.so) + @$(call install_copy_toolchain_lib, glibc, libthread_db.so.1) endif ifdef PTXCONF_GLIBC_RT - @$(call install_copy_toolchain_lib, glibc, librt.so) + @$(call install_copy_toolchain_lib, glibc, librt.so.1) endif ifdef PTXCONF_GLIBC_DL +ifneq ($(GLIBC_BUILTIN_SO),y) @$(call install_copy_toolchain_lib, glibc, libdl.so.2) endif +endif ifdef PTXCONF_GLIBC_CRYPT - @$(call install_copy_toolchain_lib, glibc, libcrypt.so) + @$(call install_copy_toolchain_lib, glibc, libcrypt.so.1) endif ifdef PTXCONF_GLIBC_UTIL - @$(call install_copy_toolchain_lib, glibc, libutil.so) +ifneq ($(GLIBC_BUILTIN_SO),y) + @$(call install_copy_toolchain_lib, glibc, libutil.so.1) +endif endif ifdef PTXCONF_GLIBC_M - @$(call install_copy_toolchain_lib, glibc, libm.so) + @$(call install_copy_toolchain_lib, glibc, libm.so.6) endif ifdef PTXCONF_GLIBC_NSS_DNS - @$(call install_copy_toolchain_lib, glibc, libnss_dns.so) + @$(call install_copy_toolchain_lib, glibc, libnss_dns.so.2) endif ifdef PTXCONF_GLIBC_NSS_FILES - @$(call install_copy_toolchain_lib, glibc, libnss_files.so) + @$(call install_copy_toolchain_lib, glibc, libnss_files.so.2) endif ifdef PTXCONF_GLIBC_NSS_HESIOD - @$(call install_copy_toolchain_lib, glibc, libnss_hesiod.so) + @$(call install_copy_toolchain_lib, glibc, libnss_hesiod.so.2) endif ifdef PTXCONF_GLIBC_ANL - @$(call install_copy_toolchain_lib, glibc, libanl.so) +ifneq ($(GLIBC_BUILTIN_SO),y) + @$(call install_copy_toolchain_lib, glibc, libanl.so.1) +endif endif ifdef PTXCONF_GLIBC_NSS_NIS - @$(call install_copy_toolchain_lib, glibc, libnss_nis.so) + @$(call install_copy_toolchain_lib, glibc, libnss_nis.so.2) endif ifdef PTXCONF_GLIBC_NSS_NISPLUS - @$(call install_copy_toolchain_lib, glibc, libnss_nisplus.so) + @$(call install_copy_toolchain_lib, glibc, libnss_nisplus.so.2) endif ifdef PTXCONF_GLIBC_NSS_COMPAT - @$(call install_copy_toolchain_lib, glibc, libnss_compat.so) + @$(call install_copy_toolchain_lib, glibc, libnss_compat.so.2) endif ifdef PTXCONF_GLIBC_RESOLV - @$(call install_copy_toolchain_lib, glibc, libresolv.so) + @$(call install_copy_toolchain_lib, glibc, libresolv.so.2) endif ifdef PTXCONF_GLIBC_NSL - @$(call install_copy_toolchain_lib, glibc, libnsl.so) + @$(call install_copy_toolchain_lib, glibc, libnsl.so.1) endif ifdef PTXCONF_GLIBC_GCONF_BASE -- 2.30.2 _______________________________________________ ptxdist mailing list [email protected] To unsubscribe, send a mail with subject "unsubscribe" to [email protected]
