From fe3f0488daaec2fb8c3af181b6e8e4567ba2cf61 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 19 Jan 2017 20:57:16 +0000 Subject: Restore clock_* librt exports for MicroBlaze (bug 21061). MicroBlaze had clock_* functions exported from librt in glibc 2.18 and 2.19, as confirmed in , and they then disappeared in 2.20, presumably as a result of the fix for a Versions.def bug that had resulted in their unintended inclusion in 2.18 (followed by removal of the Versions.def mechanism that allowed such bugs). As they were released in that library, they should be considered part of the GLIBC_2.18 ABI and so restored for the sake of any binaries that expect them in that library. This patch restores them by adding a MicroBlaze version of clock-compat.c that overrides SHLIB_COMPAT. Tested (compilation only) with build-many-glibcs.py (where this fixes the librt ABI test failure; elf/check-execstack still fails and still needs architecture maintainer attention to fix it or XFAIL it with an appropriate explanatory comment). [BZ #21061] * sysdeps/unix/sysv/linux/microblaze/clock-compat.c: New file. --- ChangeLog | 5 ++++ sysdeps/unix/sysv/linux/microblaze/clock-compat.c | 31 +++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/microblaze/clock-compat.c diff --git a/ChangeLog b/ChangeLog index c59c6a951d..896231a0f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2017-01-19 Joseph Myers + + [BZ #21061] + * sysdeps/unix/sysv/linux/microblaze/clock-compat.c: New file. + 2017-01-19 Siddhesh Poyarekar * elf/dl-tunables (get_next_env): Always advance envp. diff --git a/sysdeps/unix/sysv/linux/microblaze/clock-compat.c b/sysdeps/unix/sysv/linux/microblaze/clock-compat.c new file mode 100644 index 0000000000..e5959d5c74 --- /dev/null +++ b/sysdeps/unix/sysv/linux/microblaze/clock-compat.c @@ -0,0 +1,31 @@ +/* ABI compatibility redirects for clock_* symbols in librt. + MicroBlaze version. + Copyright (C) 2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include + +/* These symbols were accidentally included in librt for MicroBlaze + despite the first release coming after the general obsoletion in + librt, so ensure they remain as part of the ABI. */ + +#ifdef SHARED +# undef SHLIB_COMPAT +# define SHLIB_COMPAT(lib, introduced, obsoleted) 1 +#endif + +#include -- cgit 1.4.1