From ce8e9bec24e4b36507ce468d6d9e1be1652df98c Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 9 Dec 2012 16:55:08 -0800 Subject: Handle _nl_default_dirname with prefix changes --- ChangeLog.pr14664 | 43 ++++++++++++++++++++++ Makerules | 2 +- .../unix/sysv/linux/aarch64/nptl/libc.abilist | 2 +- .../unix/sysv/linux/alpha/nptl/libc.abilist | 2 +- .../sysdeps/unix/sysv/linux/arm/nptl/libc.abilist | 2 +- .../sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist | 2 +- .../sysv/linux/m68k/coldfire/nptl/libc.abilist | 2 +- .../unix/sysv/linux/m68k/m680x0/nptl/libc.abilist | 2 +- .../unix/sysv/linux/mips/mips32/nptl/libc.abilist | 2 +- .../sysv/linux/mips/mips64/n32/nptl/libc.abilist | 2 +- .../sysv/linux/mips/mips64/n64/nptl/libc.abilist | 2 +- .../powerpc/powerpc32/nofpu/nptl/libc.abilist | 2 +- .../linux/tile/tilegx/tilegx32/nptl/libc.abilist | 2 +- .../linux/tile/tilegx/tilegx64/nptl/libc.abilist | 2 +- .../unix/sysv/linux/tile/tilepro/nptl/libc.abilist | 2 +- scripts/abilist.awk | 10 ++++- sysdeps/unix/sysv/linux/i386/nptl/libc.abilist | 2 +- .../linux/powerpc/powerpc32/fpu/nptl/libc.abilist | 2 +- .../sysv/linux/powerpc/powerpc64/nptl/libc.abilist | 2 +- .../unix/sysv/linux/s390/s390-32/nptl/libc.abilist | 2 +- .../unix/sysv/linux/s390/s390-64/nptl/libc.abilist | 2 +- sysdeps/unix/sysv/linux/sh/nptl/libc.abilist | 2 +- .../sysv/linux/sparc/sparc32/nptl/libc.abilist | 2 +- .../sysv/linux/sparc/sparc64/nptl/libc.abilist | 2 +- .../unix/sysv/linux/x86_64/64/nptl/libc.abilist | 2 +- .../unix/sysv/linux/x86_64/x32/nptl/libc.abilist | 2 +- 26 files changed, 76 insertions(+), 25 deletions(-) create mode 100644 ChangeLog.pr14664 diff --git a/ChangeLog.pr14664 b/ChangeLog.pr14664 new file mode 100644 index 0000000000..0a86954fc4 --- /dev/null +++ b/ChangeLog.pr14664 @@ -0,0 +1,43 @@ +2012-12-09 H.J. Lu + + [BZ #14664] + * Makerules (%.symlist): Pass installed_prefix='$(prefix)' to + scripts/abilist.awk. + * scripts/abilist.awk: Handle _nl_default_dirname which changes + with prefix changes. + * sysdeps/unix/sysv/linux/i386/nptl/libc.abilist: Replace + 0x12 with "0xe + sizeof_prefix". + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist: Likewise. + +ports/ + +2012-12-09 H.J. Lu + + [BZ #14664] + * sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist: Replace + 0x12 with "0xe + sizeof_prefix". + * sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist: Likewise. diff --git a/Makerules b/Makerules index 56dc60b11f..061bb2c576 100644 --- a/Makerules +++ b/Makerules @@ -1145,7 +1145,7 @@ ifeq ($(versioning),yes) # This is handy for checking against existing library binaries. %.symlist: $(..)scripts/abilist.awk %.dynsym - LC_ALL=C $(AWK) -f $^ > $@T + LC_ALL=C $(AWK) -v installed_prefix='$(prefix)' -f $^ > $@T mv -f $@T $@ %.dynsym: %.so diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist index f83e8806a7..8a671a25c8 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist @@ -529,7 +529,7 @@ GLIBC_2.17 _libc_intl_domainname D 0x5 _longjmp F _mcleanup F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x8 _nl_msg_cat_cntr D 0x4 _null_auth D 0x18 diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist index 1d0cc7ec31..ed3ecf5527 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist @@ -267,7 +267,7 @@ GLIBC_2.0 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x8 _nl_msg_cat_cntr D 0x4 _null_auth D 0x18 diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist index ceab6b2cd9..42d3472151 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist @@ -601,7 +601,7 @@ GLIBC_2.4 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist index b3510fe2a2..b228bbf4b8 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist @@ -516,7 +516,7 @@ GLIBC_2.2 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x8 _nl_msg_cat_cntr D 0x4 _null_auth D 0x18 diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist index 3c40379aac..5796b072bc 100644 --- a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist @@ -589,7 +589,7 @@ GLIBC_2.4 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist index f998b1b276..23175fc4fc 100644 --- a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist @@ -258,7 +258,7 @@ GLIBC_2.0 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist index 7378869236..4ff44a971c 100644 --- a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist @@ -255,7 +255,7 @@ GLIBC_2.0 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libc.abilist index df2e63728a..942034613a 100644 --- a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libc.abilist @@ -255,7 +255,7 @@ GLIBC_2.0 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist index 22b3068d8f..1fd70a60e6 100644 --- a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist @@ -253,7 +253,7 @@ GLIBC_2.0 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x8 _nl_msg_cat_cntr D 0x4 _null_auth D 0x18 diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist index 0efc6b55c4..7d4615dec9 100644 --- a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist @@ -268,7 +268,7 @@ GLIBC_2.0 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist index d79b2df55d..23bf1e5d0b 100644 --- a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist @@ -524,7 +524,7 @@ GLIBC_2.12 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist index f617405675..dadb645e7d 100644 --- a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist @@ -524,7 +524,7 @@ GLIBC_2.12 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x8 _nl_msg_cat_cntr D 0x4 _null_auth D 0x18 diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist index d79b2df55d..23bf1e5d0b 100644 --- a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist @@ -524,7 +524,7 @@ GLIBC_2.12 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/scripts/abilist.awk b/scripts/abilist.awk index 6d58f6663b..e81d49a037 100644 --- a/scripts/abilist.awk +++ b/scripts/abilist.awk @@ -2,6 +2,7 @@ # into a simple format that should not change when the ABI is not changing. BEGIN { + installed_prefix_length = length(installed_prefix); if (combine_fullname) combine = 1; if (combine) @@ -43,6 +44,7 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) { type = $3; size = $5; sub(/^0*/, "", size); + hex_size = "0x" size; size = " 0x" size; version = $6; symbol = $NF; @@ -95,8 +97,14 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) { # Disabled -- weakness should not matter to shared library ABIs any more. #if (weak == "w") type = tolower(type); - if (desc == "") + if (desc == "") { + # Handle _nl_default_dirname which changes with prefix changes + if (symbol == "_nl_default_dirname") { + size = strtonum(hex_size) - installed_prefix_length; + size = sprintf(" 0x%x + sizeof_prefix", size); + } desc = " " symbol " " type size; + } if (combine) version = soname " " version (combine_fullname ? " " sofullname : ""); diff --git a/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist b/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist index 67d592959b..e07d39bde5 100644 --- a/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist @@ -258,7 +258,7 @@ GLIBC_2.0 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist index 8e4595825b..f0f2889850 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist @@ -268,7 +268,7 @@ GLIBC_2.0 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist index 8eaaccdfc7..bf1a68a4b5 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist @@ -512,7 +512,7 @@ GLIBC_2.3 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x8 _nl_msg_cat_cntr D 0x4 _null_auth D 0x18 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist index d9914ff53f..f551651c14 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist @@ -258,7 +258,7 @@ GLIBC_2.0 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist index ef1ead3069..61ce8a8cbd 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist @@ -518,7 +518,7 @@ GLIBC_2.2 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x8 _nl_msg_cat_cntr D 0x4 _null_auth D 0x18 diff --git a/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist b/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist index 733b550fee..e575e18ab2 100644 --- a/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist @@ -512,7 +512,7 @@ GLIBC_2.2 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist index 3a96ea883b..cbb114550c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist @@ -260,7 +260,7 @@ GLIBC_2.0 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist index aa892b8b8b..6a9d72b2c8 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist @@ -554,7 +554,7 @@ GLIBC_2.2 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x8 _nl_msg_cat_cntr D 0x4 _null_auth D 0x18 diff --git a/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist index a42d424cde..0568b06922 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist @@ -513,7 +513,7 @@ GLIBC_2.2.5 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x8 _nl_msg_cat_cntr D 0x4 _null_auth D 0x18 diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist index 108b80fb43..8b8c45019d 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist @@ -533,7 +533,7 @@ GLIBC_2.16 _longjmp F _mcleanup F _mcount F - _nl_default_dirname D 0x12 + _nl_default_dirname D 0xe + sizeof_prefix _nl_domain_bindings D 0x4 _nl_msg_cat_cntr D 0x4 _null_auth D 0xc -- cgit 1.4.1