Message ID | alpine.DEB.2.20.1701181735370.1980@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
LGTM. On 18/01/2017 15:36, Joseph Myers wrote: > MicroBlaze had clock_* functions exported from librt in glibc 2.18 and > 2.19, as confirmed in > <https://sourceware.org/ml/libc-alpha/2017-01/msg00369.html>, and they > then disappeared in 2.20, presumably as a result of the fix > <https://sourceware.org/ml/libc-alpha/2014-02/msg00598.html> 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). > > 2017-01-18 Joseph Myers <joseph@codesourcery.com> > > [BZ #21061] > * sysdeps/unix/sysv/linux/microblaze/clock-compat.c: New file. > > 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 0000000..e5959d5 > --- /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 > + <http://www.gnu.org/licenses/>. */ > + > +#include <shlib-compat.h> > + > +/* 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 <rt/clock-compat.c> >
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 0000000..e5959d5 --- /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 + <http://www.gnu.org/licenses/>. */ + +#include <shlib-compat.h> + +/* 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 <rt/clock-compat.c>