about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/hppa/ld.abilist
diff options
context:
space:
mode:
authorCarlos O'Donell <carlos@systemhalted.org>2014-07-01 23:52:09 -0400
committerCarlos O'Donell <carlos@systemhalted.org>2014-07-01 23:59:47 -0400
commitccf431ffe19efdd608f641ab68e47063691a65c3 (patch)
tree15d5d26ac5f17eac3c6c5a3cb5c8b1c92f5fcfb6 /sysdeps/unix/sysv/linux/hppa/ld.abilist
parentca06321df0d5327f30b7ef7065278974dd89c6d8 (diff)
downloadglibc-ccf431ffe19efdd608f641ab68e47063691a65c3.tar.gz
glibc-ccf431ffe19efdd608f641ab68e47063691a65c3.tar.xz
glibc-ccf431ffe19efdd608f641ab68e47063691a65c3.zip
hppa: Add ABI baselines.
The following ABI baselines were tested against several old releases
of debian and gentoo. Several problems were discovered and fixed as
part of developing the ABI baselines.

Firstly, libBrokenLocale on gentoo exports __ctype_get_mb_cur_max
as @@GLIBC_2.0, but it should be @@GLIBC_2.2 since that's the minimum
version defined in shlib-versions for hppa. I don't know when this
broke, but master properly parses hppa's shlib-versions which clearly
lists libBrokenLocale as defaulting to GLIBC_2.2. Therefore I'm
accepting GLBIC_2.2 as the correct version for this symbol and setting
the baseline to that, despite the fact that the present distribution
is wrong. I don't expect that any new applications should be using
libBrokenLocale, so it should match the oldest behaviour which is to
export a GLIBC_2.2 symbol. For example in debian's 2.7 has it at
version GLIBC_2.2.

Secondly, aio_cancel and aio_cancel64 previously had a compat symbol
at version @GLIBC_2.1 with a new symbol at @@GLIBC_2.3[1]. During the
Linuxthreads to NPTL transition the file aio_cancel.c was lost for hppa
and that resulted in just @@GLIBC_2.1 versions of these symbols being
exported. The @@GLIBC_2.1 version works correctly and uses the right
value of ECANCELLED. Therefore if I were to fix this today it might
break correctly working applications using aio_cancel*@GLIBC_2.1 by
causing those to use the old aio_cancel that used the older value
of ECANCELLED. Thus the best option is to accept that the ABI changed
and ignore older applications in favour of newer applications. The
best thing to do is cleanup the version files (included in the patch).

The rest of the ABI was as expected (ignoring __p_type_syms size
change in 2008).
Diffstat (limited to 'sysdeps/unix/sysv/linux/hppa/ld.abilist')
-rw-r--r--sysdeps/unix/sysv/linux/hppa/ld.abilist16
1 files changed, 16 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/hppa/ld.abilist b/sysdeps/unix/sysv/linux/hppa/ld.abilist
new file mode 100644
index 0000000000..ee01179b36
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/ld.abilist
@@ -0,0 +1,16 @@
+GLIBC_2.2
+ GLIBC_2.2 A
+ __libc_memalign F
+ __libc_stack_end D 0x4
+ _dl_mcount F
+ _r_debug D 0x14
+ calloc F
+ free F
+ malloc F
+ realloc F
+GLIBC_2.3
+ GLIBC_2.3 A
+ __tls_get_addr F
+GLIBC_2.4
+ GLIBC_2.4 A
+ __stack_chk_guard D 0x4