Compare commits
63 Commits
Author | SHA1 | Date |
---|---|---|
|
51aa1990e5 | |
|
4ae360fa74 | |
|
547a280036 | |
|
43d8a2ad5f | |
|
9143849657 | |
|
9845400556 | |
|
5b28ffba5c | |
|
9398a19ada | |
|
a50c0ee87a | |
|
123bb3ec74 | |
|
649ca9a275 | |
|
1ec8282914 | |
|
94d67e5f79 | |
|
96a1fd1362 | |
|
9ca2763b1a | |
|
472eddc8ca | |
|
24d2c3db0a | |
|
0bb12ed58d | |
|
55faf11b9b | |
|
a573df9d5a | |
|
0265fb3327 | |
|
8cca31a681 | |
|
b1baf5deba | |
|
04928e64a4 | |
|
1bcaea6ffe | |
|
cc6e84070f | |
|
d629b47ec4 | |
|
c5dc50cba8 | |
|
fe99e84bf2 | |
|
bd1848f1a8 | |
|
ec32b87b21 | |
|
3a2b0c367b | |
|
deb4736b77 | |
|
93a30c9f28 | |
|
35d9ec52c8 | |
|
4e3daedbc7 | |
|
81fbb9ed38 | |
|
62a7902949 | |
|
eb8447b64e | |
|
58b49c298b | |
|
dd1684633a | |
|
4211faf2dd | |
|
9c124d1b8c | |
|
e4a37ded6e | |
|
5c43ec8cb6 | |
|
059710a469 | |
|
bdd48b3297 | |
|
7736442db8 | |
|
d5c6c6bc79 | |
|
396fa0e6a8 | |
|
8225a76dfe | |
|
1a3836ae13 | |
|
65a208b15b | |
|
e2fde003ee | |
|
55232187b3 | |
|
08af85436f | |
|
2ee609cfa3 | |
|
53dc95aa44 | |
|
91ff01f7d2 | |
|
5086664344 | |
|
3f68e5fe05 | |
|
72775d1371 | |
|
f1ceb75c3f |
|
@ -0,0 +1,6 @@
|
|||
# Release tarballs.
|
||||
/glibc-*.tar.[gx]z
|
||||
# Generated (source) RPMs.
|
||||
/*.rpm
|
||||
# Expanded source trees.
|
||||
/glibc-*/
|
790
ChangeLog.old
790
ChangeLog.old
|
@ -1,3 +1,793 @@
|
|||
* Wed Feb 08 2017 Carlos O'Donell <carlos@redhat.com> - 2.24.90-31
|
||||
- Fix builds with GCC 7.0.
|
||||
|
||||
* Wed Feb 01 2017 Carlos O'Donell <carlos@redhat.com> - 2.24.90-30
|
||||
- Optimize IBM z System builds for zEC12.
|
||||
|
||||
* Wed Jan 25 2017 Florian Weimer <fweimer@redhat.com> - 2.24.90-29
|
||||
- Use vpath in crypt-glibc/Makefile to obtain the test input file.
|
||||
- Auto-sync with upstream master,
|
||||
commit 5653ab12b4ae15b32d41de7c56b2a4626cd0437a, fixing:
|
||||
- ARM fpu_control.h for assemblers requiring VFP insn names (swbz#21047)
|
||||
- FAIL in test string/tst-xbzero-opt (swbz#21006)
|
||||
- Make soft-float powerpc swapcontext restore the signal mask (swbz#21045)
|
||||
- Clear list of acquired robust mutexes in the child after fork (swbz#19402)
|
||||
|
||||
* Thu Jan 12 2017 Carlos O'Donell <carlos@systemhalted.org> - 2.24.90-28
|
||||
- Auto-sync with upstream master,
|
||||
commit 468e525c81a4af10f2e613289b6ff7c950773a9e:
|
||||
- Drop rwlock related patches applied upstream.
|
||||
- Fix i686 memchr for large input sizes (swbz#21014)
|
||||
- Fix x86 strncat for large input sizes (swbz#19390)
|
||||
- powerpc: Fix write-after-destroy in lock elision (swbz#20822)
|
||||
- New pthread rwlock that is more scalable.
|
||||
- Fix testsuite build for GCC 7 -Wformat-truncation.
|
||||
|
||||
* Mon Jan 02 2017 Florian Weimer <fweimer@redhat.com> - 2.24.90-27
|
||||
- Auto-sync with upstream master,
|
||||
commit 73dfd088936b9237599e4ab737c7ae2ea7d710e1:
|
||||
- Enable tunables.
|
||||
- Drop condvar-related patches applied upstream.
|
||||
- Update DNS RR type definitions (swbz#20593)
|
||||
- CVE-2015-5180: resolv: Fix crash with internal QTYPE (#1249603)
|
||||
- sunrpc: Always obtain AF_INET addresses from NSS (swbz#20964)
|
||||
|
||||
|
||||
* Mon Dec 26 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-26
|
||||
- Auto-sync with upstream master,
|
||||
commit cecbc7967f0bcac718b6f8f8942b58403c0e917c
|
||||
- Enable stack protector for most of glibc (#1406731)
|
||||
|
||||
* Fri Dec 23 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.24.90-25
|
||||
- Auto-sync with upstream master,
|
||||
commit 81e0662e5f2c342ffa413826b7b100d56677b613, fixing:
|
||||
- Shared object unload assert when calling dlclose (#1398370, swbz#11941)
|
||||
- Fix nss_nisplus build with mainline GCC (swbz#20978)
|
||||
- Add Intel TSX blacklist for silicon with known errata.
|
||||
- Add fmax, fmin, fmaxf, fminf microbenchmarks.
|
||||
- Robust mutexes: Fix lost wake-up (swbz#20973).
|
||||
- Add fmaxmag, fminmag, roundeven, roundevenf, roundevenl functions.
|
||||
|
||||
* Sun Dec 18 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-24
|
||||
- Auto-sync with upstream master,
|
||||
commit e077349ce589466eecd47213db4fae6b80ec18c4, fixing:
|
||||
- Warn about assignment in assertions (#1105335)
|
||||
- powerpc64/power7 memchr for large input sizes (swbz#20971)
|
||||
- fmax, fmin sNaN handling (swbz#20947)
|
||||
|
||||
* Mon Dec 12 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-23
|
||||
- Auto-sync with upstream master,
|
||||
commit 92dcaa3e2f7bf0f7f1c04cd2fb6a317df1a4e225, fixing:
|
||||
- Add getrandom, getentropy (#1172273)
|
||||
- Add additional compiler barriers to backtrace tests (swbz#20956)
|
||||
|
||||
* Fri Dec 09 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-22
|
||||
- Auto-sync with upstream master,
|
||||
commit 0abbe7cd700951082b314182a0958d65238297ef, changing:
|
||||
- IN6_IS_ADDR_ does not require enabling non-standard extensions (#1138893)
|
||||
- Install libm.a as linker script (swbz#20539)
|
||||
- Fix writes past the allocated array bounds in execvpe (swbz#20847)
|
||||
- Fix hypot sNaN handling (swbz#20940)
|
||||
- Fix x86_64/x86 powl handling of sNaN arguments (swbz#20916)
|
||||
- Fix sysdeps/ieee754 pow handling of sNaN arguments (swbz#20916)
|
||||
- Fix pow (qNaN, 0) result with -lieee (swbz#20919)
|
||||
- Fix --enable-nss-crypt failure of tst-linkall-static (swbz#20918)
|
||||
|
||||
* Fri Dec 02 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-21
|
||||
- Auto-sync with upstream master,
|
||||
commit 01b23a30b42a90b1ebd882a0d81110a1542e504a, fixing:
|
||||
- aarch64: Incorrect dynamic TLS resolution (#1400347)
|
||||
|
||||
* Wed Nov 30 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-20
|
||||
- Auto-sync with upstream master,
|
||||
commit 9e78f6f6e7134a5f299cc8de77370218f8019237, fixing:
|
||||
- stdio buffering with certain network file systems (#1400144)
|
||||
- libpthread initialization breaks ld.so exceptions (#1393909)
|
||||
- x86_64: Use of PLT and GOT in static archives (swbz#20750)
|
||||
- localedata, iconvdata: 0x80->Euro sign mapping for GBK (swbz#20864)
|
||||
- math: x86_64 -mfpmath=387 float_t, double_t (swbz#20787)
|
||||
|
||||
* Wed Nov 23 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-19
|
||||
- Auto-sync with upstream master,
|
||||
commit 7a5e3d9d633c828d84a9535f26b202a6179978e7:
|
||||
- Fix default float_t definition (swbz#20855)
|
||||
- Fix writes past the allocated array bounds in execvpe (swbz#20847)
|
||||
|
||||
* Tue Nov 22 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-18
|
||||
- Auto-sync with upstream master,
|
||||
commit 5ee1a4443a3eb0868cef1fe506ae6fb6af33d4ad.
|
||||
|
||||
* Wed Nov 16 2016 Carlos O'Donell <carlos@redhat.com> - 2.24.90-17
|
||||
* Add new scalable implementation of POSIX read-write locks.
|
||||
|
||||
* Wed Nov 16 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-16
|
||||
- Do not try to link libcrypt statically during tests
|
||||
|
||||
* Wed Nov 16 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-15
|
||||
- Auto-sync with upstream master,
|
||||
commit 530862a63e0929128dc98fbbd463b120934434fb, fixing:
|
||||
- Fix rpcgen buffer overrun (swbz#20790)
|
||||
- Fix ppc64 build failure to swbz#20729 fix attempt
|
||||
|
||||
* Wed Nov 2 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-14
|
||||
- Drop glibc-swbz20019.patch, applied upstream.
|
||||
- dlerror returns NULL after dlsym (RTLD_NEXT) lookup failure (#1333945)
|
||||
(fixed by dropping the revert)
|
||||
- Auto-sync with upstream master,
|
||||
commit 9032070deaa03431921315f973c548c2c403fecc, fixing:
|
||||
- Correct clog10 documentation (swbz#19673)
|
||||
- Fix building with -Os (swbz#20729)
|
||||
- Properly initialize glob structure with GLOB_BRACE|GLOB_DOOFFS (swbz#20707)
|
||||
- powerpc: Fix TOC stub on powerpc64 clone (swbz#20728)
|
||||
- math: Make strtod raise "inexact" exceptions (swbz#19380)
|
||||
- malloc: Remove malloc_get_state, malloc_set_state (swbz#19473)
|
||||
|
||||
* Sat Oct 22 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-13
|
||||
- Auto-sync with upstream master,
|
||||
commit e37208ce86916af9510ffb9ce7b3c187986f07de, changing:
|
||||
- Restore <math.h> compatbility with extern "C" wrappers
|
||||
|
||||
* Fri Oct 21 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-12
|
||||
- Auto-sync with upstream master,
|
||||
commit b3918c44db615637b26d919ce599cd86592316b3, fixing:
|
||||
- math: Turn iszero into a function template (#1387415)
|
||||
- ARM: Use VSQRT instruction (swbz#20660)
|
||||
- math: Stop powerpc copysignl raising "invalid" for sNaN (swbz#20718)
|
||||
- x86: Fix FMA and AVX2 detection (swbz#20689)
|
||||
- x86: Avoid assertion failure on older Intel CPus (swbz#20647)
|
||||
|
||||
* Mon Oct 17 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.24.90-11
|
||||
- Add prototype support for detecting invalid IFUNC calls (swbz#20019).
|
||||
- New POSIX thread condition variable implementation (swbz#13165).
|
||||
|
||||
* Fri Oct 07 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-10
|
||||
- Auto-sync with upstream master,
|
||||
commit 5140d036f9c16585448b5908c3a219bd96842161, fixing:
|
||||
- resolv: Remove RES_USEBSTRING and its implementation (swbz#20629)
|
||||
- Refactor ifunc resolvers due to false debuginfo (swbz#20478)
|
||||
|
||||
* Tue Oct 04 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-9
|
||||
- Auto-sync with upstream master,
|
||||
commit ff88ee7edfaa439e23c42fccaf3a36cd5f041894, fixing:
|
||||
- LONG_WIDTH is incorrectly set to the 64 on 32-bit platforms (#1381582)
|
||||
- libio: Multiple fixes for open_{w}memstream (swbz#18241, swbz#20181)
|
||||
- Simplify and test _dl_addr_inside_object (swbz#20292)
|
||||
|
||||
* Thu Sep 22 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-8
|
||||
- Add support for MIPS (#1377795)
|
||||
- Drop glibc-rh1315476-1.patch (sln pre-processor cleanup), it was
|
||||
applied upstream.
|
||||
- Auto-sync with upstream master,
|
||||
commit 17af5da98cd2c9ec958421ae2108f877e0945451, fixing the following bugs:
|
||||
- Fix non-LE TLS in static programs (swbz#19826)
|
||||
- resolv: Remove unsupported hook functions from the API (swbz#20016)
|
||||
- Remove RR type classification macros (swbz#20592)
|
||||
- Remove obsolete DNSSEC support (swbz#20591)
|
||||
- manual: Clarify the documentation of strverscmp (swbz#20524)
|
||||
|
||||
* Tue Sep 20 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.24.90-7
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Thu Sep 01 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-6
|
||||
- Auto-sync with upstream master,
|
||||
commit 4d728087ef8cc826b05bd21d0c74d4eca9b1a27d, fixing:
|
||||
- Base <sys/quota.h> on Linux headers (#1360480)
|
||||
- Simplify static malloc interposition (swbz#20432)
|
||||
|
||||
* Fri Aug 26 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-5
|
||||
- Auto-sync with upstream master,
|
||||
commit 7e625f7e85b4e88f10dbde35a0641742af581806, fixing:
|
||||
- lt_LT locale: use hyphens in d_fmt (swbz#20497)
|
||||
- nptl test time reductions (swbz#19946)
|
||||
|
||||
* Sun Aug 21 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-4
|
||||
- Auto-sync with upstream master,
|
||||
commit 66abf9bfbe24ac1e7207d26ccad725ed938dc52c, fixing:
|
||||
- argp: Do not override GCC keywords with macros (#1366830)
|
||||
|
||||
* Wed Aug 17 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-3
|
||||
- Auto-sync with upstream master,
|
||||
commit d9067fca40b8aac156d73cfa44d6875813555a6c, with these changes:
|
||||
- Avoid duplicating object files already in libc.a (#1352625)
|
||||
- CVE-2016-6323: Backtraces can hang on ARM EABI (32-bit) (swbz#20435)
|
||||
- et_EE: locale has wrong {p,n}_cs_precedes value (swbz#20459
|
||||
|
||||
* Thu Aug 11 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-2
|
||||
- Auto-sync with upstream master,
|
||||
commit f79211792127f38d5954419bb3784c8eb7f5e4e5
|
||||
|
||||
* Mon Aug 08 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.24.90-1
|
||||
- Set version to 2.24.90 to match upstream development.
|
||||
|
||||
* Mon Aug 08 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.23.90-31
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Thu Jul 21 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-30
|
||||
- Drop sendmsg/recvmsg compatibility patch (#1344830)
|
||||
- glibc-devel depends on libgcc%%{_isa} (#1289356)
|
||||
- Drop Requires(pre) on libgcc
|
||||
- Introduce libcrypt and libcrypt-nss (#1324623)
|
||||
- Do not try to install mtrace when bootstrapping
|
||||
|
||||
* Wed Jul 20 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-29
|
||||
- Move NSS modules to subpackages (#1338889)
|
||||
|
||||
* Wed Jul 13 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-28
|
||||
- Auto-sync with upstream master, commit
|
||||
f531f93056b34800383c5154280e7ba5112563c7.
|
||||
- Add de_LI.UTF-8 locale.
|
||||
- Make ldconfig and sln the same binary. (#1315476)
|
||||
|
||||
* Fri Jul 08 2016 Mike FABIAN <mfabian@redhat.com> - 2.23.90-27
|
||||
- Unicode 9.0.0 updates (ctype, charmap, transliteration) (#1351108)
|
||||
|
||||
* Tue Jul 05 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-26
|
||||
- Auto-sync with upstream master, up to commit
|
||||
30e4cc5413f72c2c728a544389da0c48500d9904, fixing these bug:
|
||||
- strcasecmp failure on ppc64le (#nscd breaks initgroups with nis (initgroups are empty) (#1294574)
|
||||
|
||||
* Fri Jun 24 2016 Carlos O'Donell <carlos@redhat.com> - 2.23.90-25
|
||||
- Properly handle more invalid --install-langs arguments (#1349906).
|
||||
|
||||
* Tue Jun 21 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-24
|
||||
- Auto-sync with upstream master, commit
|
||||
a3b473373ee43a292f5ec68a7fda6b9cfb26a9b0, fixing these bugs:
|
||||
- Unnecessary mmap fallback in malloc (#1348620)
|
||||
- pwritev system call passes incorrect offset to kernel (#1346070)
|
||||
|
||||
* Sat Jun 18 2016 Carlos O'Donell <carlos@redhat.com> - 2.23.90-23
|
||||
- Use scriptlet expansion in all-langpacks posttrans script to expand
|
||||
_install_langes macro.
|
||||
|
||||
* Mon Jun 13 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-22
|
||||
- Remove glibc-fedora-uname-getrlimit.patch. This patch was
|
||||
introduced to fix bug rhbz#579086 (Preloading a replacement uname
|
||||
is causing environment to be cleaned if libpthread is loaded).
|
||||
UTS namespaces should now offer a cleaner way yo do this.
|
||||
- Drop sendmmsg/recvmmsg compat symbols on 32-bit architectures (#1344830)
|
||||
* Sat Jun 11 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-21
|
||||
- First phase of sendmsg/recvmsg/sendmmsg/recvmmsg ABI revert:
|
||||
GLIBC_2.24 compatibility symbols (#1344830)
|
||||
- Auto-sync with upstream master
|
||||
(commit 31d0a4fa646db8b8c97ce24e0ec0a7b73de4fca1),
|
||||
fixing the following bugs:
|
||||
- Add eo locale
|
||||
- Crash in the nss_db NSS service module during iteration (#1344480)
|
||||
|
||||
* Thu Jun 09 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-20
|
||||
- Auto-sync with upstream master, fixing this bug:
|
||||
- Emacs crashes on startup (#1342976)
|
||||
|
||||
* Wed Jun 01 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-19
|
||||
- Auto-sync with upstream master.
|
||||
- Adjust glibc-rh1315108.patch accordingly.
|
||||
- Fix fork redirection in libpthread (#1326903)
|
||||
- CVE-2016-4429: stack overflow in Sun RPC clntudp_call (#1337140)
|
||||
- Do not disable assertions in release builds (#1338887)
|
||||
|
||||
* Wed May 11 2016 Carlos O'Donell <carlos@redhat.com> - 2.23.90-18
|
||||
- Move support for building GCC 2.96 into compat-gcc-296.
|
||||
|
||||
* Wed May 11 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-17
|
||||
- Temporily revert dlsym (RTLD_NEXT)/dlerror change, to unbreak
|
||||
ASAN until it is fixed (#1335011)
|
||||
|
||||
* Mon May 9 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-16
|
||||
- Drop the “fix” for fork/vfork NULL symbols in libpthread. It does
|
||||
not work because ld.so apparently supports some variant of direct
|
||||
binding.
|
||||
|
||||
* Mon May 09 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-15
|
||||
- Auto-sync with upstream master.
|
||||
- Drop glibc-nsswitch-Add-group-merging-support.patch, applied upstream.
|
||||
- Drop glibc-rh1252570.patch, alternative fixes applied upstream.
|
||||
- Adjust glibc-rh1315108.patch to minor upstream change.
|
||||
- Update SUPPORTED file.
|
||||
- Experimental fix for NULL fork/vfork symbols in libpthread (#1326903)
|
||||
|
||||
* Tue May 03 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.23.90-14
|
||||
- Require libselinux for nscd in non-bootstrap configuration.
|
||||
|
||||
* Fri Apr 29 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.23.90-13
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Thu Apr 28 2016 Carlos O'Donell <carlos@redhat.com> - 2.23.90-12
|
||||
- Move spec file system information logging to the build stage.
|
||||
|
||||
* Thu Apr 14 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-11
|
||||
- Auto-sync with upstream master.
|
||||
- Unbreak pread/pread64 on armhfp (#1327277)
|
||||
|
||||
* Thu Apr 14 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-10
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Thu Apr 14 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-9
|
||||
- Auto-sync with upstream master. Removes type union wait.
|
||||
- Update SUPPORTED locales file.
|
||||
|
||||
* Fri Apr 08 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-8
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Tue Mar 29 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-7
|
||||
- Auto-sync with upstream master.
|
||||
- Adjust glibc-rh1252570.patch to partial upstream fix.
|
||||
- Drop glibc-fix-an_ES.patch, now included upstream.
|
||||
|
||||
* Wed Mar 16 2016 Carlos O'Donell <carlos@redhat.com> - 2.23.90-6
|
||||
- Use 'an' as language abbreviation for an_ES.
|
||||
|
||||
* Mon Mar 07 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.23.90-5
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Sun Mar 6 2016 Florian Weimer <fweimer@redhat.com> - 2.23.90-4
|
||||
- Remove extend_alloca (#1315108)
|
||||
|
||||
* Mon Feb 29 2016 Carlos O'Donell <carlos@redhat.com> - 2.23.90-3
|
||||
- Enhance support for upgrading from a non-language-pack system.
|
||||
|
||||
* Fri Feb 26 2016 Mike FABIAN <mfabian@redhat.com> - 2.23.90-2
|
||||
- Create new language packages for all supported languages.
|
||||
Locales, translations, and locale sources are split into
|
||||
distinct sub-packages. A meta-package is created for users
|
||||
to install all languages. Transparent installation support
|
||||
is provided via dnf langpacks.
|
||||
|
||||
* Fri Feb 26 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.23.90-1
|
||||
- Upstream development version is now 2.23.90.
|
||||
|
||||
* Thu Feb 25 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.22.90-38
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Fri Feb 19 2016 Florian Weimer <fweimer@redhat.com> - 2.22.90-37
|
||||
- Remove stray newline from Serbian locales (#1114591).
|
||||
|
||||
* Tue Feb 16 2016 CArlos O'Donell <carlos@redhat.com> - 2.22.90-36
|
||||
- Fix CVE-2015-7547: getaddrinfo() stack-based buffer overflow (#1308943).
|
||||
|
||||
* Mon Feb 15 2016 Florian Weimer <fweimer@redhat.com> - 2.22.90-35
|
||||
- Revert may_alias attribute for struct sockaddr (#1306511).
|
||||
- Revert upstream commit 2212c1420c92a33b0e0bd9a34938c9814a56c0f7 (#1252570).
|
||||
|
||||
* Sat Feb 13 2016 Florian Weimer <fweimer@redhat.com> - 2.22.90-34
|
||||
- Auto-sync with upstream master.
|
||||
- Support aliasing with struct sockaddr pointers (#1306511).
|
||||
|
||||
* Tue Feb 09 2016 Carlos O'Donell <carlos@redhat.com> - 2.22.90-33
|
||||
- Use --with-cpu=power8 for ppc64le default runtime (#1227361).
|
||||
|
||||
* Tue Feb 02 2016 Florian Weimer <fweimer@redhat.com> - 2.22.90-32
|
||||
- Auto-sync with upstream master.
|
||||
- Add glibc-isinf-cxx11.patch to improve C++11 compatibility.
|
||||
|
||||
* Thu Jan 28 2016 Florian Weimer <fweimer@redhat.com> - 2.22.90-31
|
||||
- Add workaround for GCC PR69537.
|
||||
|
||||
* Thu Jan 28 2016 Florian Weimer <fweimer@redhat.com> - 2.22.90-30
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Wed Jan 13 2016 Carlos O'Donell <carlos@redhat.com> - 2.22.90-29
|
||||
- New pthread_barrier algorithm with improved standards compliance.
|
||||
|
||||
* Wed Jan 13 2016 Carlos O'Donell <carlos@redhat.com> - 2.22.90-28
|
||||
- Add group merging support for distributed management (#1146822).
|
||||
|
||||
* Tue Jan 12 2016 Carlos O'Donell <carlos@redhat.com> - 2.22.90-27
|
||||
- Remove 32-bit POWER support.
|
||||
- Add 64-bit POWER7 BE and 64-bit POWER8 BE optimized libraries.
|
||||
|
||||
* Mon Dec 21 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-26
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Wed Dec 16 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-25
|
||||
- Auto-sync with upstream master.
|
||||
- Includes fix for malloc assertion failure in get_free_list. (#1281714)
|
||||
- Drop Unicode 8.0 patches (now merged upstream).
|
||||
|
||||
* Sat Dec 5 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-24
|
||||
- Put libmvec_nonshared.a into the -devel package. (#1288738)
|
||||
|
||||
* Sat Dec 05 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-23
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Thu Nov 26 2015 Carlos O'Donell <carlos@redhat.com> - 2.22.90-22
|
||||
- The generic hidden directive support is already used for
|
||||
preinit/init/fini-array symbols so we drop the Fedora-specific
|
||||
patch that does the same thing.
|
||||
Reported by Dmitry V. Levin <ldv@altlinux.org>
|
||||
|
||||
* Thu Nov 26 2015 DJ Delorie <dj@redhat.com> - 2.22.90-22
|
||||
- Require glibc-static for C++ tests.
|
||||
- Require gcc-c++, libstdc++-static, and glibc-static only when needed.
|
||||
- Fix --without docs to not leave info files.
|
||||
|
||||
* Fri Nov 20 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-21
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Wed Nov 18 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-20
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Wed Nov 18 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-19
|
||||
- Disable -Werror on s390 (#1283184).
|
||||
|
||||
* Mon Nov 16 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-18
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Mon Nov 16 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-17
|
||||
- Revert temporary armhfp build fix.
|
||||
|
||||
* Mon Nov 9 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-16
|
||||
- Apply temporary fix for armhfp build issue.
|
||||
|
||||
* Mon Nov 09 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-15
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Tue Nov 3 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-14
|
||||
- Log uname, cpuinfo, meminfo during build (#1276636)
|
||||
|
||||
* Fri Oct 30 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-13
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Fri Oct 30 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-12
|
||||
- Revert to upstream implementation of condition variables (#1229659)
|
||||
|
||||
* Wed Oct 28 2015 Florian Weimer <fweimer@redhat.com> - 2.22.90-11
|
||||
- Disable valgrind test on ppc64p7, too.
|
||||
|
||||
* Mon Oct 26 2015 Carlos O'Donell <carlos@redhat.com> - 2.22.90-10
|
||||
- Disable valgrind test for ppc64.
|
||||
|
||||
* Wed Oct 21 2015 Carlos O'Donell <carlos@redhat.com> - 2.22.90-9
|
||||
- Sync with upstream master.
|
||||
- Update new condvar implementation.
|
||||
|
||||
* Fri Oct 9 2015 Carlos O'Donell <carlos@redhat.com> - 2.22.90-8
|
||||
- Remove libbsd.a (#1193168).
|
||||
|
||||
* Wed Sep 16 2015 Mike FABIAN <mfabian@redhat.com> - 2.22.90-7
|
||||
- Add the C.UTF-8 locale (#902094).
|
||||
|
||||
* Wed Sep 16 2015 Carlos O'Donell <carlos@systemhalted.org> - 2.22.90-6
|
||||
- Fix GCC 5 and -Werror related build failures.
|
||||
- Fix --install-langs bug which causes SIGABRT (#1262040).
|
||||
|
||||
* Fri Aug 28 2015 Carlos O'Donell <carlos@systemhalted.org> - 2.22.90-5
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Thu Aug 27 2015 Carlos O'Donell <carlos@redhat.com> - 2.22.90-4
|
||||
- Build require gcc-c++ for the C++ tests.
|
||||
- Support --without testsuite option to disable testing after build.
|
||||
- Support --without benchtests option to disable microbenchmarks.
|
||||
- Update --with bootstrap to disable benchtests, valgrind, documentation,
|
||||
selinux, and nss-crypt during bootstrap.
|
||||
- Support --without werror to disable building with -Werror.
|
||||
- Support --without docs to disable build requirement on texinfo.
|
||||
- Support --without valgrind to disable testing with valgrind.
|
||||
- Remove c_stubs add-on and enable fuller support for static binaries.
|
||||
- Remove librtkaio support (#1227855).
|
||||
|
||||
* Sun Aug 16 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.22.90-3
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Fri Aug 14 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.22.90-2
|
||||
- Remove initgroups from the default nsswitch.conf (#751450).
|
||||
|
||||
* Fri Aug 14 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.22.90-1
|
||||
- Sync with upstream master.
|
||||
|
||||
* Tue Jul 28 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-20
|
||||
- Sync with upstream master.
|
||||
|
||||
* Thu Jul 23 2015 Mike FABIAN <mfabian@redhat.com> - 2.21.90-19
|
||||
- some more additions to the translit_neutral file by Marko Myllynen
|
||||
|
||||
* Tue Jul 14 2015 Mike FABIAN <mfabian@redhat.com> - 2.21.90-18
|
||||
- Unicode 8.0.0 updates, including the transliteration files (#1238412).
|
||||
|
||||
* Sun Jun 21 2015 Carlos O'Donell <carlos@redhat.com> - 2.21.90-17
|
||||
- Remove all linuxthreads handling from glibc spec file.
|
||||
|
||||
* Wed Jun 17 2015 Carlos O'Donell <carlos@redhat.com> - 2.21.90-16
|
||||
- Move split out architecture-dependent header files into devel package
|
||||
and keep generic variant in headers package, thus keeping headers package
|
||||
content and file list identical across multilib rpms.
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.21.90-15.1
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Wed Jun 3 2015 Carlos O'Donell <carlos@redhat.com> - 2.21.90-15
|
||||
- Remove patch to increase DTV surplus which is no longer needed after
|
||||
upstream commit f8aeae347377f3dfa8cbadde057adf1827fb1d44.
|
||||
|
||||
* Sat May 30 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-14
|
||||
- Fix build failure on aarch64 (#1226459).
|
||||
|
||||
* Mon May 18 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-13
|
||||
- Sync with upstream master.
|
||||
- Install new condvar implementation.
|
||||
|
||||
* Fri May 08 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-12
|
||||
- Add benchmark comparison scripts.
|
||||
|
||||
* Thu May 07 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-11
|
||||
- Auto-sync with upstream master.
|
||||
- Revert arena threshold fix to work around #1209451.
|
||||
|
||||
* Tue Apr 07 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-10
|
||||
- Revert last auto-sync (#1209451).
|
||||
|
||||
* Mon Apr 06 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-9
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Tue Mar 24 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-8
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Tue Mar 17 2015 Carlos O'Donell <carlos@redhat.com> - 2.21.90-7
|
||||
- Use rpm.expand in scripts to reduce set of required RPM features.
|
||||
|
||||
* Thu Mar 12 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-6
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Tue Mar 3 2015 Mike Fabian <mfabian@redhat.com> - 2.21.90-5
|
||||
- Support installing only those locales specified by the RPM macro
|
||||
%%_install_langs (#156477).
|
||||
|
||||
* Mon Feb 23 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.21.90-4
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 2.21.90-3.1
|
||||
- Rebuilt for Fedora 23 Change
|
||||
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
|
||||
|
||||
* Thu Feb 12 2015 Carlos O'Donell <carlos@systemhalted.org> - 2.21.90-3
|
||||
- Fix missing clock_* IFUNCs in librtkaio.
|
||||
|
||||
* Thu Feb 12 2015 Carlos O'Donell <carlos@systemhalted.org> - 2.21.90-2
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Wed Feb 11 2015 Carlos O'Donell <carlos@systemhalted.org> - 2.21.90-1
|
||||
- Add back x86 vDSO support.
|
||||
- Fix rtkaio build to reference clock_* functions from libc.
|
||||
|
||||
* Wed Jan 21 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.20.90-20
|
||||
- Sync with upstream master.
|
||||
- Disable werror on s390x.
|
||||
- Revert x86 vDSO support since it breaks i686 rtkaio build.
|
||||
|
||||
* Tue Jan 20 2015 Peter Robinson <pbrobinson@fedoraproject.org> 2.20.90-19
|
||||
- Drop large ancient ChangeLogs (rhbz #1169546)
|
||||
|
||||
* Mon Jan 12 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.20.90-18
|
||||
- Pass address of main_arena.mutex to mutex_lock/unlock.
|
||||
|
||||
* Thu Jan 08 2015 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.20.90-17
|
||||
- Define a __tls_get_addr macro to avoid a conflicting declaration.
|
||||
|
||||
* Wed Jan 07 2015 Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com> - 2.20.90-16
|
||||
- Disable -Werror for s390 as well.
|
||||
|
||||
* Wed Jan 07 2015 Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com> - 2.20.90-14
|
||||
- Sync with upstream master.
|
||||
- Disable -Werror on powerpc and armv7hl.
|
||||
- Temporarily disable valgrind test on ppc64.
|
||||
|
||||
* Sun Dec 28 2014 Dan Horák <dan[at]danny.cz>
|
||||
- valgrind available only on selected arches (missing on s390)
|
||||
|
||||
* Wed Dec 10 2014 Kyle McMartin <kmcmarti@redhat.com>
|
||||
- aarch64: Drop strchrnul.S revert, apply fix from Richard Earnshaw.
|
||||
|
||||
* Fri Dec 05 2014 Carlos O'Donell <carlos@redhat.com> - 2.20.90-13
|
||||
- Fix permission of debuginfo source files to allow multiarch
|
||||
debuginfo packages to be installed and upgraded.
|
||||
|
||||
* Fri Dec 05 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.20.90-12
|
||||
- Remove LIB_LANG since we don't install locales in /usr/lib/locale anymore.
|
||||
- Don't own any directories in /usr/share/locale (#1167445).
|
||||
- Use the %%find_lang macro to get the *.mo files (#1167445).
|
||||
- Add %%lang tags to language locale files in /usr/share/i18n/locale (#1169044).
|
||||
|
||||
* Wed Dec 03 2014 Kyle McMartin <kyle@fedoraproject.org> - 2.20.90-11
|
||||
- aarch64: revert optimized strchrnul.S implementation (rhbz#1167501)
|
||||
until it can be debugged.
|
||||
|
||||
* Fri Nov 28 2014 Carlos O'Donell <carlos@redhat.com> - 2.20.90-10
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Wed Nov 19 2014 Carlos O'Donell <carlos@redhat.com> - 2.20.90-9
|
||||
- Sync with upstream master.
|
||||
|
||||
* Wed Nov 05 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.20.90-8
|
||||
- Make getconf return only /usr/bin (#1138835).
|
||||
- Sync with upstream master.
|
||||
|
||||
* Tue Nov 04 2014 Arjun Shankar <arjun.is@lostca.se> - 2.20.90-7
|
||||
- Add patch that modifies several tests to use test-skeleton.c.
|
||||
The patch is accepted but not yet committed upstream.
|
||||
https://sourceware.org/ml/libc-alpha/2014-10/msg00744.html
|
||||
|
||||
* Tue Sep 30 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.20.90-6
|
||||
- Sync with upstream master.
|
||||
- Disable more Intel TSX usage in rwlocks (#1146967).
|
||||
- Enable lock elision again on s390 and s390x.
|
||||
- Enable Systemtap SDT probes for all architectures (#985109).
|
||||
|
||||
* Fri Sep 26 2014 Carlos O'Donell <carlos@redhat.com> - 2.20.90-5
|
||||
- Disable lock elision support for Intel hardware until microcode
|
||||
updates can be done in early bootup (#1146967).
|
||||
- Fix building test tst-strtod-round for ARM.
|
||||
|
||||
* Tue Sep 23 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.20.90-4
|
||||
- Sync with upstream master.
|
||||
- Don't own the common debuginfo directories (#1144853).
|
||||
- Run valgrind in the %%check section to ensure that it does not break.
|
||||
|
||||
* Tue Sep 16 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.20.90-3
|
||||
- Sync with upstream master.
|
||||
- Revert patch for #737223.
|
||||
|
||||
* Mon Sep 08 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.20.90-2
|
||||
- Build build-locale-archive statically again.
|
||||
|
||||
* Mon Sep 08 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.20.90-1
|
||||
- Sync with upstream master.
|
||||
|
||||
* Thu Sep 4 2014 Carlos O'Donell <carlos@redhat.com> - 2.19.90-36
|
||||
- Allow up to 32 dlopened modules to use static TLS (#1124987).
|
||||
- Run glibc tests in %%check section of RPM spec file.
|
||||
- Do not run tests with `-k` and fail if any test fails to build.
|
||||
|
||||
* Tue Aug 26 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-35
|
||||
- Sync with upstream master.
|
||||
- Use INTERNAL_SYSCALL in TLS_INIT_TP (#1133134).
|
||||
- Remove gconv loadable module transliteration support (CVE-2014-5119, #1119128).
|
||||
|
||||
* Fri Aug 22 2014 Dennis Gilmore <dennis@ausil.us> - 2.19.90-34
|
||||
- add back sss to nsswitch.conf we have added workarounds in the tools
|
||||
|
||||
* Thu Aug 21 2014 Kevin Fenzi <kevin@scrye.com> - 2.19.90-33.1
|
||||
- Rebuild for rpm bug 1131960
|
||||
|
||||
* Tue Aug 19 2014 Dennis Gilmore <dennis@ausil.us> - 2.19.90-33
|
||||
- remove sss from default nsswitch.conf it causes issues with live image composing
|
||||
|
||||
* Wed Aug 13 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-32
|
||||
- Auto-sync with upstream master.
|
||||
- Revert to only defining __extern_always_inline for g++-4.3+.
|
||||
- Fix build failure in compat-gcc-32 (#186410).
|
||||
|
||||
* Mon Jul 28 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-31
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Wed Jul 23 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-30
|
||||
- Undo last master sync to fix up rawhide.
|
||||
|
||||
* Tue Jul 15 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-29
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Sat Jul 12 2014 Tom Callaway <spot@fedoraproject.org> - 2.19.90-28
|
||||
- fix license handling
|
||||
|
||||
* Mon Jul 07 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-27
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Fri Jul 04 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-26
|
||||
- Sync with upstream roland/nptl branch.
|
||||
- Improve testsuite failure outputs in build.log
|
||||
|
||||
* Thu Jul 03 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-25
|
||||
- Sync with upstream roland/nptl branch.
|
||||
|
||||
* Wed Jul 02 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-24
|
||||
- Sync with upstream master.
|
||||
|
||||
* Tue Jun 24 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-23
|
||||
- Sync with upstream master.
|
||||
- Add fix to unbreak i386 ABI breakage due to a change in scalbn.
|
||||
|
||||
* Fri Jun 20 2014 Kyle McMartin <kmcmarti@redhat.com> - 2.19.90-22
|
||||
- AArch64: Save & restore NZCV (flags) upon entry to _dl_tlsdesc_dynamic
|
||||
in order to work around GCC reordering compares across the TLS
|
||||
descriptor sequence (GCC PR61545.) Committing a (temporary) fix here
|
||||
allows us to avoid rebuilding the world with gcc 4.9.0-11.fc21.
|
||||
|
||||
* Mon Jun 16 2014 Kyle McMartin <kmcmarti@redhat.com> - 2.19.90-21
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Thu Jun 12 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-20
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.19.90-19.1
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Tue Jun 03 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-19
|
||||
- Sync with upstream master.
|
||||
|
||||
* Mon May 26 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-18
|
||||
- Sync with upstream master.
|
||||
- Adjust rtkaio patches to build with upstream master.
|
||||
|
||||
* Wed May 21 2014 Kyle McMartin <kyle@fedoraproject.org> - 2.19.90-17
|
||||
- Backport some upstream-wards patches to fix TLS issues on AArch64.
|
||||
|
||||
* Wed May 21 2014 Kyle McMartin <kyle@fedoraproject.org> - 2.19.90-16
|
||||
- AArch64: Fix handling of nocancel syscall failures (#1098327)
|
||||
|
||||
* Thu May 15 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-15
|
||||
- Sync with upstream master.
|
||||
|
||||
* Wed May 14 2014 Carlos O'Donell <carlos@redhat.com> - 2.19.90-14
|
||||
- Add support for displaying all test results in build logs.
|
||||
|
||||
* Wed May 14 2014 Carlos O'Donell <carlos@redhat.com> - 2.19.90-13
|
||||
- Add initial support for ppc64le.
|
||||
|
||||
* Tue Apr 29 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-12
|
||||
- Auto-sync with upstream master.
|
||||
- Remove ports addon.
|
||||
|
||||
* Fri Apr 18 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-11
|
||||
- Sync with upstream master.
|
||||
|
||||
* Thu Apr 10 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-10
|
||||
- Sync with upstream master.
|
||||
|
||||
* Thu Apr 03 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-9
|
||||
- Sync with upstream master.
|
||||
|
||||
* Wed Mar 26 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-8
|
||||
- Sync with upstream master.
|
||||
|
||||
* Wed Mar 19 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-7
|
||||
- Sync with upstream master.
|
||||
- Fix offset computation for append+ mode on switching from read (#1078355).
|
||||
|
||||
* Wed Mar 12 2014 Carlos O'Donell <carlos@redhat.com> - 2.19.90-6
|
||||
- Sync with upstream master.
|
||||
- Use cleaner upstream solution for -ftree-loop-distribute-patterns (#911307).
|
||||
|
||||
* Tue Mar 04 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-5
|
||||
- Sync with upstream master.
|
||||
|
||||
* Thu Feb 27 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-4
|
||||
- Use nscd service files from glibc sources.
|
||||
- Make nscd service forking in systemd service file.
|
||||
|
||||
* Tue Feb 25 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-3
|
||||
- Sync with upstream master.
|
||||
- Separate ftell from fseek logic and avoid modifying FILE data (#1069559).
|
||||
|
||||
* Mon Feb 24 2014 Carlos O'Donell <carlos@redhat.com> - 2.19.90-2
|
||||
- Fix build-locale-archive failure to open default template.
|
||||
|
||||
* Tue Feb 18 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-1
|
||||
- Sync with upstream master.
|
||||
|
||||
* Tue Feb 04 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.18.90-27
|
||||
- Sync with upstream master.
|
||||
|
||||
* Wed Jan 29 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.18.90-26
|
||||
- Modify regular expressions to include powerpcle stubs-*.h (#1058258).
|
||||
|
||||
* Wed Jan 29 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.18.90-25
|
||||
- Sync with upstream master.
|
||||
|
||||
* Sat Jan 25 2014 Ville Skyttä <ville.skytta@iki.fi> - 2.18.90-24
|
||||
- Own the %%{_prefix}/lib/locale dir.
|
||||
|
||||
* Thu Jan 23 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.18.90-23
|
||||
- Sync with upstream master.
|
||||
|
||||
* Thu Jan 16 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.18.90-22
|
||||
- Back out ftell test case (#1052846).
|
||||
|
||||
* Tue Jan 14 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.18.90-21
|
||||
- Sync with upstream master.
|
||||
- Fix infinite loop in ftell when writing wide char data (#1052846).
|
||||
|
||||
* Tue Jan 7 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.18.90-20
|
||||
- Sync with upstream master.
|
||||
- Enable systemtap probes on Power and S/390.
|
||||
|
||||
* Fri Dec 27 2013 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.18.90-19
|
||||
- Sync with upstream master.
|
||||
|
||||
|
|
|
@ -67,7 +67,6 @@ bg_BG.UTF-8/UTF-8 \
|
|||
bg_BG/CP1251 \
|
||||
bhb_IN.UTF-8/UTF-8 \
|
||||
bho_IN/UTF-8 \
|
||||
bho_NP/UTF-8 \
|
||||
bi_VU/UTF-8 \
|
||||
bn_BD/UTF-8 \
|
||||
bn_IN/UTF-8 \
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
From 5eb4509a6651d19c7a28c4506d6aa582c9ee095a Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Jelinek <jakub@redhat.com>
|
||||
Date: Wed, 1 Feb 2006 09:30:43 +0000
|
||||
Subject: [PATCH] 128-bit long double fixes
|
||||
|
||||
* include/bits/stdlib-ldbl.h: New file.
|
||||
* include/bits/wchar-ldbl.h: New file.
|
||||
|
||||
---
|
||||
ChangeLog | 5 +++++
|
||||
include/bits/stdlib-ldbl.h | 1 +
|
||||
include/bits/wchar-ldbl.h | 1 +
|
||||
3 files changed, 7 insertions(+), 0 deletions(-)
|
||||
create mode 100644 include/bits/stdlib-ldbl.h
|
||||
create mode 100644 include/bits/wchar-ldbl.h
|
||||
|
||||
diff --git a/include/bits/stdlib-ldbl.h b/include/bits/stdlib-ldbl.h
|
||||
new file mode 100644
|
||||
index 0000000..6250949
|
||||
--- /dev/null
|
||||
+++ b/include/bits/stdlib-ldbl.h
|
||||
@@ -0,0 +1 @@
|
||||
+#include <stdlib/bits/stdlib-ldbl.h>
|
||||
diff --git a/include/bits/wchar-ldbl.h b/include/bits/wchar-ldbl.h
|
||||
new file mode 100644
|
||||
index 0000000..29baa2f
|
||||
--- /dev/null
|
||||
+++ b/include/bits/wchar-ldbl.h
|
||||
@@ -0,0 +1 @@
|
||||
+#include <wcsmbs/bits/wchar-ldbl.h>
|
|
@ -1,42 +0,0 @@
|
|||
From 83e5edd390eabe8f8e8e0d051f929b77a30c0767 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schwab <schwab@redhat.com>
|
||||
Date: Fri, 18 Mar 2011 16:22:52 +0100
|
||||
Subject: [PATCH] ldd: never run file directly
|
||||
|
||||
* elf/ldd.bash.in: Never run file directly.
|
||||
|
||||
---
|
||||
ChangeLog | 4 ++++
|
||||
elf/ldd.bash.in | 14 +-------------
|
||||
2 files changed, 5 insertions(+), 13 deletions(-)
|
||||
|
||||
--- a/elf/ldd.bash.in
|
||||
+++ b/elf/ldd.bash.in
|
||||
@@ -166,18 +166,6 @@ warning: you do not have execution permission for" "\`$file'" >&2
|
||||
fi
|
||||
done
|
||||
case $ret in
|
||||
- 0)
|
||||
- # If the program exits with exit code 5, it means the process has been
|
||||
- # invoked with __libc_enable_secure. Fall back to running it through
|
||||
- # the dynamic linker.
|
||||
- try_trace "$file"
|
||||
- rc=$?
|
||||
- if [ $rc = 5 ]; then
|
||||
- try_trace "$RTLD" "$file"
|
||||
- rc=$?
|
||||
- fi
|
||||
- [ $rc = 0 ] || result=1
|
||||
- ;;
|
||||
1)
|
||||
# This can be a non-ELF binary or no binary at all.
|
||||
nonelf "$file" || {
|
||||
@@ -185,7 +173,7 @@ warning: you do not have execution permission for" "\`$file'" >&2
|
||||
result=1
|
||||
}
|
||||
;;
|
||||
- 2)
|
||||
+ 0|2)
|
||||
try_trace "$RTLD" "$file" || result=1
|
||||
;;
|
||||
*)
|
|
@ -1,20 +0,0 @@
|
|||
glibc-2.3.3-1478-g37582bc
|
||||
|
||||
* Thu Nov 30 2006 Jakub Jelinek <jakub@redhat.com> 2.5.90-9
|
||||
- on ppc64 build __libc_start_main without unwind info,
|
||||
as it breaks MD_FROB_UPDATE_CONTEXT (#217729, #217775; in the
|
||||
future that could be fixable just by providing .cfi_undefined r2
|
||||
in __libc_start_main instead)
|
||||
|
||||
diff -Nrup a/sysdeps/powerpc/powerpc64/Makefile b/sysdeps/powerpc/powerpc64/Makefile
|
||||
--- a/sysdeps/powerpc/powerpc64/Makefile 2012-06-05 07:42:49.000000000 -0600
|
||||
+++ b/sysdeps/powerpc/powerpc64/Makefile 2012-06-07 12:15:21.828318633 -0600
|
||||
@@ -35,6 +35,8 @@ CFLAGS-rtld-memmove.os = $(no-special-re
|
||||
CFLAGS-rtld-memchr.os = $(no-special-regs)
|
||||
CFLAGS-rtld-strnlen.os = $(no-special-regs)
|
||||
|
||||
+CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables
|
||||
+
|
||||
ifeq ($(subdir),elf)
|
||||
# help gcc inline asm code from dl-machine.h
|
||||
+cflags += -finline-limit=2000
|
|
@ -1,37 +0,0 @@
|
|||
Builds with gcc 7.0 fail with:
|
||||
|
||||
../test-skeleton.c: In function ‘legacy_test_function’:
|
||||
cc1: error: assuming signed overflow does not occur when \
|
||||
assuming that (X - c) <= X is always true [-Werror=strict-overflow]
|
||||
|
||||
Ignoring this warning until the test or compiler is adjusted.
|
||||
Disabled with -Wno-strict-overflow. Attempted -Wstrict-overflow=1,
|
||||
but it still results in the same warning.
|
||||
|
||||
Index: glibc-2.24-661-g5653ab1/string/Makefile
|
||||
===================================================================
|
||||
--- glibc-2.24-661-g5653ab1.orig/string/Makefile
|
||||
+++ glibc-2.24-661-g5653ab1/string/Makefile
|
||||
@@ -71,7 +71,9 @@ include ../Rules
|
||||
CFLAGS-inl-tester.c = -fno-builtin
|
||||
CFLAGS-noinl-tester.c = -fno-builtin
|
||||
CFLAGS-tst-strlen.c = -fno-builtin
|
||||
-CFLAGS-stratcliff.c = -fno-builtin
|
||||
+# Added '-Wno-strict-overflow' for gcc 7.0 until the test or compiler
|
||||
+# is adjusted.
|
||||
+CFLAGS-stratcliff.c = -fno-builtin -Wno-strict-overflow
|
||||
CFLAGS-test-ffs.c = -fno-builtin
|
||||
CFLAGS-tst-inlcall.c = -fno-builtin
|
||||
CFLAGS-tst-xbzero-opt.c = -O3
|
||||
Index: glibc-2.24-661-g5653ab1/wcsmbs/Makefile
|
||||
===================================================================
|
||||
--- glibc-2.24-661-g5653ab1.orig/wcsmbs/Makefile
|
||||
+++ glibc-2.24-661-g5653ab1/wcsmbs/Makefile
|
||||
@@ -102,3 +102,7 @@ CPPFLAGS += $(libio-mtsafe)
|
||||
CPPFLAGS-wcstold_l.c = -I../stdlib
|
||||
|
||||
$(objpfx)tst-wcstod-nan-locale: $(libm)
|
||||
+
|
||||
+# Added '-Wno-strict-overflow' for gcc 7.0 until the test or compiler
|
||||
+# is adjusted.
|
||||
+CFLAGS-wcsatcliff.c = -Wno-strict-overflow
|
|
@ -0,0 +1,70 @@
|
|||
commit 1e9522c61c7a544d59db32cb7fbbd42e6793d848
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Thu Oct 5 18:14:27 2017 +0200
|
||||
|
||||
nscd: Eliminate compilation time dependency in the build output
|
||||
|
||||
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
|
||||
|
||||
diff --git a/nscd/nscd_stat.c b/nscd/nscd_stat.c
|
||||
index feb1c98ac31edcb8..b1bc81bd6d7d7fd1 100644
|
||||
--- a/nscd/nscd_stat.c
|
||||
+++ b/nscd/nscd_stat.c
|
||||
@@ -35,9 +35,23 @@
|
||||
# include <selinux/avc.h>
|
||||
#endif /* HAVE_SELINUX */
|
||||
|
||||
+/* We use this to make sure the receiver is the same. The lower 16
|
||||
+ bits are reserved for flags indicating compilation variants. This
|
||||
+ version needs to be updated if the definition of struct statdata
|
||||
+ changes. */
|
||||
+#define STATDATA_VERSION 0x01020000U
|
||||
|
||||
-/* We use this to make sure the receiver is the same. */
|
||||
-static const char compilation[21] = __DATE__ " " __TIME__;
|
||||
+#ifdef HAVE_SELINUX
|
||||
+# define STATDATA_VERSION_SELINUX_FLAG 0x0001U
|
||||
+#else
|
||||
+# define STATDATA_VERSION_SELINUX_FLAG 0x0000U
|
||||
+#endif
|
||||
+
|
||||
+/* All flags affecting the struct statdata layout. */
|
||||
+#define STATDATA_VERSION_FLAGS STATDATA_VERSION_SELINUX_FLAG
|
||||
+
|
||||
+/* The full version number for struct statdata. */
|
||||
+#define STATDATA_VERSION_FULL (STATDATA_VERSION | STATDATA_VERSION_FLAGS)
|
||||
|
||||
/* Statistic data for one database. */
|
||||
struct dbstat
|
||||
@@ -68,10 +82,11 @@ struct dbstat
|
||||
uintmax_t addfailed;
|
||||
};
|
||||
|
||||
-/* Record for transmitting statistics. */
|
||||
+/* Record for transmitting statistics. If this definition changes,
|
||||
+ update STATDATA_VERSION above. */
|
||||
struct statdata
|
||||
{
|
||||
- char version[sizeof (compilation)];
|
||||
+ unsigned int version; /* Must be STATDATA_VERSION_FULL. */
|
||||
int debug_level;
|
||||
time_t runtime;
|
||||
unsigned long int client_queued;
|
||||
@@ -96,7 +111,7 @@ send_stats (int fd, struct database_dyn dbs[lastdb])
|
||||
|
||||
memset (&data, 0, sizeof (data));
|
||||
|
||||
- memcpy (data.version, compilation, sizeof (compilation));
|
||||
+ data.version = STATDATA_VERSION_FULL;
|
||||
data.debug_level = debug_level;
|
||||
data.runtime = time (NULL) - start_time;
|
||||
data.client_queued = client_queued;
|
||||
@@ -196,7 +211,7 @@ receive_print_stats (void)
|
||||
|
||||
/* Read as much data as we expect. */
|
||||
if (TEMP_FAILURE_RETRY (read (fd, &data, sizeof (data))) != sizeof (data)
|
||||
- || (memcmp (data.version, compilation, sizeof (compilation)) != 0
|
||||
+ || (data.version != STATDATA_VERSION_FULL
|
||||
/* Yes, this is an assignment! */
|
||||
&& (errno = EINVAL)))
|
||||
{
|
|
@ -0,0 +1,447 @@
|
|||
commit 64d1e08ea822bf47cb2796ad0f727136227f983c
|
||||
Author: Andreas Schwab <schwab@suse.de>
|
||||
Date: Mon Oct 2 14:30:46 2017 +0200
|
||||
|
||||
Move nss_compat from nis to nss subdir and install it unconditionally
|
||||
|
||||
This has been tested that local lookup still works with and
|
||||
without an installed libnss_nis, and that NIS lookup works when
|
||||
libnss_nis is available.
|
||||
|
||||
diff --git a/nis/Makefile b/nis/Makefile
|
||||
index 6b6f5ee72c80ec35..023916f44642ccfa 100644
|
||||
--- a/nis/Makefile
|
||||
+++ b/nis/Makefile
|
||||
@@ -33,7 +33,7 @@ databases = proto service hosts network grp pwd rpc ethers \
|
||||
spwd netgrp alias publickey
|
||||
|
||||
# Specify rules for the nss_* modules.
|
||||
-services := nis nisplus compat
|
||||
+services := nis nisplus
|
||||
endif
|
||||
|
||||
extra-libs = libnsl
|
||||
@@ -63,9 +63,6 @@ libnsl-routines = yp_xdr ypclnt ypupdate_xdr \
|
||||
nis_clone_res nss-default
|
||||
|
||||
ifeq ($(build-obsolete-nsl),yes)
|
||||
-libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups)
|
||||
-libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
-
|
||||
libnss_nis-routines := $(addprefix nis-,$(databases)) nis-initgroups \
|
||||
nss-nis
|
||||
libnss_nis-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
@@ -79,7 +76,6 @@ include ../Rules
|
||||
|
||||
|
||||
ifeq ($(build-obsolete-nsl),yes)
|
||||
-$(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version)
|
||||
$(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
|
||||
$(common-objpfx)nss/libnss_files.so
|
||||
$(objpfx)libnss_nisplus.so: $(objpfx)libnsl.so$(libnsl.so-version)
|
||||
diff --git a/nis/Versions b/nis/Versions
|
||||
index ef9a5124174ec0e8..90d3d9dfaa3d853b 100644
|
||||
--- a/nis/Versions
|
||||
+++ b/nis/Versions
|
||||
@@ -63,17 +63,6 @@ libnsl {
|
||||
}
|
||||
}
|
||||
|
||||
-libnss_compat {
|
||||
- GLIBC_PRIVATE {
|
||||
- _nss_compat_endgrent; _nss_compat_endpwent; _nss_compat_endspent;
|
||||
- _nss_compat_getgrent_r; _nss_compat_getgrgid_r; _nss_compat_getgrnam_r;
|
||||
- _nss_compat_getpwent_r; _nss_compat_getpwnam_r; _nss_compat_getpwuid_r;
|
||||
- _nss_compat_getspent_r; _nss_compat_getspnam_r;
|
||||
- _nss_compat_setgrent; _nss_compat_setpwent; _nss_compat_setspent;
|
||||
- _nss_compat_initgroups_dyn;
|
||||
- }
|
||||
-}
|
||||
-
|
||||
libnss_nis {
|
||||
GLIBC_PRIVATE {
|
||||
_nss_nis_endaliasent; _nss_nis_endetherent; _nss_nis_endgrent;
|
||||
diff --git a/nss/Makefile b/nss/Makefile
|
||||
index 91b1c21567edaba8..bf9663224ab43333 100644
|
||||
--- a/nss/Makefile
|
||||
+++ b/nss/Makefile
|
||||
@@ -70,7 +70,7 @@ tests += tst-cancel-getpwuid_r
|
||||
endif
|
||||
|
||||
# Specify rules for the nss_* modules. We have some services.
|
||||
-services := files db
|
||||
+services := files db compat
|
||||
|
||||
extra-libs = $(services:%=libnss_%)
|
||||
# These libraries will be built in the `others' pass rather than
|
||||
@@ -93,11 +93,15 @@ libnss_db-routines := $(libnss_db-dbs) db-open db-init hash-string
|
||||
generated += $(filter-out db-alias.c db-netgrp.c, \
|
||||
$(addsuffix .c,$(libnss_db-dbs)))
|
||||
|
||||
+libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) \
|
||||
+ nisdomain
|
||||
+
|
||||
install-others += $(inst_vardbdir)/Makefile
|
||||
|
||||
# Build static module into libc if requested
|
||||
libnss_files-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
libnss_db-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
+libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
ifeq ($(build-static-nss),yes)
|
||||
routines += $(libnss_files-routines)
|
||||
static-only-routines += $(libnss_files-routines)
|
||||
diff --git a/nss/Versions b/nss/Versions
|
||||
index f8ababccc74d1dd2..14c2571468169e4d 100644
|
||||
--- a/nss/Versions
|
||||
+++ b/nss/Versions
|
||||
@@ -160,3 +160,14 @@ libnss_db {
|
||||
_nss_db_init;
|
||||
}
|
||||
}
|
||||
+
|
||||
+libnss_compat {
|
||||
+ GLIBC_PRIVATE {
|
||||
+ _nss_compat_endgrent; _nss_compat_endpwent; _nss_compat_endspent;
|
||||
+ _nss_compat_getgrent_r; _nss_compat_getgrgid_r; _nss_compat_getgrnam_r;
|
||||
+ _nss_compat_getpwent_r; _nss_compat_getpwnam_r; _nss_compat_getpwuid_r;
|
||||
+ _nss_compat_getspent_r; _nss_compat_getspnam_r;
|
||||
+ _nss_compat_setgrent; _nss_compat_setpwent; _nss_compat_setspent;
|
||||
+ _nss_compat_initgroups_dyn;
|
||||
+ }
|
||||
+}
|
||||
diff --git a/nis/nss_compat/compat-grp.c b/nss/nss_compat/compat-grp.c
|
||||
similarity index 97%
|
||||
rename from nis/nss_compat/compat-grp.c
|
||||
rename to nss/nss_compat/compat-grp.c
|
||||
index 0381458c0c0b9143..4d51fc95ed9321cd 100644
|
||||
--- a/nis/nss_compat/compat-grp.c
|
||||
+++ b/nss/nss_compat/compat-grp.c
|
||||
@@ -24,7 +24,6 @@
|
||||
#include <nsswitch.h>
|
||||
#include <stdio_ext.h>
|
||||
#include <string.h>
|
||||
-#include <rpc/types.h>
|
||||
#include <libc-lock.h>
|
||||
#include <kernel-features.h>
|
||||
|
||||
@@ -58,21 +57,21 @@ struct blacklist_t
|
||||
|
||||
struct ent_t
|
||||
{
|
||||
- bool_t files;
|
||||
+ bool files;
|
||||
enum nss_status setent_status;
|
||||
FILE *stream;
|
||||
struct blacklist_t blacklist;
|
||||
};
|
||||
typedef struct ent_t ent_t;
|
||||
|
||||
-static ent_t ext_ent = { TRUE, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
+static ent_t ext_ent = { true, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
|
||||
/* Protect global state against multiple changers. */
|
||||
__libc_lock_define_initialized (static, lock)
|
||||
|
||||
/* Prototypes for local functions. */
|
||||
static void blacklist_store_name (const char *, ent_t *);
|
||||
-static int in_blacklist (const char *, int, ent_t *);
|
||||
+static bool in_blacklist (const char *, int, ent_t *);
|
||||
|
||||
/* Initialize the NSS interface/functions. The calling function must
|
||||
hold the lock. */
|
||||
@@ -94,7 +93,7 @@ internal_setgrent (ent_t *ent, int stayopen, int needent)
|
||||
{
|
||||
enum nss_status status = NSS_STATUS_SUCCESS;
|
||||
|
||||
- ent->files = TRUE;
|
||||
+ ent->files = true;
|
||||
|
||||
if (ent->blacklist.data != NULL)
|
||||
{
|
||||
@@ -321,7 +320,7 @@ getgrent_next_file (struct group *result, ent_t *ent,
|
||||
/* +:... */
|
||||
if (result->gr_name[0] == '+' && result->gr_name[1] == '\0')
|
||||
{
|
||||
- ent->files = FALSE;
|
||||
+ ent->files = false;
|
||||
|
||||
return getgrent_next_nss (result, ent, buffer, buflen, errnop);
|
||||
}
|
||||
@@ -466,7 +465,7 @@ enum nss_status
|
||||
_nss_compat_getgrnam_r (const char *name, struct group *grp,
|
||||
char *buffer, size_t buflen, int *errnop)
|
||||
{
|
||||
- ent_t ent = { TRUE, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
+ ent_t ent = { true, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
enum nss_status result;
|
||||
|
||||
if (name[0] == '-' || name[0] == '+')
|
||||
@@ -598,7 +597,7 @@ enum nss_status
|
||||
_nss_compat_getgrgid_r (gid_t gid, struct group *grp,
|
||||
char *buffer, size_t buflen, int *errnop)
|
||||
{
|
||||
- ent_t ent = { TRUE, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
+ ent_t ent = { true, NSS_STATUS_SUCCESS, NULL, { NULL, 0, 0 }};
|
||||
enum nss_status result;
|
||||
|
||||
__libc_lock_lock (lock);
|
||||
@@ -665,15 +664,15 @@ blacklist_store_name (const char *name, ent_t *ent)
|
||||
return;
|
||||
}
|
||||
|
||||
-/* returns TRUE if ent->blacklist contains name, else FALSE */
|
||||
-static bool_t
|
||||
+/* Return whether ent->blacklist contains name. */
|
||||
+static bool
|
||||
in_blacklist (const char *name, int namelen, ent_t *ent)
|
||||
{
|
||||
char buf[namelen + 3];
|
||||
char *cp;
|
||||
|
||||
if (ent->blacklist.data == NULL)
|
||||
- return FALSE;
|
||||
+ return false;
|
||||
|
||||
buf[0] = '|';
|
||||
cp = stpcpy (&buf[1], name);
|
||||
diff --git a/nis/nss_compat/compat-initgroups.c b/nss/nss_compat/compat-initgroups.c
|
||||
similarity index 98%
|
||||
rename from nis/nss_compat/compat-initgroups.c
|
||||
rename to nss/nss_compat/compat-initgroups.c
|
||||
index 93b765ca952ffb0e..bae8765afbd109e9 100644
|
||||
--- a/nis/nss_compat/compat-initgroups.c
|
||||
+++ b/nss/nss_compat/compat-initgroups.c
|
||||
@@ -24,7 +24,6 @@
|
||||
#include <stdio_ext.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
-#include <rpc/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <nsswitch.h>
|
||||
#include <libc-lock.h>
|
||||
@@ -79,7 +78,7 @@ typedef struct ent_t ent_t;
|
||||
|
||||
/* Prototypes for local functions. */
|
||||
static void blacklist_store_name (const char *, ent_t *);
|
||||
-static int in_blacklist (const char *, int, ent_t *);
|
||||
+static bool in_blacklist (const char *, int, ent_t *);
|
||||
|
||||
/* Initialize the NSS interface/functions. The calling function must
|
||||
hold the lock. */
|
||||
@@ -554,15 +553,15 @@ blacklist_store_name (const char *name, ent_t *ent)
|
||||
return;
|
||||
}
|
||||
|
||||
-/* returns TRUE if ent->blacklist contains name, else FALSE */
|
||||
-static bool_t
|
||||
+/* Return whether ent->blacklist contains name. */
|
||||
+static bool
|
||||
in_blacklist (const char *name, int namelen, ent_t *ent)
|
||||
{
|
||||
char buf[namelen + 3];
|
||||
char *cp;
|
||||
|
||||
if (ent->blacklist.data == NULL)
|
||||
- return FALSE;
|
||||
+ return false;
|
||||
|
||||
buf[0] = '|';
|
||||
cp = stpcpy (&buf[1], name);
|
||||
diff --git a/nis/nss_compat/compat-pwd.c b/nss/nss_compat/compat-pwd.c
|
||||
similarity index 99%
|
||||
rename from nis/nss_compat/compat-pwd.c
|
||||
rename to nss/nss_compat/compat-pwd.c
|
||||
index 0583a10b84a2f53e..b16eef5d44b09e45 100644
|
||||
--- a/nis/nss_compat/compat-pwd.c
|
||||
+++ b/nss/nss_compat/compat-pwd.c
|
||||
@@ -25,12 +25,11 @@
|
||||
#include <pwd.h>
|
||||
#include <stdio_ext.h>
|
||||
#include <string.h>
|
||||
-#include <rpc/types.h>
|
||||
-#include <rpcsvc/ypclnt.h>
|
||||
#include <libc-lock.h>
|
||||
#include <kernel-features.h>
|
||||
|
||||
#include "netgroup.h"
|
||||
+#include "nisdomain.h"
|
||||
|
||||
static service_user *ni;
|
||||
static enum nss_status (*nss_setpwent) (int stayopen);
|
||||
@@ -82,7 +81,7 @@ __libc_lock_define_initialized (static, lock)
|
||||
|
||||
/* Prototypes for local functions. */
|
||||
static void blacklist_store_name (const char *, ent_t *);
|
||||
-static int in_blacklist (const char *, int, ent_t *);
|
||||
+static bool in_blacklist (const char *, int, ent_t *);
|
||||
|
||||
/* Initialize the NSS interface/functions. The calling function must
|
||||
hold the lock. */
|
||||
@@ -346,7 +345,7 @@ getpwent_next_nss_netgr (const char *name, struct passwd *result, ent_t *ent,
|
||||
if (domain != NULL)
|
||||
{
|
||||
if (curdomain == NULL
|
||||
- && yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
|
||||
+ && __nss_get_default_domain (&curdomain) != 0)
|
||||
{
|
||||
__internal_endnetgrent (&ent->netgrdata);
|
||||
ent->netgroup = false;
|
||||
@@ -1114,15 +1113,15 @@ blacklist_store_name (const char *name, ent_t *ent)
|
||||
return;
|
||||
}
|
||||
|
||||
-/* Returns TRUE if ent->blacklist contains name, else FALSE. */
|
||||
-static bool_t
|
||||
+/* Returns whether ent->blacklist contains name. */
|
||||
+static bool
|
||||
in_blacklist (const char *name, int namelen, ent_t *ent)
|
||||
{
|
||||
char buf[namelen + 3];
|
||||
char *cp;
|
||||
|
||||
if (ent->blacklist.data == NULL)
|
||||
- return FALSE;
|
||||
+ return false;
|
||||
|
||||
buf[0] = '|';
|
||||
cp = stpcpy (&buf[1], name);
|
||||
diff --git a/nis/nss_compat/compat-spwd.c b/nss/nss_compat/compat-spwd.c
|
||||
similarity index 98%
|
||||
rename from nis/nss_compat/compat-spwd.c
|
||||
rename to nss/nss_compat/compat-spwd.c
|
||||
index eec3af3d15af148b..8a875472fa6d3a0e 100644
|
||||
--- a/nis/nss_compat/compat-spwd.c
|
||||
+++ b/nss/nss_compat/compat-spwd.c
|
||||
@@ -25,12 +25,11 @@
|
||||
#include <shadow.h>
|
||||
#include <stdio_ext.h>
|
||||
#include <string.h>
|
||||
-#include <rpc/types.h>
|
||||
-#include <rpcsvc/ypclnt.h>
|
||||
#include <libc-lock.h>
|
||||
#include <kernel-features.h>
|
||||
|
||||
#include "netgroup.h"
|
||||
+#include "nisdomain.h"
|
||||
|
||||
static service_user *ni;
|
||||
static enum nss_status (*nss_setspent) (int stayopen);
|
||||
@@ -79,7 +78,7 @@ __libc_lock_define_initialized (static, lock)
|
||||
|
||||
/* Prototypes for local functions. */
|
||||
static void blacklist_store_name (const char *, ent_t *);
|
||||
-static int in_blacklist (const char *, int, ent_t *);
|
||||
+static bool in_blacklist (const char *, int, ent_t *);
|
||||
|
||||
/* Initialize the NSS interface/functions. The calling function must
|
||||
hold the lock. */
|
||||
@@ -306,7 +305,7 @@ getspent_next_nss_netgr (const char *name, struct spwd *result, ent_t *ent,
|
||||
if (domain != NULL)
|
||||
{
|
||||
if (curdomain == NULL
|
||||
- && yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
|
||||
+ && __nss_get_default_domain (&curdomain) != 0)
|
||||
{
|
||||
__internal_endnetgrent (&ent->netgrdata);
|
||||
ent->netgroup = false;
|
||||
@@ -840,8 +839,8 @@ blacklist_store_name (const char *name, ent_t *ent)
|
||||
}
|
||||
|
||||
|
||||
-/* Returns TRUE if ent->blacklist contains name, else FALSE. */
|
||||
-static bool_t
|
||||
+/* Returns whether ent->blacklist contains name. */
|
||||
+static bool
|
||||
in_blacklist (const char *name, int namelen, ent_t *ent)
|
||||
{
|
||||
char buf[namelen + 3];
|
||||
diff --git a/nss/nss_compat/nisdomain.c b/nss/nss_compat/nisdomain.c
|
||||
new file mode 100644
|
||||
index 0000000000000000..220ae27234705855
|
||||
--- /dev/null
|
||||
+++ b/nss/nss_compat/nisdomain.c
|
||||
@@ -0,0 +1,58 @@
|
||||
+/* 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 <stdlib.h>
|
||||
+#include <string.h>
|
||||
+#include <errno.h>
|
||||
+#include <unistd.h>
|
||||
+#include <libc-lock.h>
|
||||
+#include "nisdomain.h"
|
||||
+
|
||||
+#define MAXDOMAINNAMELEN 1024
|
||||
+
|
||||
+static char domainname[MAXDOMAINNAMELEN];
|
||||
+
|
||||
+__libc_lock_define_initialized (static, domainname_lock)
|
||||
+
|
||||
+int
|
||||
+__nss_get_default_domain (char **outdomain)
|
||||
+{
|
||||
+ int result = 0;
|
||||
+ *outdomain = NULL;
|
||||
+
|
||||
+ __libc_lock_lock (domainname_lock);
|
||||
+
|
||||
+ if (domainname[0] != '\0')
|
||||
+ {
|
||||
+ if (getdomainname (domainname, MAXDOMAINNAMELEN) < 0)
|
||||
+ result = errno;
|
||||
+ else if (strcmp (domainname, "(none)") == 0)
|
||||
+ {
|
||||
+ /* If domainname is not set, some systems will return "(none)" */
|
||||
+ domainname[0] = '\0';
|
||||
+ result = ENOENT;
|
||||
+ }
|
||||
+ else
|
||||
+ *outdomain = domainname;
|
||||
+ }
|
||||
+ else
|
||||
+ *outdomain = domainname;
|
||||
+
|
||||
+ __libc_lock_unlock (domainname_lock);
|
||||
+
|
||||
+ return result;
|
||||
+}
|
||||
diff --git a/nss/nss_compat/nisdomain.h b/nss/nss_compat/nisdomain.h
|
||||
new file mode 100644
|
||||
index 0000000000000000..314f3f7c069835af
|
||||
--- /dev/null
|
||||
+++ b/nss/nss_compat/nisdomain.h
|
||||
@@ -0,0 +1,20 @@
|
||||
+/* 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/>. */
|
||||
+
|
||||
+/* Set OUTDOMAIN to a pointer to the current NIS domain name, or NULL if
|
||||
+ not set. Return zero on success, an error number on failure. */
|
||||
+extern int __nss_get_default_domain (char **outdomain);
|
|
@ -1,19 +0,0 @@
|
|||
--- glibc-2.18-151-g303e567.orig/elf/ldconfig.c 2013-09-25 14:01:01.522446341 -0400
|
||||
+++ glibc-2.18-151-g303e567/elf/ldconfig.c 2013-09-25 14:06:31.094218857 -0400
|
||||
@@ -959,6 +959,16 @@
|
||||
|| dlib_ptr->flag == FLAG_ELF_LIBC6)
|
||||
&& flag == FLAG_ELF)
|
||||
dlib_ptr->flag = flag;
|
||||
+#ifdef __arm__
|
||||
+ /* In Fedora 20 binutils regressed temporarily and failed to
|
||||
+ mark hard ABI objects with the correct flag. Therefore we
|
||||
+ must accept unmarked objects that were previously marked
|
||||
+ hard ABI. We can remove this check once the entire distribution
|
||||
+ has been rebuilt. */
|
||||
+ else if (dlib_ptr->flag & FLAG_ARM_LIBHF &&
|
||||
+ (flag == FLAG_ELF_LIBC6))
|
||||
+ ;
|
||||
+#endif
|
||||
else
|
||||
error (0, 0, _("libraries %s and %s in directory %s have same soname but different type."),
|
||||
dlib_ptr->name, direntry->d_name,
|
|
@ -0,0 +1,271 @@
|
|||
commit 5a79f97554af6f2eb0a654f844b3d1f56937064d
|
||||
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
Date: Mon Sep 4 17:00:03 2017 -0300
|
||||
|
||||
posix: Fix getpwnam_r usage (BZ #1062)
|
||||
|
||||
This patch fixes longstanding misuse of errno after getpwnam_r,
|
||||
which returns an error number rather than setting errno. This is
|
||||
sync with gnulib commit 5db9301.
|
||||
|
||||
Checked on x86_64-linux-gnu and on a build using build-many-glibcs.py
|
||||
for all major architectures.
|
||||
|
||||
[BZ #1062]
|
||||
* posix/glob.c (glob): Port recent patches to platforms
|
||||
lacking getpwnam_r.
|
||||
(glob): Fix longstanding misuse of errno after getpwnam_r, which
|
||||
returns an error number rather than setting errno.
|
||||
|
||||
diff --git a/posix/glob.c b/posix/glob.c
|
||||
index c761c0861ddb49ea..70434745f57f8ff5 100644
|
||||
--- a/posix/glob.c
|
||||
+++ b/posix/glob.c
|
||||
@@ -15,10 +15,6 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
-#ifndef _LIBC
|
||||
-# include <config.h>
|
||||
-#endif
|
||||
-
|
||||
#include <glob.h>
|
||||
|
||||
#include <errno.h>
|
||||
@@ -39,10 +35,6 @@
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
-#ifndef __set_errno
|
||||
-# define __set_errno(val) errno = (val)
|
||||
-#endif
|
||||
-
|
||||
#include <dirent.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -78,12 +70,8 @@
|
||||
|
||||
#include <flexmember.h>
|
||||
#include <glob_internal.h>
|
||||
+#include <scratch_buffer.h>
|
||||
|
||||
-#ifdef _SC_GETPW_R_SIZE_MAX
|
||||
-# define GETPW_R_SIZE_MAX() sysconf (_SC_GETPW_R_SIZE_MAX)
|
||||
-#else
|
||||
-# define GETPW_R_SIZE_MAX() (-1)
|
||||
-#endif
|
||||
#ifdef _SC_LOGIN_NAME_MAX
|
||||
# define GET_LOGIN_NAME_MAX() sysconf (_SC_LOGIN_NAME_MAX)
|
||||
#else
|
||||
@@ -651,97 +639,36 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
|
||||
if (success)
|
||||
{
|
||||
struct passwd *p;
|
||||
- char *malloc_pwtmpbuf = NULL;
|
||||
- char *pwtmpbuf;
|
||||
+ struct scratch_buffer pwtmpbuf;
|
||||
+ scratch_buffer_init (&pwtmpbuf);
|
||||
# if defined HAVE_GETPWNAM_R || defined _LIBC
|
||||
- long int pwbuflenmax = GETPW_R_SIZE_MAX ();
|
||||
- size_t pwbuflen = pwbuflenmax;
|
||||
struct passwd pwbuf;
|
||||
- int save = errno;
|
||||
|
||||
-# ifndef _LIBC
|
||||
- if (! (0 < pwbuflenmax && pwbuflenmax <= SIZE_MAX))
|
||||
- /* 'sysconf' does not support _SC_GETPW_R_SIZE_MAX.
|
||||
- Try a moderate value. */
|
||||
- pwbuflen = 1024;
|
||||
-# endif
|
||||
- if (glob_use_alloca (alloca_used, pwbuflen))
|
||||
- pwtmpbuf = alloca_account (pwbuflen, alloca_used);
|
||||
- else
|
||||
+ while (getpwnam_r (name, &pwbuf,
|
||||
+ pwtmpbuf.data, pwtmpbuf.length, &p)
|
||||
+ == ERANGE)
|
||||
{
|
||||
- pwtmpbuf = malloc (pwbuflen);
|
||||
- if (pwtmpbuf == NULL)
|
||||
+ if (!scratch_buffer_grow (&pwtmpbuf))
|
||||
{
|
||||
- if (__glibc_unlikely (malloc_name))
|
||||
- free (name);
|
||||
retval = GLOB_NOSPACE;
|
||||
goto out;
|
||||
}
|
||||
- malloc_pwtmpbuf = pwtmpbuf;
|
||||
- }
|
||||
-
|
||||
- while (getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p)
|
||||
- != 0)
|
||||
- {
|
||||
- size_t newlen;
|
||||
- bool v;
|
||||
- if (errno != ERANGE)
|
||||
- {
|
||||
- p = NULL;
|
||||
- break;
|
||||
- }
|
||||
- v = size_add_wrapv (pwbuflen, pwbuflen, &newlen);
|
||||
- if (!v && malloc_pwtmpbuf == NULL
|
||||
- && glob_use_alloca (alloca_used, newlen))
|
||||
- pwtmpbuf = extend_alloca_account (pwtmpbuf, pwbuflen,
|
||||
- newlen, alloca_used);
|
||||
- else
|
||||
- {
|
||||
- char *newp = (v ? NULL
|
||||
- : realloc (malloc_pwtmpbuf, newlen));
|
||||
- if (newp == NULL)
|
||||
- {
|
||||
- free (malloc_pwtmpbuf);
|
||||
- if (__glibc_unlikely (malloc_name))
|
||||
- free (name);
|
||||
- retval = GLOB_NOSPACE;
|
||||
- goto out;
|
||||
- }
|
||||
- malloc_pwtmpbuf = pwtmpbuf = newp;
|
||||
- }
|
||||
- pwbuflen = newlen;
|
||||
- __set_errno (save);
|
||||
}
|
||||
# else
|
||||
p = getpwnam (name);
|
||||
# endif
|
||||
- if (__glibc_unlikely (malloc_name))
|
||||
- free (name);
|
||||
if (p != NULL)
|
||||
{
|
||||
- if (malloc_pwtmpbuf == NULL)
|
||||
- home_dir = p->pw_dir;
|
||||
- else
|
||||
+ home_dir = strdup (p->pw_dir);
|
||||
+ malloc_home_dir = 1;
|
||||
+ if (home_dir == NULL)
|
||||
{
|
||||
- size_t home_dir_len = strlen (p->pw_dir) + 1;
|
||||
- if (glob_use_alloca (alloca_used, home_dir_len))
|
||||
- home_dir = alloca_account (home_dir_len,
|
||||
- alloca_used);
|
||||
- else
|
||||
- {
|
||||
- home_dir = malloc (home_dir_len);
|
||||
- if (home_dir == NULL)
|
||||
- {
|
||||
- free (pwtmpbuf);
|
||||
- retval = GLOB_NOSPACE;
|
||||
- goto out;
|
||||
- }
|
||||
- malloc_home_dir = 1;
|
||||
- }
|
||||
- memcpy (home_dir, p->pw_dir, home_dir_len);
|
||||
+ scratch_buffer_free (&pwtmpbuf);
|
||||
+ retval = GLOB_NOSPACE;
|
||||
+ goto out;
|
||||
}
|
||||
}
|
||||
- free (malloc_pwtmpbuf);
|
||||
+ scratch_buffer_free (&pwtmpbuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -878,61 +805,21 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
|
||||
/* Look up specific user's home directory. */
|
||||
{
|
||||
struct passwd *p;
|
||||
- char *malloc_pwtmpbuf = NULL;
|
||||
+ struct scratch_buffer pwtmpbuf;
|
||||
+ scratch_buffer_init (&pwtmpbuf);
|
||||
+
|
||||
# if defined HAVE_GETPWNAM_R || defined _LIBC
|
||||
- long int buflenmax = GETPW_R_SIZE_MAX ();
|
||||
- size_t buflen = buflenmax;
|
||||
- char *pwtmpbuf;
|
||||
struct passwd pwbuf;
|
||||
- int save = errno;
|
||||
-
|
||||
-# ifndef _LIBC
|
||||
- if (! (0 <= buflenmax && buflenmax <= SIZE_MAX))
|
||||
- /* Perhaps 'sysconf' does not support _SC_GETPW_R_SIZE_MAX. Try a
|
||||
- moderate value. */
|
||||
- buflen = 1024;
|
||||
-# endif
|
||||
- if (glob_use_alloca (alloca_used, buflen))
|
||||
- pwtmpbuf = alloca_account (buflen, alloca_used);
|
||||
- else
|
||||
+
|
||||
+ while (getpwnam_r (user_name, &pwbuf,
|
||||
+ pwtmpbuf.data, pwtmpbuf.length, &p)
|
||||
+ == ERANGE)
|
||||
{
|
||||
- pwtmpbuf = malloc (buflen);
|
||||
- if (pwtmpbuf == NULL)
|
||||
+ if (!scratch_buffer_grow (&pwtmpbuf))
|
||||
{
|
||||
- nomem_getpw:
|
||||
- if (__glibc_unlikely (malloc_user_name))
|
||||
- free (user_name);
|
||||
retval = GLOB_NOSPACE;
|
||||
goto out;
|
||||
}
|
||||
- malloc_pwtmpbuf = pwtmpbuf;
|
||||
- }
|
||||
-
|
||||
- while (getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) != 0)
|
||||
- {
|
||||
- size_t newlen;
|
||||
- bool v;
|
||||
- if (errno != ERANGE)
|
||||
- {
|
||||
- p = NULL;
|
||||
- break;
|
||||
- }
|
||||
- v = size_add_wrapv (buflen, buflen, &newlen);
|
||||
- if (!v && malloc_pwtmpbuf == NULL
|
||||
- && glob_use_alloca (alloca_used, newlen))
|
||||
- pwtmpbuf = extend_alloca_account (pwtmpbuf, buflen,
|
||||
- newlen, alloca_used);
|
||||
- else
|
||||
- {
|
||||
- char *newp = v ? NULL : realloc (malloc_pwtmpbuf, newlen);
|
||||
- if (newp == NULL)
|
||||
- {
|
||||
- free (malloc_pwtmpbuf);
|
||||
- goto nomem_getpw;
|
||||
- }
|
||||
- malloc_pwtmpbuf = pwtmpbuf = newp;
|
||||
- }
|
||||
- __set_errno (save);
|
||||
}
|
||||
# else
|
||||
p = getpwnam (user_name);
|
||||
@@ -959,7 +846,7 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
|
||||
dirname = malloc (home_len + rest_len + 1);
|
||||
if (dirname == NULL)
|
||||
{
|
||||
- free (malloc_pwtmpbuf);
|
||||
+ scratch_buffer_free (&pwtmpbuf);
|
||||
retval = GLOB_NOSPACE;
|
||||
goto out;
|
||||
}
|
||||
@@ -970,13 +857,9 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
|
||||
|
||||
dirlen = home_len + rest_len;
|
||||
dirname_modified = 1;
|
||||
-
|
||||
- free (malloc_pwtmpbuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
- free (malloc_pwtmpbuf);
|
||||
-
|
||||
if (flags & GLOB_TILDE_CHECK)
|
||||
{
|
||||
/* We have to regard it as an error if we cannot find the
|
||||
@@ -985,6 +868,7 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
+ scratch_buffer_free (&pwtmpbuf);
|
||||
}
|
||||
#endif /* !WINDOWS32 */
|
||||
}
|
|
@ -156,16 +156,6 @@ Date: Sun Mar 1 19:48:31 2015 +0100
|
|||
* posix/wordexp.c (parse_tilde): Use struct scratch_buffer
|
||||
instead of extend_alloca.
|
||||
|
||||
commit 7b4c16db30304b83a5d1e913d1a8f7e90a8c398c
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Sun Mar 1 19:49:50 2015 +0100
|
||||
|
||||
glob: Rewrite to use struct scratch_buffer instead of extend_alloca
|
||||
|
||||
[BZ #18023]
|
||||
* posix/glob.c (glob): Use struct scratch_buffer instead of
|
||||
extend_alloca.
|
||||
|
||||
commit 683543bbb3e2c1b17554c4096d00c2980f39a802
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Sun Mar 1 23:22:45 2015 +0100
|
||||
|
@ -249,8 +239,9 @@ Date: Sun Mar 1 23:22:45 2015 +0100
|
|||
[BZ #18023]
|
||||
* include/alloca.h (stackinfo_alloca_round, extend_alloca,
|
||||
extend_alloca_account): Remove.
|
||||
Index: b/elf/dl-deps.c
|
||||
===================================================================
|
||||
|
||||
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
|
||||
index 1b8bac65932a7713..bc59f0ff7b4d7c61 100644
|
||||
--- a/elf/dl-deps.c
|
||||
+++ b/elf/dl-deps.c
|
||||
@@ -27,6 +27,7 @@
|
||||
|
@ -261,7 +252,7 @@ Index: b/elf/dl-deps.c
|
|||
|
||||
#include <dl-dst.h>
|
||||
|
||||
@@ -184,9 +185,8 @@ _dl_map_object_deps (struct link_map *ma
|
||||
@@ -184,9 +185,8 @@ _dl_map_object_deps (struct link_map *map,
|
||||
/* Pointer to last unique object. */
|
||||
tail = &known[nlist - 1];
|
||||
|
||||
|
@ -273,7 +264,7 @@ Index: b/elf/dl-deps.c
|
|||
|
||||
/* Process each element of the search list, loading each of its
|
||||
auxiliary objects and immediate dependencies. Auxiliary objects
|
||||
@@ -217,13 +217,12 @@ _dl_map_object_deps (struct link_map *ma
|
||||
@@ -217,13 +217,12 @@ _dl_map_object_deps (struct link_map *map,
|
||||
if (l->l_searchlist.r_list == NULL && l->l_initfini == NULL
|
||||
&& l != map && l->l_ldnum > 0)
|
||||
{
|
||||
|
@ -293,7 +284,7 @@ Index: b/elf/dl-deps.c
|
|||
}
|
||||
|
||||
if (l->l_info[DT_NEEDED] || l->l_info[AUXTAG] || l->l_info[FILTERTAG])
|
||||
@@ -463,8 +462,11 @@ _dl_map_object_deps (struct link_map *ma
|
||||
@@ -463,8 +462,11 @@ _dl_map_object_deps (struct link_map *map,
|
||||
struct link_map **l_initfini = (struct link_map **)
|
||||
malloc ((2 * nneeded + 1) * sizeof needed[0]);
|
||||
if (l_initfini == NULL)
|
||||
|
@ -307,7 +298,7 @@ Index: b/elf/dl-deps.c
|
|||
l_initfini[0] = l;
|
||||
memcpy (&l_initfini[1], needed, nneeded * sizeof needed[0]);
|
||||
memcpy (&l_initfini[nneeded + 1], l_initfini,
|
||||
@@ -482,6 +484,8 @@ _dl_map_object_deps (struct link_map *ma
|
||||
@@ -482,6 +484,8 @@ _dl_map_object_deps (struct link_map *map,
|
||||
}
|
||||
|
||||
out:
|
||||
|
@ -316,8 +307,8 @@ Index: b/elf/dl-deps.c
|
|||
if (errno == 0 && errno_saved != 0)
|
||||
__set_errno (errno_saved);
|
||||
|
||||
Index: b/include/alloca.h
|
||||
===================================================================
|
||||
diff --git a/include/alloca.h b/include/alloca.h
|
||||
index fd90664f0a17cd6d..c0b83954436ed4c1 100644
|
||||
--- a/include/alloca.h
|
||||
+++ b/include/alloca.h
|
||||
@@ -23,57 +23,17 @@ libc_hidden_proto (__libc_alloca_cutoff)
|
||||
|
@ -378,11 +369,11 @@ Index: b/include/alloca.h
|
|||
#endif
|
||||
|
||||
# endif /* !_ISOMAC */
|
||||
Index: b/nis/nss_compat/compat-initgroups.c
|
||||
===================================================================
|
||||
diff --git a/nis/nss_compat/compat-initgroups.c b/nis/nss_compat/compat-initgroups.c
|
||||
index 795213448c7c98b7..93b765ca952ffb0e 100644
|
||||
--- a/nis/nss_compat/compat-initgroups.c
|
||||
+++ b/nis/nss_compat/compat-initgroups.c
|
||||
@@ -262,7 +262,6 @@ getgrent_next_nss (ent_t *ent, char *buf
|
||||
@@ -262,7 +262,6 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user,
|
||||
overwrite the pointer with one to a bigger buffer. */
|
||||
char *tmpbuf = buffer;
|
||||
size_t tmplen = buflen;
|
||||
|
@ -390,7 +381,7 @@ Index: b/nis/nss_compat/compat-initgroups.c
|
|||
|
||||
for (int i = 0; i < mystart; i++)
|
||||
{
|
||||
@@ -271,29 +270,26 @@ getgrent_next_nss (ent_t *ent, char *buf
|
||||
@@ -271,29 +270,26 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user,
|
||||
== NSS_STATUS_TRYAGAIN
|
||||
&& *errnop == ERANGE)
|
||||
{
|
||||
|
@ -440,7 +431,7 @@ Index: b/nis/nss_compat/compat-initgroups.c
|
|||
}
|
||||
|
||||
if (__builtin_expect (status != NSS_STATUS_NOTFOUND, 1))
|
||||
@@ -321,7 +317,7 @@ getgrent_next_nss (ent_t *ent, char *buf
|
||||
@@ -321,7 +317,7 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user,
|
||||
status = NSS_STATUS_NOTFOUND;
|
||||
|
||||
done:
|
||||
|
@ -449,8 +440,8 @@ Index: b/nis/nss_compat/compat-initgroups.c
|
|||
free (tmpbuf);
|
||||
}
|
||||
|
||||
Index: b/nis/nss_nis/nis-initgroups.c
|
||||
===================================================================
|
||||
diff --git a/nis/nss_nis/nis-initgroups.c b/nis/nss_nis/nis-initgroups.c
|
||||
index 3784c101f7ee31aa..c872b32e15f55e3d 100644
|
||||
--- a/nis/nss_nis/nis-initgroups.c
|
||||
+++ b/nis/nss_nis/nis-initgroups.c
|
||||
@@ -16,7 +16,6 @@
|
||||
|
@ -469,7 +460,7 @@ Index: b/nis/nss_nis/nis-initgroups.c
|
|||
|
||||
#include "nss-nis.h"
|
||||
#include <libnsl.h>
|
||||
@@ -120,27 +120,30 @@ internal_getgrent_r (struct group *grp,
|
||||
@@ -120,27 +120,30 @@ internal_getgrent_r (struct group *grp, char *buffer, size_t buflen,
|
||||
static int
|
||||
get_uid (const char *user, uid_t *uidp)
|
||||
{
|
||||
|
@ -504,7 +495,7 @@ Index: b/nis/nss_nis/nis-initgroups.c
|
|||
return 1;
|
||||
}
|
||||
|
||||
@@ -254,8 +257,6 @@ _nss_nis_initgroups_dyn (const char *use
|
||||
@@ -254,8 +257,6 @@ _nss_nis_initgroups_dyn (const char *user, gid_t group, long int *start,
|
||||
}
|
||||
|
||||
struct group grpbuf, *g;
|
||||
|
@ -513,7 +504,7 @@ Index: b/nis/nss_nis/nis-initgroups.c
|
|||
enum nss_status status;
|
||||
intern_t intern = { NULL, NULL, 0 };
|
||||
gid_t *groups = *groupsp;
|
||||
@@ -264,15 +265,21 @@ _nss_nis_initgroups_dyn (const char *use
|
||||
@@ -264,15 +265,21 @@ _nss_nis_initgroups_dyn (const char *user, gid_t group, long int *start,
|
||||
if (status != NSS_STATUS_SUCCESS)
|
||||
return status;
|
||||
|
||||
|
@ -546,8 +537,8 @@ Index: b/nis/nss_nis/nis-initgroups.c
|
|||
|
||||
return status;
|
||||
}
|
||||
Index: b/nscd/aicache.c
|
||||
===================================================================
|
||||
diff --git a/nscd/aicache.c b/nscd/aicache.c
|
||||
index a3de792cc429b546..7064d12a15b3e19d 100644
|
||||
--- a/nscd/aicache.c
|
||||
+++ b/nscd/aicache.c
|
||||
@@ -28,6 +28,7 @@
|
||||
|
@ -558,7 +549,7 @@ Index: b/nscd/aicache.c
|
|||
|
||||
#include "dbg_log.h"
|
||||
#include "nscd.h"
|
||||
@@ -111,10 +112,13 @@ addhstaiX (struct database_dyn *db, int
|
||||
@@ -111,10 +112,13 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
|
||||
if (ctx == NULL)
|
||||
no_more = 1;
|
||||
|
||||
|
@ -576,7 +567,7 @@ Index: b/nscd/aicache.c
|
|||
int32_t ttl = INT32_MAX;
|
||||
ssize_t total = 0;
|
||||
char *key_copy = NULL;
|
||||
@@ -127,6 +131,7 @@ addhstaiX (struct database_dyn *db, int
|
||||
@@ -127,6 +131,7 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
|
||||
int status[2] = { NSS_STATUS_UNAVAIL, NSS_STATUS_UNAVAIL };
|
||||
int naddrs = 0;
|
||||
size_t addrslen = 0;
|
||||
|
@ -584,7 +575,7 @@ Index: b/nscd/aicache.c
|
|||
char *canon = NULL;
|
||||
size_t canonlen;
|
||||
|
||||
@@ -141,12 +146,17 @@ addhstaiX (struct database_dyn *db, int
|
||||
@@ -141,12 +146,17 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
|
||||
at = &atmem;
|
||||
rc6 = 0;
|
||||
herrno = 0;
|
||||
|
@ -604,7 +595,7 @@ Index: b/nscd/aicache.c
|
|||
}
|
||||
|
||||
if (rc6 != 0 && herrno == NETDB_INTERNAL)
|
||||
@@ -224,41 +234,38 @@ addhstaiX (struct database_dyn *db, int
|
||||
@@ -224,41 +234,38 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
|
||||
while (1)
|
||||
{
|
||||
rc6 = 0;
|
||||
|
@ -662,7 +653,7 @@ Index: b/nscd/aicache.c
|
|||
}
|
||||
|
||||
if (rc4 != 0 && herrno == NETDB_INTERNAL)
|
||||
@@ -284,13 +291,11 @@ addhstaiX (struct database_dyn *db, int
|
||||
@@ -284,13 +291,11 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
|
||||
cfct = __nss_lookup_function (nip, "getcanonname_r");
|
||||
if (cfct != NULL)
|
||||
{
|
||||
|
@ -678,7 +669,7 @@ Index: b/nscd/aicache.c
|
|||
== NSS_STATUS_SUCCESS)
|
||||
canon = s;
|
||||
else
|
||||
@@ -319,18 +324,20 @@ addhstaiX (struct database_dyn *db, int
|
||||
@@ -319,18 +324,20 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
|
||||
addrfamily = AF_INET6;
|
||||
}
|
||||
|
||||
|
@ -715,11 +706,11 @@ Index: b/nscd/aicache.c
|
|||
return timeout;
|
||||
}
|
||||
|
||||
Index: b/nscd/connections.c
|
||||
===================================================================
|
||||
diff --git a/nscd/connections.c b/nscd/connections.c
|
||||
index cc1ed72077640a8b..2f69800ee5ca83b4 100644
|
||||
--- a/nscd/connections.c
|
||||
+++ b/nscd/connections.c
|
||||
@@ -1324,64 +1324,83 @@ request from '%s' [%ld] not handled due
|
||||
@@ -1324,64 +1324,83 @@ request from '%s' [%ld] not handled due to missing permission"),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -739,20 +730,19 @@ Index: b/nscd/connections.c
|
|||
- size_t readlen = 0;
|
||||
int fd = open ("/proc/self/cmdline", O_RDONLY);
|
||||
- if (fd == -1)
|
||||
- {
|
||||
- dbg_log (_("\
|
||||
-cannot open /proc/self/cmdline: %s; disabling paranoia mode"),
|
||||
- strerror (errno));
|
||||
-
|
||||
- paranoia = 0;
|
||||
- return;
|
||||
+ if (fd < 0)
|
||||
+ return NULL;
|
||||
+ size_t current = 0;
|
||||
+ size_t limit = 1024;
|
||||
+ char *buffer = malloc (limit);
|
||||
+ if (buffer == NULL)
|
||||
+ {
|
||||
{
|
||||
- dbg_log (_("\
|
||||
-cannot open /proc/self/cmdline: %s; disabling paranoia mode"),
|
||||
- strerror (errno));
|
||||
-
|
||||
- paranoia = 0;
|
||||
- return;
|
||||
+ close (fd);
|
||||
+ errno = ENOMEM;
|
||||
+ return NULL;
|
||||
|
@ -842,7 +832,7 @@ Index: b/nscd/connections.c
|
|||
{
|
||||
argv[argc++] = cp;
|
||||
cp = (char *) rawmemchr (cp, '\0') + 1;
|
||||
@@ -1398,6 +1417,7 @@ cannot change to old UID: %s; disabling
|
||||
@@ -1398,6 +1417,7 @@ cannot change to old UID: %s; disabling paranoia mode"),
|
||||
strerror (errno));
|
||||
|
||||
paranoia = 0;
|
||||
|
@ -850,7 +840,7 @@ Index: b/nscd/connections.c
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -1409,6 +1429,7 @@ cannot change to old GID: %s; disabling
|
||||
@@ -1409,6 +1429,7 @@ cannot change to old GID: %s; disabling paranoia mode"),
|
||||
|
||||
ignore_value (setuid (server_uid));
|
||||
paranoia = 0;
|
||||
|
@ -858,7 +848,7 @@ Index: b/nscd/connections.c
|
|||
return;
|
||||
}
|
||||
}
|
||||
@@ -1426,6 +1447,7 @@ cannot change to old working directory:
|
||||
@@ -1426,6 +1447,7 @@ cannot change to old working directory: %s; disabling paranoia mode"),
|
||||
ignore_value (setgid (server_gid));
|
||||
}
|
||||
paranoia = 0;
|
||||
|
@ -866,7 +856,7 @@ Index: b/nscd/connections.c
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -1474,6 +1496,7 @@ cannot change to old working directory:
|
||||
@@ -1474,6 +1496,7 @@ cannot change to old working directory: %s; disabling paranoia mode"),
|
||||
dbg_log (_("cannot change current working directory to \"/\": %s"),
|
||||
strerror (errno));
|
||||
paranoia = 0;
|
||||
|
@ -874,8 +864,8 @@ Index: b/nscd/connections.c
|
|||
|
||||
/* Reenable the databases. */
|
||||
time_t now = time (NULL);
|
||||
Index: b/nscd/grpcache.c
|
||||
===================================================================
|
||||
diff --git a/nscd/grpcache.c b/nscd/grpcache.c
|
||||
index d2ad53509db97bdf..a71036512048dd81 100644
|
||||
--- a/nscd/grpcache.c
|
||||
+++ b/nscd/grpcache.c
|
||||
@@ -16,7 +16,6 @@
|
||||
|
@ -894,7 +884,7 @@ Index: b/nscd/grpcache.c
|
|||
|
||||
#include "nscd.h"
|
||||
#include "dbg_log.h"
|
||||
@@ -448,12 +448,12 @@ addgrbyX (struct database_dyn *db, int f
|
||||
@@ -448,12 +448,12 @@ addgrbyX (struct database_dyn *db, int fd, request_header *req,
|
||||
look again in the table whether the dataset is now available. We
|
||||
simply insert it. It does not matter if it is in there twice. The
|
||||
pruning function only will look at the timestamp. */
|
||||
|
@ -910,7 +900,7 @@ Index: b/nscd/grpcache.c
|
|||
|
||||
if (__glibc_unlikely (debug_level > 0))
|
||||
{
|
||||
@@ -463,43 +463,24 @@ addgrbyX (struct database_dyn *db, int f
|
||||
@@ -463,43 +463,24 @@ addgrbyX (struct database_dyn *db, int fd, request_header *req,
|
||||
dbg_log (_("Reloading \"%s\" in group cache!"), keystr);
|
||||
}
|
||||
|
||||
|
@ -969,8 +959,8 @@ Index: b/nscd/grpcache.c
|
|||
return timeout;
|
||||
}
|
||||
|
||||
Index: b/nscd/hstcache.c
|
||||
===================================================================
|
||||
diff --git a/nscd/hstcache.c b/nscd/hstcache.c
|
||||
index 9f6ce979ac333265..d0af99893dd17b9f 100644
|
||||
--- a/nscd/hstcache.c
|
||||
+++ b/nscd/hstcache.c
|
||||
@@ -34,6 +34,7 @@
|
||||
|
@ -981,7 +971,7 @@ Index: b/nscd/hstcache.c
|
|||
|
||||
#include "nscd.h"
|
||||
#include "dbg_log.h"
|
||||
@@ -463,11 +464,8 @@ addhstbyX (struct database_dyn *db, int
|
||||
@@ -463,11 +464,8 @@ addhstbyX (struct database_dyn *db, int fd, request_header *req,
|
||||
look again in the table whether the dataset is now available. We
|
||||
simply insert it. It does not matter if it is in there twice. The
|
||||
pruning function only will look at the timestamp. */
|
||||
|
@ -993,7 +983,7 @@ Index: b/nscd/hstcache.c
|
|||
int errval = 0;
|
||||
int32_t ttl = INT32_MAX;
|
||||
|
||||
@@ -487,46 +485,30 @@ addhstbyX (struct database_dyn *db, int
|
||||
@@ -487,46 +485,30 @@ addhstbyX (struct database_dyn *db, int fd, request_header *req,
|
||||
dbg_log (_("Reloading \"%s\" in hosts cache!"), (char *) str);
|
||||
}
|
||||
|
||||
|
@ -1059,8 +1049,8 @@ Index: b/nscd/hstcache.c
|
|||
return timeout;
|
||||
}
|
||||
|
||||
Index: b/nscd/pwdcache.c
|
||||
===================================================================
|
||||
diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
|
||||
index 721f4c617b0bb74a..9349b54df4241ad5 100644
|
||||
--- a/nscd/pwdcache.c
|
||||
+++ b/nscd/pwdcache.c
|
||||
@@ -16,7 +16,6 @@
|
||||
|
@ -1079,7 +1069,7 @@ Index: b/nscd/pwdcache.c
|
|||
|
||||
#include "nscd.h"
|
||||
#include "dbg_log.h"
|
||||
@@ -426,12 +426,11 @@ addpwbyX (struct database_dyn *db, int f
|
||||
@@ -426,12 +426,11 @@ addpwbyX (struct database_dyn *db, int fd, request_header *req,
|
||||
look again in the table whether the dataset is now available. We
|
||||
simply insert it. It does not matter if it is in there twice. The
|
||||
pruning function only will look at the timestamp. */
|
||||
|
@ -1094,7 +1084,7 @@ Index: b/nscd/pwdcache.c
|
|||
|
||||
if (__glibc_unlikely (debug_level > 0))
|
||||
{
|
||||
@@ -441,45 +440,26 @@ addpwbyX (struct database_dyn *db, int f
|
||||
@@ -441,45 +440,26 @@ addpwbyX (struct database_dyn *db, int fd, request_header *req,
|
||||
dbg_log (_("Reloading \"%s\" in password cache!"), keystr);
|
||||
}
|
||||
|
||||
|
@ -1155,8 +1145,8 @@ Index: b/nscd/pwdcache.c
|
|||
return timeout;
|
||||
}
|
||||
|
||||
Index: b/nscd/servicescache.c
|
||||
===================================================================
|
||||
diff --git a/nscd/servicescache.c b/nscd/servicescache.c
|
||||
index 131ba6ddcc1a5f7a..549e9a446816d760 100644
|
||||
--- a/nscd/servicescache.c
|
||||
+++ b/nscd/servicescache.c
|
||||
@@ -16,7 +16,6 @@
|
||||
|
@ -1175,7 +1165,7 @@ Index: b/nscd/servicescache.c
|
|||
|
||||
#include "nscd.h"
|
||||
#include "dbg_log.h"
|
||||
@@ -374,12 +374,11 @@ addservbyX (struct database_dyn *db, int
|
||||
@@ -374,12 +374,11 @@ addservbyX (struct database_dyn *db, int fd, request_header *req,
|
||||
look again in the table whether the dataset is now available. We
|
||||
simply insert it. It does not matter if it is in there twice. The
|
||||
pruning function only will look at the timestamp. */
|
||||
|
@ -1190,7 +1180,7 @@ Index: b/nscd/servicescache.c
|
|||
|
||||
if (__glibc_unlikely (debug_level > 0))
|
||||
{
|
||||
@@ -389,43 +388,24 @@ addservbyX (struct database_dyn *db, int
|
||||
@@ -389,43 +388,24 @@ addservbyX (struct database_dyn *db, int fd, request_header *req,
|
||||
dbg_log (_("Reloading \"%s\" in services cache!"), key);
|
||||
}
|
||||
|
||||
|
@ -1249,8 +1239,8 @@ Index: b/nscd/servicescache.c
|
|||
return timeout;
|
||||
}
|
||||
|
||||
Index: b/nss/getent.c
|
||||
===================================================================
|
||||
diff --git a/nss/getent.c b/nss/getent.c
|
||||
index 8f8c3fe80a2cfea6..5654c5f67c4f118c 100644
|
||||
--- a/nss/getent.c
|
||||
+++ b/nss/getent.c
|
||||
@@ -39,6 +39,7 @@
|
||||
|
@ -1303,7 +1293,7 @@ Index: b/nss/getent.c
|
|||
printf ("%-21s", key[i]);
|
||||
for (int j = 0; j < n; ++j)
|
||||
if (grps[j] != -1)
|
||||
@@ -508,6 +513,8 @@ initgroups_keys (int number, char *key[]
|
||||
@@ -508,6 +513,8 @@ initgroups_keys (int number, char *key[])
|
||||
putchar_unlocked ('\n');
|
||||
}
|
||||
|
||||
|
@ -1312,111 +1302,8 @@ Index: b/nss/getent.c
|
|||
return 0;
|
||||
}
|
||||
|
||||
Index: b/nss/nss_files/files-hosts.c
|
||||
===================================================================
|
||||
--- a/nss/nss_files/files-hosts.c
|
||||
+++ b/nss/nss_files/files-hosts.c
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <arpa/nameser.h>
|
||||
#include <netdb.h>
|
||||
#include <resolv/resolv-internal.h>
|
||||
-
|
||||
+#include <scratch_buffer.h>
|
||||
|
||||
/* Get implementation for some internal functions. */
|
||||
#include "../resolv/mapv4v6addr.h"
|
||||
@@ -145,15 +145,12 @@ _nss_files_gethostbyname3_r (const char
|
||||
&& _res_hconf.flags & HCONF_FLAG_MULTI)
|
||||
{
|
||||
/* We have to get all host entries from the file. */
|
||||
- size_t tmp_buflen = MIN (buflen, 4096);
|
||||
- char tmp_buffer_stack[tmp_buflen]
|
||||
- __attribute__ ((__aligned__ (__alignof__ (struct hostent_data))));
|
||||
- char *tmp_buffer = tmp_buffer_stack;
|
||||
struct hostent tmp_result_buf;
|
||||
int naddrs = 1;
|
||||
int naliases = 0;
|
||||
char *bufferend;
|
||||
- bool tmp_buffer_malloced = false;
|
||||
+ struct scratch_buffer tmpbuf;
|
||||
+ scratch_buffer_init (&tmpbuf);
|
||||
|
||||
while (result->h_aliases[naliases] != NULL)
|
||||
++naliases;
|
||||
@@ -161,9 +158,9 @@ _nss_files_gethostbyname3_r (const char
|
||||
bufferend = (char *) &result->h_aliases[naliases + 1];
|
||||
|
||||
again:
|
||||
- while ((status = internal_getent (stream, &tmp_result_buf, tmp_buffer,
|
||||
- tmp_buflen, errnop, herrnop, af,
|
||||
- flags))
|
||||
+ while ((status = internal_getent (stream, &tmp_result_buf,
|
||||
+ tmpbuf.data, tmpbuf.length,
|
||||
+ errnop, herrnop, af, flags))
|
||||
== NSS_STATUS_SUCCESS)
|
||||
{
|
||||
int matches = 1;
|
||||
@@ -287,54 +284,13 @@ _nss_files_gethostbyname3_r (const char
|
||||
}
|
||||
}
|
||||
|
||||
- if (status == NSS_STATUS_TRYAGAIN)
|
||||
- {
|
||||
- size_t newsize = 2 * tmp_buflen;
|
||||
- if (tmp_buffer_malloced)
|
||||
- {
|
||||
- char *newp = realloc (tmp_buffer, newsize);
|
||||
- if (newp != NULL)
|
||||
- {
|
||||
- assert ((((uintptr_t) newp)
|
||||
- & (__alignof__ (struct hostent_data) - 1))
|
||||
- == 0);
|
||||
- tmp_buffer = newp;
|
||||
- tmp_buflen = newsize;
|
||||
- goto again;
|
||||
- }
|
||||
- }
|
||||
- else if (!__libc_use_alloca (buflen + newsize))
|
||||
- {
|
||||
- tmp_buffer = malloc (newsize);
|
||||
- if (tmp_buffer != NULL)
|
||||
- {
|
||||
- assert ((((uintptr_t) tmp_buffer)
|
||||
- & (__alignof__ (struct hostent_data) - 1))
|
||||
- == 0);
|
||||
- tmp_buffer_malloced = true;
|
||||
- tmp_buflen = newsize;
|
||||
- goto again;
|
||||
- }
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- tmp_buffer
|
||||
- = extend_alloca (tmp_buffer, tmp_buflen,
|
||||
- newsize
|
||||
- + __alignof__ (struct hostent_data));
|
||||
- tmp_buffer = (char *) (((uintptr_t) tmp_buffer
|
||||
- + __alignof__ (struct hostent_data)
|
||||
- - 1)
|
||||
- & ~(__alignof__ (struct hostent_data)
|
||||
- - 1));
|
||||
- goto again;
|
||||
- }
|
||||
- }
|
||||
+ if (status == NSS_STATUS_TRYAGAIN
|
||||
+ && scratch_buffer_grow (&tmpbuf))
|
||||
+ goto again;
|
||||
else
|
||||
status = NSS_STATUS_SUCCESS;
|
||||
out:
|
||||
- if (tmp_buffer_malloced)
|
||||
- free (tmp_buffer);
|
||||
+ scratch_buffer_free (&tmpbuf);
|
||||
}
|
||||
|
||||
internal_endent (&stream);
|
||||
Index: b/nss/nss_files/files-initgroups.c
|
||||
===================================================================
|
||||
diff --git a/nss/nss_files/files-initgroups.c b/nss/nss_files/files-initgroups.c
|
||||
index 27cd8ece40434f5c..8a88f1b62357d3bd 100644
|
||||
--- a/nss/nss_files/files-initgroups.c
|
||||
+++ b/nss/nss_files/files-initgroups.c
|
||||
@@ -16,7 +16,6 @@
|
||||
|
@ -1435,7 +1322,7 @@ Index: b/nss/nss_files/files-initgroups.c
|
|||
|
||||
enum nss_status
|
||||
_nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
|
||||
@@ -46,9 +46,8 @@ _nss_files_initgroups_dyn (const char *u
|
||||
@@ -46,9 +46,8 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
|
||||
enum nss_status status = NSS_STATUS_SUCCESS;
|
||||
bool any = false;
|
||||
|
||||
|
@ -1447,7 +1334,7 @@ Index: b/nss/nss_files/files-initgroups.c
|
|||
|
||||
gid_t *groups = *groupsp;
|
||||
|
||||
@@ -67,26 +66,16 @@ _nss_files_initgroups_dyn (const char *u
|
||||
@@ -67,26 +66,16 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
|
||||
}
|
||||
|
||||
struct group grp;
|
||||
|
@ -1480,7 +1367,7 @@ Index: b/nss/nss_files/files-initgroups.c
|
|||
/* Reread current line, the parser has clobbered it. */
|
||||
fsetpos (stream, &pos);
|
||||
continue;
|
||||
@@ -132,8 +121,7 @@ _nss_files_initgroups_dyn (const char *u
|
||||
@@ -132,8 +121,7 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
|
||||
|
||||
out:
|
||||
/* Free memory. */
|
||||
|
@ -1490,241 +1377,8 @@ Index: b/nss/nss_files/files-initgroups.c
|
|||
free (line);
|
||||
|
||||
fclose (stream);
|
||||
Index: b/posix/glob.c
|
||||
===================================================================
|
||||
--- a/posix/glob.c
|
||||
+++ b/posix/glob.c
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
+#include <scratch_buffer.h>
|
||||
|
||||
/* Outcomment the following line for production quality code. */
|
||||
/* #define NDEBUG 1 */
|
||||
@@ -293,7 +294,7 @@ glob (const char *pattern, int flags, in
|
||||
glob_t dirs;
|
||||
int retval = 0;
|
||||
#ifdef _LIBC
|
||||
- size_t alloca_used = 0;
|
||||
+ size_t alloca_used = sizeof (struct scratch_buffer);
|
||||
#endif
|
||||
|
||||
if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0)
|
||||
@@ -637,33 +638,13 @@ glob (const char *pattern, int flags, in
|
||||
{
|
||||
struct passwd *p;
|
||||
# if defined HAVE_GETPWNAM_R || defined _LIBC
|
||||
- long int pwbuflen = GETPW_R_SIZE_MAX ();
|
||||
- char *pwtmpbuf;
|
||||
struct passwd pwbuf;
|
||||
- int malloc_pwtmpbuf = 0;
|
||||
int save = errno;
|
||||
+ struct scratch_buffer pwtmpbuf;
|
||||
+ scratch_buffer_init (&pwtmpbuf);
|
||||
|
||||
-# ifndef _LIBC
|
||||
- if (pwbuflen == -1)
|
||||
- /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX.
|
||||
- Try a moderate value. */
|
||||
- pwbuflen = 1024;
|
||||
-# endif
|
||||
- if (__libc_use_alloca (alloca_used + pwbuflen))
|
||||
- pwtmpbuf = alloca_account (pwbuflen, alloca_used);
|
||||
- else
|
||||
- {
|
||||
- pwtmpbuf = malloc (pwbuflen);
|
||||
- if (pwtmpbuf == NULL)
|
||||
- {
|
||||
- retval = GLOB_NOSPACE;
|
||||
- goto out;
|
||||
- }
|
||||
- malloc_pwtmpbuf = 1;
|
||||
- }
|
||||
-
|
||||
- while (getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p)
|
||||
- != 0)
|
||||
+ while (getpwnam_r (name, &pwbuf,
|
||||
+ pwtmpbuf.data, pwtmpbuf.length, &p) != 0)
|
||||
{
|
||||
if (errno != ERANGE)
|
||||
{
|
||||
@@ -671,67 +652,37 @@ glob (const char *pattern, int flags, in
|
||||
break;
|
||||
}
|
||||
|
||||
- if (!malloc_pwtmpbuf
|
||||
- && __libc_use_alloca (alloca_used
|
||||
- + 2 * pwbuflen))
|
||||
- pwtmpbuf = extend_alloca_account (pwtmpbuf, pwbuflen,
|
||||
- 2 * pwbuflen,
|
||||
- alloca_used);
|
||||
- else
|
||||
+ if (!scratch_buffer_grow (&pwtmpbuf))
|
||||
{
|
||||
- char *newp = realloc (malloc_pwtmpbuf
|
||||
- ? pwtmpbuf : NULL,
|
||||
- 2 * pwbuflen);
|
||||
- if (newp == NULL)
|
||||
- {
|
||||
- if (__glibc_unlikely (malloc_pwtmpbuf))
|
||||
- free (pwtmpbuf);
|
||||
- retval = GLOB_NOSPACE;
|
||||
- goto out;
|
||||
- }
|
||||
- pwtmpbuf = newp;
|
||||
- pwbuflen = 2 * pwbuflen;
|
||||
- malloc_pwtmpbuf = 1;
|
||||
+ retval = GLOB_NOSPACE;
|
||||
+ goto out;
|
||||
}
|
||||
__set_errno (save);
|
||||
}
|
||||
# else
|
||||
- p = getpwnam (name);
|
||||
+ p = getpwnam (namebuf.data);
|
||||
# endif
|
||||
if (p != NULL)
|
||||
{
|
||||
- if (!malloc_pwtmpbuf)
|
||||
- home_dir = p->pw_dir;
|
||||
- else
|
||||
+ home_dir = strdup (p->pw_dir);
|
||||
+ malloc_home_dir = 1;
|
||||
+ if (home_dir == NULL)
|
||||
{
|
||||
- size_t home_dir_len = strlen (p->pw_dir) + 1;
|
||||
- if (__libc_use_alloca (alloca_used + home_dir_len))
|
||||
- home_dir = alloca_account (home_dir_len,
|
||||
- alloca_used);
|
||||
- else
|
||||
- {
|
||||
- home_dir = malloc (home_dir_len);
|
||||
- if (home_dir == NULL)
|
||||
- {
|
||||
- free (pwtmpbuf);
|
||||
- retval = GLOB_NOSPACE;
|
||||
- goto out;
|
||||
- }
|
||||
- malloc_home_dir = 1;
|
||||
- }
|
||||
- memcpy (home_dir, p->pw_dir, home_dir_len);
|
||||
-
|
||||
- free (pwtmpbuf);
|
||||
+ scratch_buffer_free (&pwtmpbuf);
|
||||
+ retval = GLOB_NOSPACE;
|
||||
+ goto out;
|
||||
}
|
||||
}
|
||||
+ scratch_buffer_free (&pwtmpbuf);
|
||||
}
|
||||
}
|
||||
if (home_dir == NULL || home_dir[0] == '\0')
|
||||
{
|
||||
+ if (malloc_home_dir)
|
||||
+ free (home_dir);
|
||||
+ malloc_home_dir = 0;
|
||||
if (flags & GLOB_TILDE_CHECK)
|
||||
{
|
||||
- if (__glibc_unlikely (malloc_home_dir))
|
||||
- free (home_dir);
|
||||
retval = GLOB_NOMATCH;
|
||||
goto out;
|
||||
}
|
||||
@@ -852,57 +803,24 @@ glob (const char *pattern, int flags, in
|
||||
{
|
||||
struct passwd *p;
|
||||
# if defined HAVE_GETPWNAM_R || defined _LIBC
|
||||
- long int buflen = GETPW_R_SIZE_MAX ();
|
||||
- char *pwtmpbuf;
|
||||
- int malloc_pwtmpbuf = 0;
|
||||
struct passwd pwbuf;
|
||||
int save = errno;
|
||||
+ struct scratch_buffer pwtmpbuf;
|
||||
+ scratch_buffer_init (&pwtmpbuf);
|
||||
|
||||
-# ifndef _LIBC
|
||||
- if (buflen == -1)
|
||||
- /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. Try a
|
||||
- moderate value. */
|
||||
- buflen = 1024;
|
||||
-# endif
|
||||
- if (__libc_use_alloca (alloca_used + buflen))
|
||||
- pwtmpbuf = alloca_account (buflen, alloca_used);
|
||||
- else
|
||||
- {
|
||||
- pwtmpbuf = malloc (buflen);
|
||||
- if (pwtmpbuf == NULL)
|
||||
- {
|
||||
- nomem_getpw:
|
||||
- if (__glibc_unlikely (malloc_user_name))
|
||||
- free (user_name);
|
||||
- retval = GLOB_NOSPACE;
|
||||
- goto out;
|
||||
- }
|
||||
- malloc_pwtmpbuf = 1;
|
||||
- }
|
||||
-
|
||||
- while (getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) != 0)
|
||||
+ while (getpwnam_r (user_name, &pwbuf,
|
||||
+ pwtmpbuf.data, pwtmpbuf.length, &p) != 0)
|
||||
{
|
||||
if (errno != ERANGE)
|
||||
{
|
||||
p = NULL;
|
||||
break;
|
||||
}
|
||||
- if (!malloc_pwtmpbuf
|
||||
- && __libc_use_alloca (alloca_used + 2 * buflen))
|
||||
- pwtmpbuf = extend_alloca_account (pwtmpbuf, buflen,
|
||||
- 2 * buflen, alloca_used);
|
||||
- else
|
||||
+
|
||||
+ if (!scratch_buffer_grow (&pwtmpbuf))
|
||||
{
|
||||
- char *newp = realloc (malloc_pwtmpbuf ? pwtmpbuf : NULL,
|
||||
- 2 * buflen);
|
||||
- if (newp == NULL)
|
||||
- {
|
||||
- if (__glibc_unlikely (malloc_pwtmpbuf))
|
||||
- free (pwtmpbuf);
|
||||
- goto nomem_getpw;
|
||||
- }
|
||||
- pwtmpbuf = newp;
|
||||
- malloc_pwtmpbuf = 1;
|
||||
+ retval = GLOB_NOSPACE;
|
||||
+ goto out;
|
||||
}
|
||||
__set_errno (save);
|
||||
}
|
||||
@@ -931,8 +849,7 @@ glob (const char *pattern, int flags, in
|
||||
dirname = malloc (home_len + rest_len + 1);
|
||||
if (dirname == NULL)
|
||||
{
|
||||
- if (__glibc_unlikely (malloc_pwtmpbuf))
|
||||
- free (pwtmpbuf);
|
||||
+ scratch_buffer_free (&pwtmpbuf);
|
||||
retval = GLOB_NOSPACE;
|
||||
goto out;
|
||||
}
|
||||
@@ -944,13 +861,11 @@ glob (const char *pattern, int flags, in
|
||||
dirlen = home_len + rest_len;
|
||||
dirname_modified = 1;
|
||||
|
||||
- if (__glibc_unlikely (malloc_pwtmpbuf))
|
||||
- free (pwtmpbuf);
|
||||
+ scratch_buffer_free (&pwtmpbuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
- if (__glibc_unlikely (malloc_pwtmpbuf))
|
||||
- free (pwtmpbuf);
|
||||
+ scratch_buffer_free (&pwtmpbuf);
|
||||
|
||||
if (flags & GLOB_TILDE_CHECK)
|
||||
/* We have to regard it as an error if we cannot find the
|
||||
Index: b/posix/wordexp.c
|
||||
===================================================================
|
||||
diff --git a/posix/wordexp.c b/posix/wordexp.c
|
||||
index dfc41736e68bc4e1..23e0b9783631970a 100644
|
||||
--- a/posix/wordexp.c
|
||||
+++ b/posix/wordexp.c
|
||||
@@ -17,7 +17,6 @@
|
||||
|
@ -1743,7 +1397,7 @@ Index: b/posix/wordexp.c
|
|||
|
||||
#include <libc-lock.h>
|
||||
#include <_itoa.h>
|
||||
@@ -308,12 +308,7 @@ parse_tilde (char **word, size_t *word_l
|
||||
@@ -308,12 +308,7 @@ parse_tilde (char **word, size_t *word_length, size_t *max_length,
|
||||
if (i == 1 + *offset)
|
||||
{
|
||||
/* Tilde appears on its own */
|
||||
|
@ -1756,7 +1410,7 @@ Index: b/posix/wordexp.c
|
|||
|
||||
/* POSIX.2 says ~ expands to $HOME and if HOME is unset the
|
||||
results are unspecified. We do a lookup on the uid if
|
||||
@@ -328,25 +323,38 @@ parse_tilde (char **word, size_t *word_l
|
||||
@@ -328,25 +323,38 @@ parse_tilde (char **word, size_t *word_length, size_t *max_length,
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1802,7 +1456,7 @@ Index: b/posix/wordexp.c
|
|||
}
|
||||
}
|
||||
else
|
||||
@@ -354,13 +362,15 @@ parse_tilde (char **word, size_t *word_l
|
||||
@@ -354,13 +362,15 @@ parse_tilde (char **word, size_t *word_length, size_t *max_length,
|
||||
/* Look up user name in database to get home directory */
|
||||
char *user = strndupa (&words[1 + *offset], i - (1 + *offset));
|
||||
struct passwd pwd, *tpwd;
|
||||
|
@ -1822,7 +1476,7 @@ Index: b/posix/wordexp.c
|
|||
|
||||
if (result == 0 && tpwd != NULL && pwd.pw_dir)
|
||||
*word = w_addstr (*word, word_length, max_length, pwd.pw_dir);
|
||||
@@ -372,6 +382,8 @@ parse_tilde (char **word, size_t *word_l
|
||||
@@ -372,6 +382,8 @@ parse_tilde (char **word, size_t *word_length, size_t *max_length,
|
||||
*word = w_addstr (*word, word_length, max_length, user);
|
||||
}
|
||||
|
||||
|
@ -1831,8 +1485,8 @@ Index: b/posix/wordexp.c
|
|||
*offset = i - 1;
|
||||
}
|
||||
return *word ? 0 : WRDE_NOSPACE;
|
||||
Index: b/sysdeps/unix/sysv/linux/gethostid.c
|
||||
===================================================================
|
||||
diff --git a/sysdeps/unix/sysv/linux/gethostid.c b/sysdeps/unix/sysv/linux/gethostid.c
|
||||
index cc108aa2d64b616a..3529cf6fe509cfd1 100644
|
||||
--- a/sysdeps/unix/sysv/linux/gethostid.c
|
||||
+++ b/sysdeps/unix/sysv/linux/gethostid.c
|
||||
@@ -63,13 +63,12 @@ sethostid (long int id)
|
||||
|
@ -1885,8 +1539,8 @@ Index: b/sysdeps/unix/sysv/linux/gethostid.c
|
|||
/* For the return value to be not exactly the IP address we do some
|
||||
bit fiddling. */
|
||||
return (int32_t) (in.s_addr << 16 | in.s_addr >> 16);
|
||||
Index: b/sysdeps/unix/sysv/linux/getlogin_r.c
|
||||
===================================================================
|
||||
diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c
|
||||
index fe81fd196ab3be73..0eff10da7501fd30 100644
|
||||
--- a/sysdeps/unix/sysv/linux/getlogin_r.c
|
||||
+++ b/sysdeps/unix/sysv/linux/getlogin_r.c
|
||||
@@ -18,6 +18,7 @@
|
||||
|
@ -1897,9 +1551,9 @@ Index: b/sysdeps/unix/sysv/linux/getlogin_r.c
|
|||
|
||||
#define STATIC static
|
||||
static int getlogin_r_fd0 (char *name, size_t namesize);
|
||||
@@ -54,28 +55,19 @@ __getlogin_r_loginuid (char *name, size_
|
||||
endp == uidbuf || *endp != '\0'))
|
||||
return -1;
|
||||
@@ -63,28 +64,19 @@ __getlogin_r_loginuid (char *name, size_t namesize)
|
||||
return ENXIO;
|
||||
}
|
||||
|
||||
- size_t buflen = 1024;
|
||||
- char *buf = alloca (buflen);
|
||||
|
@ -1933,7 +1587,7 @@ Index: b/sysdeps/unix/sysv/linux/getlogin_r.c
|
|||
}
|
||||
|
||||
if (res != 0 || tpwd == NULL)
|
||||
@@ -95,9 +87,7 @@ __getlogin_r_loginuid (char *name, size_
|
||||
@@ -104,9 +96,7 @@ __getlogin_r_loginuid (char *name, size_t namesize)
|
||||
memcpy (name, pwd.pw_name, needed);
|
||||
|
||||
out:
|
||||
|
|
|
@ -0,0 +1,440 @@
|
|||
commit 799c8d6905433ad56f26ccab4855b36f1d1ddbfc
|
||||
Author: Mike FABIAN <mfabian@redhat.com>
|
||||
Date: Thu Sep 7 15:28:28 2017 +0200
|
||||
|
||||
Add new codepage charmaps/IBM858 [BZ #21084]
|
||||
|
||||
This code page is identical to code page 850 except that X'D5'
|
||||
has been changed from LI61 (dotless i) to SC20 (euro symbol).
|
||||
|
||||
The code points from /x01 to /x1f in the /localedata/charmaps/IBM858
|
||||
file have the same mapping as those in localedata/charmaps/ANSI_X3.4-1968.
|
||||
That means they disagree with with
|
||||
|
||||
ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP00858.txt
|
||||
|
||||
in that range.
|
||||
For example, localedata/charmaps/IBM858 and localedata/charmaps/ANSI_X3.4-1968 have:
|
||||
|
||||
“<U0001> /x01 START OF HEADING (SOH)”
|
||||
|
||||
whereas CP00858.txt has:
|
||||
|
||||
“01 SS000000 Smiling Face”
|
||||
|
||||
That means that CP00858.txt is not really ASCII-compatible and to make
|
||||
it ASCII-compatible we deviate fro CP00858.txt in the code points from /x01
|
||||
to /x1f.
|
||||
|
||||
[BZ #21084]
|
||||
* benchtests/strcoll-inputs/filelist#en_US.UTF-8: Add IBM858 and ibm858.c.
|
||||
* iconvdata/Makefile: Add IBM858.
|
||||
* iconvdata/gconv-modules: Add IBM858.
|
||||
* iconvdata/ibm858.c: New file.
|
||||
* iconvdata/tst-tables.sh: Add IBM858
|
||||
* localedata/charmaps/IBM858: New file.
|
||||
|
||||
diff --git a/benchtests/strcoll-inputs/filelist#en_US.UTF-8 b/benchtests/strcoll-inputs/filelist#en_US.UTF-8
|
||||
index 6cee2374f42b6bbe..aa44107ad6a3663f 100644
|
||||
--- a/benchtests/strcoll-inputs/filelist#en_US.UTF-8
|
||||
+++ b/benchtests/strcoll-inputs/filelist#en_US.UTF-8
|
||||
@@ -11232,6 +11232,7 @@ ISO-8859-9E
|
||||
UTF-8
|
||||
ISO-8859-2
|
||||
IBM850
|
||||
+IBM858
|
||||
EUC-TW
|
||||
KOI8-U
|
||||
IBM903
|
||||
@@ -13920,6 +13921,7 @@ ibm12712.c
|
||||
ibm1145.h
|
||||
ibm932.c
|
||||
ibm850.c
|
||||
+ibm858.c
|
||||
ibm437.c
|
||||
ibm1399.c
|
||||
stdio-common
|
||||
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
|
||||
index a0e297e4ded1d400..504d1952656a8ec2 100644
|
||||
--- a/iconvdata/Makefile
|
||||
+++ b/iconvdata/Makefile
|
||||
@@ -36,9 +36,9 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \
|
||||
IBM874 CP737 CP775 ISO-2022-KR HP-TURKISH8 HP-THAI8 HP-GREEK8 \
|
||||
KOI8-R LATIN-GREEK LATIN-GREEK-1 IBM256 IBM273 IBM277 IBM278 \
|
||||
IBM280 IBM281 IBM284 IBM285 IBM290 IBM297 IBM420 IBM424 \
|
||||
- IBM437 IBM850 IBM851 IBM852 IBM855 IBM857 IBM860 IBM861 \
|
||||
- IBM862 IBM863 IBM864 IBM865 IBM868 IBM869 IBM875 IBM880 \
|
||||
- IBM866 CP1258 IBM922 IBM1124 IBM1129 IBM932 IBM943 \
|
||||
+ IBM437 IBM850 IBM851 IBM852 IBM855 IBM857 IBM858 IBM860 \
|
||||
+ IBM861 IBM862 IBM863 IBM864 IBM865 IBM868 IBM869 IBM875 \
|
||||
+ IBM880 IBM866 CP1258 IBM922 IBM1124 IBM1129 IBM932 IBM943 \
|
||||
IBM856 IBM930 IBM933 IBM935 IBM937 IBM939 IBM1046 \
|
||||
IBM1132 IBM1133 IBM1160 IBM1161 IBM1162 IBM1163 IBM1164 \
|
||||
IBM918 IBM1004 IBM1026 CP1125 CP1250 CP1251 CP1252 CP1253 \
|
||||
@@ -153,11 +153,11 @@ gen-8bit-modules := iso8859-2 iso8859-3 iso8859-4 iso8859-6 iso8859-9 koi-8 \
|
||||
gen-8bit-gap-modules := koi8-r latin-greek latin-greek-1 ibm256 ibm273 \
|
||||
ibm277 ibm278 ibm280 ibm281 ibm284 ibm285 ibm290 \
|
||||
ibm297 ibm420 ibm424 ibm437 ibm850 ibm851 ibm852 \
|
||||
- ibm855 ibm857 ibm860 ibm861 ibm862 ibm863 ibm864 \
|
||||
- ibm865 ibm868 ibm869 ibm875 ibm880 ibm918 ibm1004 \
|
||||
- ibm1026 cp1125 cp1250 cp1251 cp1252 cp1253 cp1254 \
|
||||
- cp1256 cp1257 ibm866 iso8859-5 iso8859-7 iso8859-8 \
|
||||
- iso8859-10 macintosh iec_p27-1 asmo_449 \
|
||||
+ ibm855 ibm857 ibm858 ibm860 ibm861 ibm862 ibm863 \
|
||||
+ ibm864 ibm865 ibm868 ibm869 ibm875 ibm880 ibm918 \
|
||||
+ ibm1004 ibm1026 cp1125 cp1250 cp1251 cp1252 cp1253 \
|
||||
+ cp1254 cp1256 cp1257 ibm866 iso8859-5 iso8859-7 \
|
||||
+ iso8859-8 iso8859-10 macintosh iec_p27-1 asmo_449 \
|
||||
csn_369103 cwi dec-mcs ecma-cyrillic gost_19768-74 \
|
||||
greek-ccitt greek7 greek7-old inis inis-8 \
|
||||
inis-cyrillic iso_2033 iso_5427 iso_5427-ext \
|
||||
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
|
||||
index e959f16ad9b6dd3c..7d988c8ad9972858 100644
|
||||
--- a/iconvdata/gconv-modules
|
||||
+++ b/iconvdata/gconv-modules
|
||||
@@ -744,6 +744,13 @@ module IBM850// INTERNAL IBM850 1
|
||||
module INTERNAL IBM850// IBM850 1
|
||||
|
||||
# from to module cost
|
||||
+alias CP858// IBM858//
|
||||
+alias 858// IBM858//
|
||||
+alias CSPC858MULTILINGUAL// IBM858//
|
||||
+module IBM858// INTERNAL IBM858 1
|
||||
+module INTERNAL IBM858// IBM858 1
|
||||
+
|
||||
+# from to module cost
|
||||
alias CP851// IBM851//
|
||||
alias 851// IBM851//
|
||||
alias CSIBM851// IBM851//
|
||||
diff --git a/iconvdata/ibm858.c b/iconvdata/ibm858.c
|
||||
new file mode 100644
|
||||
index 0000000000000000..ed2a48e3cf79e2b9
|
||||
--- /dev/null
|
||||
+++ b/iconvdata/ibm858.c
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* Conversion from and to IBM858.
|
||||
+ 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 <stdint.h>
|
||||
+
|
||||
+/* Get the conversion table. */
|
||||
+#define TABLES <ibm858.h>
|
||||
+
|
||||
+#define CHARSET_NAME "IBM858//"
|
||||
+#define HAS_HOLES 1 /* Not all 256 character are defined. */
|
||||
+
|
||||
+#include <8bit-gap.c>
|
||||
diff --git a/iconvdata/tst-tables.sh b/iconvdata/tst-tables.sh
|
||||
index a027f5df5b27b904..77338f05149ccb98 100755
|
||||
--- a/iconvdata/tst-tables.sh
|
||||
+++ b/iconvdata/tst-tables.sh
|
||||
@@ -125,6 +125,7 @@ cat <<EOF |
|
||||
IBM855
|
||||
IBM856
|
||||
IBM857
|
||||
+ IBM858
|
||||
IBM860
|
||||
IBM861
|
||||
IBM862
|
||||
diff --git a/localedata/charmaps/IBM858 b/localedata/charmaps/IBM858
|
||||
new file mode 100644
|
||||
index 0000000000000000..d8600e2456c87b48
|
||||
--- /dev/null
|
||||
+++ b/localedata/charmaps/IBM858
|
||||
@@ -0,0 +1,281 @@
|
||||
+<code_set_name> IBM858
|
||||
+<comment_char> %
|
||||
+<escape_char> /
|
||||
+% version: 1.0
|
||||
+% source: ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP00858.txt, 1998
|
||||
+
|
||||
+% source: UNICODE 1.0
|
||||
+
|
||||
+% This code page is identical to code page 850 except that X'D5'
|
||||
+% has been changed from LI61 (dotless i) to SC20 (euro symbol).
|
||||
+
|
||||
+% The code points from /x01 to /x1f in this file have the same mapping
|
||||
+% as those in ANSI_X3.4-1968. That means they disagree with with CP00858.txt
|
||||
+% in that range. For example, this file and ANSI_X3.4-1968 have:
|
||||
+% “<U0001> /x01 START OF HEADING (SOH)”
|
||||
+% whereas CP00858.txt has:
|
||||
+% “01 SS000000 Smiling Face”
|
||||
+% That means that CP00858.txt is not really ASCII-compatible and to make
|
||||
+% it ASCII-compatible we deviate fro CP00858.txt in the code points from /x01
|
||||
+% to /x1f.
|
||||
+
|
||||
+% alias CP858
|
||||
+% alias 858
|
||||
+CHARMAP
|
||||
+<U0000> /x00 NULL (NUL)
|
||||
+<U0001> /x01 START OF HEADING (SOH)
|
||||
+<U0002> /x02 START OF TEXT (STX)
|
||||
+<U0003> /x03 END OF TEXT (ETX)
|
||||
+<U0004> /x04 END OF TRANSMISSION (EOT)
|
||||
+<U0005> /x05 ENQUIRY (ENQ)
|
||||
+<U0006> /x06 ACKNOWLEDGE (ACK)
|
||||
+<U0007> /x07 BELL (BEL)
|
||||
+<U0008> /x08 BACKSPACE (BS)
|
||||
+<U0009> /x09 CHARACTER TABULATION (HT)
|
||||
+<U000A> /x0a LINE FEED (LF)
|
||||
+<U000B> /x0b LINE TABULATION (VT)
|
||||
+<U000C> /x0c FORM FEED (FF)
|
||||
+<U000D> /x0d CARRIAGE RETURN (CR)
|
||||
+<U000E> /x0e SHIFT OUT (SO)
|
||||
+<U000F> /x0f SHIFT IN (SI)
|
||||
+<U0010> /x10 DATALINK ESCAPE (DLE)
|
||||
+<U0011> /x11 DEVICE CONTROL ONE (DC1)
|
||||
+<U0012> /x12 DEVICE CONTROL TWO (DC2)
|
||||
+<U0013> /x13 DEVICE CONTROL THREE (DC3)
|
||||
+<U0014> /x14 DEVICE CONTROL FOUR (DC4)
|
||||
+<U0015> /x15 NEGATIVE ACKNOWLEDGE (NAK)
|
||||
+<U0016> /x16 SYNCHRONOUS IDLE (SYN)
|
||||
+<U0017> /x17 END OF TRANSMISSION BLOCK (ETB)
|
||||
+<U0018> /x18 CANCEL (CAN)
|
||||
+<U0019> /x19 END OF MEDIUM (EM)
|
||||
+<U001A> /x1a SUBSTITUTE (SUB)
|
||||
+<U001B> /x1b ESCAPE (ESC)
|
||||
+<U001C> /x1c FILE SEPARATOR (IS4)
|
||||
+<U001D> /x1d GROUP SEPARATOR (IS3)
|
||||
+<U001E> /x1e RECORD SEPARATOR (IS2)
|
||||
+<U001F> /x1f UNIT SEPARATOR (IS1)
|
||||
+<U0020> /x20 SPACE
|
||||
+<U0021> /x21 EXCLAMATION MARK
|
||||
+<U0022> /x22 QUOTATION MARK
|
||||
+<U0023> /x23 NUMBER SIGN
|
||||
+<U0024> /x24 DOLLAR SIGN
|
||||
+<U0025> /x25 PERCENT SIGN
|
||||
+<U0026> /x26 AMPERSAND
|
||||
+<U0027> /x27 APOSTROPHE
|
||||
+<U0028> /x28 LEFT PARENTHESIS
|
||||
+<U0029> /x29 RIGHT PARENTHESIS
|
||||
+<U002A> /x2a ASTERISK
|
||||
+<U002B> /x2b PLUS SIGN
|
||||
+<U002C> /x2c COMMA
|
||||
+<U002D> /x2d HYPHEN-MINUS
|
||||
+<U002E> /x2e FULL STOP
|
||||
+<U002F> /x2f SOLIDUS
|
||||
+<U0030> /x30 DIGIT ZERO
|
||||
+<U0031> /x31 DIGIT ONE
|
||||
+<U0032> /x32 DIGIT TWO
|
||||
+<U0033> /x33 DIGIT THREE
|
||||
+<U0034> /x34 DIGIT FOUR
|
||||
+<U0035> /x35 DIGIT FIVE
|
||||
+<U0036> /x36 DIGIT SIX
|
||||
+<U0037> /x37 DIGIT SEVEN
|
||||
+<U0038> /x38 DIGIT EIGHT
|
||||
+<U0039> /x39 DIGIT NINE
|
||||
+<U003A> /x3a COLON
|
||||
+<U003B> /x3b SEMICOLON
|
||||
+<U003C> /x3c LESS-THAN SIGN
|
||||
+<U003D> /x3d EQUALS SIGN
|
||||
+<U003E> /x3e GREATER-THAN SIGN
|
||||
+<U003F> /x3f QUESTION MARK
|
||||
+<U0040> /x40 COMMERCIAL AT
|
||||
+<U0041> /x41 LATIN CAPITAL LETTER A
|
||||
+<U0042> /x42 LATIN CAPITAL LETTER B
|
||||
+<U0043> /x43 LATIN CAPITAL LETTER C
|
||||
+<U0044> /x44 LATIN CAPITAL LETTER D
|
||||
+<U0045> /x45 LATIN CAPITAL LETTER E
|
||||
+<U0046> /x46 LATIN CAPITAL LETTER F
|
||||
+<U0047> /x47 LATIN CAPITAL LETTER G
|
||||
+<U0048> /x48 LATIN CAPITAL LETTER H
|
||||
+<U0049> /x49 LATIN CAPITAL LETTER I
|
||||
+<U004A> /x4a LATIN CAPITAL LETTER J
|
||||
+<U004B> /x4b LATIN CAPITAL LETTER K
|
||||
+<U004C> /x4c LATIN CAPITAL LETTER L
|
||||
+<U004D> /x4d LATIN CAPITAL LETTER M
|
||||
+<U004E> /x4e LATIN CAPITAL LETTER N
|
||||
+<U004F> /x4f LATIN CAPITAL LETTER O
|
||||
+<U0050> /x50 LATIN CAPITAL LETTER P
|
||||
+<U0051> /x51 LATIN CAPITAL LETTER Q
|
||||
+<U0052> /x52 LATIN CAPITAL LETTER R
|
||||
+<U0053> /x53 LATIN CAPITAL LETTER S
|
||||
+<U0054> /x54 LATIN CAPITAL LETTER T
|
||||
+<U0055> /x55 LATIN CAPITAL LETTER U
|
||||
+<U0056> /x56 LATIN CAPITAL LETTER V
|
||||
+<U0057> /x57 LATIN CAPITAL LETTER W
|
||||
+<U0058> /x58 LATIN CAPITAL LETTER X
|
||||
+<U0059> /x59 LATIN CAPITAL LETTER Y
|
||||
+<U005A> /x5a LATIN CAPITAL LETTER Z
|
||||
+<U005B> /x5b LEFT SQUARE BRACKET
|
||||
+<U005C> /x5c REVERSE SOLIDUS
|
||||
+<U005D> /x5d RIGHT SQUARE BRACKET
|
||||
+<U005E> /x5e CIRCUMFLEX ACCENT
|
||||
+<U005F> /x5f LOW LINE
|
||||
+<U0060> /x60 GRAVE ACCENT
|
||||
+<U0061> /x61 LATIN SMALL LETTER A
|
||||
+<U0062> /x62 LATIN SMALL LETTER B
|
||||
+<U0063> /x63 LATIN SMALL LETTER C
|
||||
+<U0064> /x64 LATIN SMALL LETTER D
|
||||
+<U0065> /x65 LATIN SMALL LETTER E
|
||||
+<U0066> /x66 LATIN SMALL LETTER F
|
||||
+<U0067> /x67 LATIN SMALL LETTER G
|
||||
+<U0068> /x68 LATIN SMALL LETTER H
|
||||
+<U0069> /x69 LATIN SMALL LETTER I
|
||||
+<U006A> /x6a LATIN SMALL LETTER J
|
||||
+<U006B> /x6b LATIN SMALL LETTER K
|
||||
+<U006C> /x6c LATIN SMALL LETTER L
|
||||
+<U006D> /x6d LATIN SMALL LETTER M
|
||||
+<U006E> /x6e LATIN SMALL LETTER N
|
||||
+<U006F> /x6f LATIN SMALL LETTER O
|
||||
+<U0070> /x70 LATIN SMALL LETTER P
|
||||
+<U0071> /x71 LATIN SMALL LETTER Q
|
||||
+<U0072> /x72 LATIN SMALL LETTER R
|
||||
+<U0073> /x73 LATIN SMALL LETTER S
|
||||
+<U0074> /x74 LATIN SMALL LETTER T
|
||||
+<U0075> /x75 LATIN SMALL LETTER U
|
||||
+<U0076> /x76 LATIN SMALL LETTER V
|
||||
+<U0077> /x77 LATIN SMALL LETTER W
|
||||
+<U0078> /x78 LATIN SMALL LETTER X
|
||||
+<U0079> /x79 LATIN SMALL LETTER Y
|
||||
+<U007A> /x7a LATIN SMALL LETTER Z
|
||||
+<U007B> /x7b LEFT CURLY BRACKET
|
||||
+<U007C> /x7c VERTICAL LINE
|
||||
+<U007D> /x7d RIGHT CURLY BRACKET
|
||||
+<U007E> /x7e TILDE
|
||||
+<U007F> /x7f DELETE (DEL)
|
||||
+<U00C7> /x80 LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
+<U00FC> /x81 LATIN SMALL LETTER U WITH DIAERESIS
|
||||
+<U00E9> /x82 LATIN SMALL LETTER E WITH ACUTE
|
||||
+<U00E2> /x83 LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
+<U00E4> /x84 LATIN SMALL LETTER A WITH DIAERESIS
|
||||
+<U00E0> /x85 LATIN SMALL LETTER A WITH GRAVE
|
||||
+<U00E5> /x86 LATIN SMALL LETTER A WITH RING ABOVE
|
||||
+<U00E7> /x87 LATIN SMALL LETTER C WITH CEDILLA
|
||||
+<U00EA> /x88 LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
+<U00EB> /x89 LATIN SMALL LETTER E WITH DIAERESIS
|
||||
+<U00E8> /x8a LATIN SMALL LETTER E WITH GRAVE
|
||||
+<U00EF> /x8b LATIN SMALL LETTER I WITH DIAERESIS
|
||||
+<U00EE> /x8c LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
+<U00EC> /x8d LATIN SMALL LETTER I WITH GRAVE
|
||||
+<U00C4> /x8e LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
+<U00C5> /x8f LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
+<U00C9> /x90 LATIN CAPITAL LETTER E WITH ACUTE
|
||||
+<U00E6> /x91 LATIN SMALL LETTER AE
|
||||
+<U00C6> /x92 LATIN CAPITAL LETTER AE
|
||||
+<U00F4> /x93 LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
+<U00F6> /x94 LATIN SMALL LETTER O WITH DIAERESIS
|
||||
+<U00F2> /x95 LATIN SMALL LETTER O WITH GRAVE
|
||||
+<U00FB> /x96 LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
+<U00F9> /x97 LATIN SMALL LETTER U WITH GRAVE
|
||||
+<U00FF> /x98 LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
+<U00D6> /x99 LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
+<U00DC> /x9a LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
+<U00F8> /x9b LATIN SMALL LETTER O WITH STROKE
|
||||
+<U00A3> /x9c POUND SIGN
|
||||
+<U00D8> /x9d LATIN CAPITAL LETTER O WITH STROKE
|
||||
+<U00D7> /x9e MULTIPLICATION SIGN
|
||||
+<U0192> /x9f LATIN SMALL LETTER F WITH HOOK
|
||||
+<U00E1> /xa0 LATIN SMALL LETTER A WITH ACUTE
|
||||
+<U00ED> /xa1 LATIN SMALL LETTER I WITH ACUTE
|
||||
+<U00F3> /xa2 LATIN SMALL LETTER O WITH ACUTE
|
||||
+<U00FA> /xa3 LATIN SMALL LETTER U WITH ACUTE
|
||||
+<U00F1> /xa4 LATIN SMALL LETTER N WITH TILDE
|
||||
+<U00D1> /xa5 LATIN CAPITAL LETTER N WITH TILDE
|
||||
+<U00AA> /xa6 FEMININE ORDINAL INDICATOR
|
||||
+<U00BA> /xa7 MASCULINE ORDINAL INDICATOR
|
||||
+<U00BF> /xa8 INVERTED QUESTION MARK
|
||||
+<U00AE> /xa9 REGISTERED SIGN
|
||||
+<U00AC> /xaa NOT SIGN
|
||||
+<U00BD> /xab VULGAR FRACTION ONE HALF
|
||||
+<U00BC> /xac VULGAR FRACTION ONE QUARTER
|
||||
+<U00A1> /xad INVERTED EXCLAMATION MARK
|
||||
+<U00AB> /xae LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
+<U00BB> /xaf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
+<U2591> /xb0 LIGHT SHADE
|
||||
+<U2592> /xb1 MEDIUM SHADE
|
||||
+<U2593> /xb2 DARK SHADE
|
||||
+<U2502> /xb3 BOX DRAWINGS LIGHT VERTICAL
|
||||
+<U2524> /xb4 BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
+<U00C1> /xb5 LATIN CAPITAL LETTER A WITH ACUTE
|
||||
+<U00C2> /xb6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
+<U00C0> /xb7 LATIN CAPITAL LETTER A WITH GRAVE
|
||||
+<U00A9> /xb8 COPYRIGHT SIGN
|
||||
+<U2563> /xb9 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
+<U2551> /xba BOX DRAWINGS DOUBLE VERTICAL
|
||||
+<U2557> /xbb BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
+<U255D> /xbc BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
+<U00A2> /xbd CENT SIGN
|
||||
+<U00A5> /xbe YEN SIGN
|
||||
+<U2510> /xbf BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
+<U2514> /xc0 BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
+<U2534> /xc1 BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
+<U252C> /xc2 BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
+<U251C> /xc3 BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
+<U2500> /xc4 BOX DRAWINGS LIGHT HORIZONTAL
|
||||
+<U253C> /xc5 BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
+<U00E3> /xc6 LATIN SMALL LETTER A WITH TILDE
|
||||
+<U00C3> /xc7 LATIN CAPITAL LETTER A WITH TILDE
|
||||
+<U255A> /xc8 BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
+<U2554> /xc9 BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
+<U2569> /xca BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
+<U2566> /xcb BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
+<U2560> /xcc BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
+<U2550> /xcd BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
+<U256C> /xce BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
+<U00A4> /xcf CURRENCY SIGN
|
||||
+<U00F0> /xd0 LATIN SMALL LETTER ETH (Icelandic)
|
||||
+<U00D0> /xd1 LATIN CAPITAL LETTER ETH (Icelandic)
|
||||
+<U00CA> /xd2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
+<U00CB> /xd3 LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
+<U00C8> /xd4 LATIN CAPITAL LETTER E WITH GRAVE
|
||||
+<U20AC> /xd5 EURO SIGN
|
||||
+<U00CD> /xd6 LATIN CAPITAL LETTER I WITH ACUTE
|
||||
+<U00CE> /xd7 LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
+<U00CF> /xd8 LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
+<U2518> /xd9 BOX DRAWINGS LIGHT UP AND LEFT
|
||||
+<U250C> /xda BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
+<U2588> /xdb FULL BLOCK
|
||||
+<U2584> /xdc LOWER HALF BLOCK
|
||||
+<U00A6> /xdd BROKEN BAR
|
||||
+<U00CC> /xde LATIN CAPITAL LETTER I WITH GRAVE
|
||||
+<U2580> /xdf UPPER HALF BLOCK
|
||||
+<U00D3> /xe0 LATIN CAPITAL LETTER O WITH ACUTE
|
||||
+<U00DF> /xe1 LATIN SMALL LETTER SHARP S (German)
|
||||
+<U00D4> /xe2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
+<U00D2> /xe3 LATIN CAPITAL LETTER O WITH GRAVE
|
||||
+<U00F5> /xe4 LATIN SMALL LETTER O WITH TILDE
|
||||
+<U00D5> /xe5 LATIN CAPITAL LETTER O WITH TILDE
|
||||
+<U00B5> /xe6 MICRO SIGN
|
||||
+<U00FE> /xe7 LATIN SMALL LETTER THORN (Icelandic)
|
||||
+<U00DE> /xe8 LATIN CAPITAL LETTER THORN (Icelandic)
|
||||
+<U00DA> /xe9 LATIN CAPITAL LETTER U WITH ACUTE
|
||||
+<U00DB> /xea LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
+<U00D9> /xeb LATIN CAPITAL LETTER U WITH GRAVE
|
||||
+<U00FD> /xec LATIN SMALL LETTER Y WITH ACUTE
|
||||
+<U00DD> /xed LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
+<U00AF> /xee MACRON
|
||||
+<U00B4> /xef ACUTE ACCENT
|
||||
+<U00AD> /xf0 SOFT HYPHEN
|
||||
+<U00B1> /xf1 PLUS-MINUS SIGN
|
||||
+<U2017> /xf2 DOUBLE LOW LINE
|
||||
+<U00BE> /xf3 VULGAR FRACTION THREE QUARTERS
|
||||
+<U00B6> /xf4 PILCROW SIGN
|
||||
+<U00A7> /xf5 SECTION SIGN
|
||||
+<U00F7> /xf6 DIVISION SIGN
|
||||
+<U00B8> /xf7 CEDILLA
|
||||
+<U00B0> /xf8 DEGREE SIGN
|
||||
+<U00A8> /xf9 DIAERESIS
|
||||
+<U00B7> /xfa MIDDLE DOT
|
||||
+<U00B9> /xfb SUPERSCRIPT ONE
|
||||
+<U00B3> /xfc SUPERSCRIPT THREE
|
||||
+<U00B2> /xfd SUPERSCRIPT TWO
|
||||
+<U25A0> /xfe BLACK SQUARE
|
||||
+<U00A0> /xff NO-BREAK SPACE
|
||||
+END CHARMAP
|
|
@ -1,48 +0,0 @@
|
|||
Upstream thread:
|
||||
|
||||
https://sourceware.org/ml/libc-alpha/2017-07/msg00487.html
|
||||
|
||||
Relevant analysis:
|
||||
|
||||
_int_malloc is inlined into tcache_init, and the allocation size is
|
||||
constant-propagated into it. GCC does not realize that global_max_fast
|
||||
is limited MAX_FAST_SIZE, so it compiles the true branch of the if
|
||||
statement:
|
||||
|
||||
if ((unsigned long) (nb) <= (unsigned long) (get_max_fast ()))
|
||||
{
|
||||
idx = fastbin_index (nb);
|
||||
mfastbinptr *fb = &fastbin (av, idx);
|
||||
mchunkptr pp = *fb;
|
||||
REMOVE_FB (fb, victim, pp);
|
||||
if (victim != 0)
|
||||
|
||||
under the assumption that nb == sizeof (tcache_perthread_struct) == 576,
|
||||
which is larger than MAX_FAST_SIZE, so the fastbin access is compiled
|
||||
into an OOB array subscript. GCC does not proceed to eliminate this
|
||||
code, even though it has undefined behavior and will never execute in
|
||||
practice.
|
||||
|
||||
This is neither a glibc bug nor a GCC bug. It merely reflects the
|
||||
difficulty of producing good warnings from optimizers. But it does
|
||||
break the build in rawhide due to -Werror.
|
||||
|
||||
Index: b/malloc/malloc.c
|
||||
===================================================================
|
||||
--- a/malloc/malloc.c
|
||||
+++ b/malloc/malloc.c
|
||||
@@ -3566,6 +3566,14 @@ _int_malloc (mstate av, size_t bytes)
|
||||
while ((pp = catomic_compare_and_exchange_val_acq (fb, victim->fd, victim)) \
|
||||
!= victim); \
|
||||
|
||||
+ /* _int_malloc can be inlined to a caller with a constant size
|
||||
+ argument. In this case, the compiler will see an out-of-bounds
|
||||
+ array access in the true branch of the if statement below if it
|
||||
+ cannot show that global_max_fast cannot be larger than
|
||||
+ MAX_FAST_SIZE. The assert shows the compiler that this cannot
|
||||
+ happen. */
|
||||
+ assert (!__builtin_constant_p (nb) || global_max_fast <= MAX_FAST_SIZE);
|
||||
+
|
||||
if ((unsigned long) (nb) <= (unsigned long) (get_max_fast ()))
|
||||
{
|
||||
idx = fastbin_index (nb);
|
|
@ -0,0 +1,609 @@
|
|||
The system call list is in a separate file for easier updating.
|
||||
|
||||
diff --git a/sysdeps/unix/sysv/linux/syscall-names.list b/sysdeps/unix/sysv/linux/syscall-names.list
|
||||
new file mode 100644
|
||||
index 0000000000..2e5cc77fe0
|
||||
--- /dev/null
|
||||
+++ b/sysdeps/unix/sysv/linux/syscall-names.list
|
||||
@@ -0,0 +1,601 @@
|
||||
+# List of all known Linux system calls.
|
||||
+# 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/>.
|
||||
+
|
||||
+# This file contains the list of system call names names. It has to
|
||||
+# remain in alphabetica order. Lines which start with # are treated
|
||||
+# as comments. This file can list all potential system calls. The
|
||||
+# names are only used if the installed kernel headers also provide
|
||||
+# them.
|
||||
+
|
||||
+# The list of system calls is current as of Linux 4.12.
|
||||
+kernel 4.12
|
||||
+
|
||||
+FAST_atomic_update
|
||||
+FAST_cmpxchg
|
||||
+FAST_cmpxchg64
|
||||
+_llseek
|
||||
+_newselect
|
||||
+_sysctl
|
||||
+accept
|
||||
+accept4
|
||||
+access
|
||||
+acct
|
||||
+acl_get
|
||||
+acl_set
|
||||
+add_key
|
||||
+adjtimex
|
||||
+afs_syscall
|
||||
+alarm
|
||||
+alloc_hugepages
|
||||
+arch_prctl
|
||||
+arm_fadvise64_64
|
||||
+arm_sync_file_range
|
||||
+atomic_barrier
|
||||
+atomic_cmpxchg_32
|
||||
+attrctl
|
||||
+bdflush
|
||||
+bind
|
||||
+bpf
|
||||
+break
|
||||
+brk
|
||||
+cachectl
|
||||
+cacheflush
|
||||
+capget
|
||||
+capset
|
||||
+chdir
|
||||
+chmod
|
||||
+chown
|
||||
+chown32
|
||||
+chroot
|
||||
+clock_adjtime
|
||||
+clock_getres
|
||||
+clock_gettime
|
||||
+clock_nanosleep
|
||||
+clock_settime
|
||||
+clone
|
||||
+clone2
|
||||
+close
|
||||
+cmpxchg_badaddr
|
||||
+connect
|
||||
+copy_file_range
|
||||
+creat
|
||||
+create_module
|
||||
+delete_module
|
||||
+dipc
|
||||
+dup
|
||||
+dup2
|
||||
+dup3
|
||||
+epoll_create
|
||||
+epoll_create1
|
||||
+epoll_ctl
|
||||
+epoll_ctl_old
|
||||
+epoll_pwait
|
||||
+epoll_wait
|
||||
+epoll_wait_old
|
||||
+eventfd
|
||||
+eventfd2
|
||||
+exec_with_loader
|
||||
+execv
|
||||
+execve
|
||||
+execveat
|
||||
+exit
|
||||
+exit_group
|
||||
+faccessat
|
||||
+fadvise64
|
||||
+fadvise64_64
|
||||
+fallocate
|
||||
+fanotify_init
|
||||
+fanotify_mark
|
||||
+fchdir
|
||||
+fchmod
|
||||
+fchmodat
|
||||
+fchown
|
||||
+fchown32
|
||||
+fchownat
|
||||
+fcntl
|
||||
+fcntl64
|
||||
+fdatasync
|
||||
+fgetxattr
|
||||
+finit_module
|
||||
+flistxattr
|
||||
+flock
|
||||
+fork
|
||||
+free_hugepages
|
||||
+fremovexattr
|
||||
+fsetxattr
|
||||
+fstat
|
||||
+fstat64
|
||||
+fstatat64
|
||||
+fstatfs
|
||||
+fstatfs64
|
||||
+fsync
|
||||
+ftime
|
||||
+ftruncate
|
||||
+ftruncate64
|
||||
+futex
|
||||
+futimesat
|
||||
+get_kernel_syms
|
||||
+get_mempolicy
|
||||
+get_robust_list
|
||||
+get_thread_area
|
||||
+getcpu
|
||||
+getcwd
|
||||
+getdents
|
||||
+getdents64
|
||||
+getdomainname
|
||||
+getdtablesize
|
||||
+getegid
|
||||
+getegid32
|
||||
+geteuid
|
||||
+geteuid32
|
||||
+getgid
|
||||
+getgid32
|
||||
+getgroups
|
||||
+getgroups32
|
||||
+gethostname
|
||||
+getitimer
|
||||
+getpagesize
|
||||
+getpeername
|
||||
+getpgid
|
||||
+getpgrp
|
||||
+getpid
|
||||
+getpmsg
|
||||
+getppid
|
||||
+getpriority
|
||||
+getrandom
|
||||
+getresgid
|
||||
+getresgid32
|
||||
+getresuid
|
||||
+getresuid32
|
||||
+getrlimit
|
||||
+getrusage
|
||||
+getsid
|
||||
+getsockname
|
||||
+getsockopt
|
||||
+gettid
|
||||
+gettimeofday
|
||||
+getuid
|
||||
+getuid32
|
||||
+getunwind
|
||||
+getxattr
|
||||
+getxgid
|
||||
+getxpid
|
||||
+getxuid
|
||||
+gtty
|
||||
+idle
|
||||
+init_module
|
||||
+inotify_add_watch
|
||||
+inotify_init
|
||||
+inotify_init1
|
||||
+inotify_rm_watch
|
||||
+io_cancel
|
||||
+io_destroy
|
||||
+io_getevents
|
||||
+io_setup
|
||||
+io_submit
|
||||
+ioctl
|
||||
+ioperm
|
||||
+iopl
|
||||
+ioprio_get
|
||||
+ioprio_set
|
||||
+ipc
|
||||
+kcmp
|
||||
+kern_features
|
||||
+kexec_file_load
|
||||
+kexec_load
|
||||
+keyctl
|
||||
+kill
|
||||
+lchown
|
||||
+lchown32
|
||||
+lgetxattr
|
||||
+link
|
||||
+linkat
|
||||
+listen
|
||||
+listxattr
|
||||
+llistxattr
|
||||
+llseek
|
||||
+lock
|
||||
+lookup_dcookie
|
||||
+lremovexattr
|
||||
+lseek
|
||||
+lsetxattr
|
||||
+lstat
|
||||
+lstat64
|
||||
+madvise
|
||||
+mbind
|
||||
+membarrier
|
||||
+memfd_create
|
||||
+memory_ordering
|
||||
+migrate_pages
|
||||
+mincore
|
||||
+mkdir
|
||||
+mkdirat
|
||||
+mknod
|
||||
+mknodat
|
||||
+mlock
|
||||
+mlock2
|
||||
+mlockall
|
||||
+mmap
|
||||
+mmap2
|
||||
+modify_ldt
|
||||
+mount
|
||||
+move_pages
|
||||
+mprotect
|
||||
+mpx
|
||||
+mq_getsetattr
|
||||
+mq_notify
|
||||
+mq_open
|
||||
+mq_timedreceive
|
||||
+mq_timedsend
|
||||
+mq_unlink
|
||||
+mremap
|
||||
+msgctl
|
||||
+msgget
|
||||
+msgrcv
|
||||
+msgsnd
|
||||
+msync
|
||||
+multiplexer
|
||||
+munlock
|
||||
+munlockall
|
||||
+munmap
|
||||
+name_to_handle_at
|
||||
+nanosleep
|
||||
+newfstatat
|
||||
+nfsservctl
|
||||
+ni_syscall
|
||||
+nice
|
||||
+old_adjtimex
|
||||
+oldfstat
|
||||
+oldlstat
|
||||
+oldolduname
|
||||
+oldstat
|
||||
+oldumount
|
||||
+olduname
|
||||
+open
|
||||
+open_by_handle_at
|
||||
+openat
|
||||
+osf_adjtime
|
||||
+osf_afs_syscall
|
||||
+osf_alt_plock
|
||||
+osf_alt_setsid
|
||||
+osf_alt_sigpending
|
||||
+osf_asynch_daemon
|
||||
+osf_audcntl
|
||||
+osf_audgen
|
||||
+osf_chflags
|
||||
+osf_execve
|
||||
+osf_exportfs
|
||||
+osf_fchflags
|
||||
+osf_fdatasync
|
||||
+osf_fpathconf
|
||||
+osf_fstat
|
||||
+osf_fstatfs
|
||||
+osf_fstatfs64
|
||||
+osf_fuser
|
||||
+osf_getaddressconf
|
||||
+osf_getdirentries
|
||||
+osf_getdomainname
|
||||
+osf_getfh
|
||||
+osf_getfsstat
|
||||
+osf_gethostid
|
||||
+osf_getitimer
|
||||
+osf_getlogin
|
||||
+osf_getmnt
|
||||
+osf_getrusage
|
||||
+osf_getsysinfo
|
||||
+osf_gettimeofday
|
||||
+osf_kloadcall
|
||||
+osf_kmodcall
|
||||
+osf_lstat
|
||||
+osf_memcntl
|
||||
+osf_mincore
|
||||
+osf_mount
|
||||
+osf_mremap
|
||||
+osf_msfs_syscall
|
||||
+osf_msleep
|
||||
+osf_mvalid
|
||||
+osf_mwakeup
|
||||
+osf_naccept
|
||||
+osf_nfssvc
|
||||
+osf_ngetpeername
|
||||
+osf_ngetsockname
|
||||
+osf_nrecvfrom
|
||||
+osf_nrecvmsg
|
||||
+osf_nsendmsg
|
||||
+osf_ntp_adjtime
|
||||
+osf_ntp_gettime
|
||||
+osf_old_creat
|
||||
+osf_old_fstat
|
||||
+osf_old_getpgrp
|
||||
+osf_old_killpg
|
||||
+osf_old_lstat
|
||||
+osf_old_open
|
||||
+osf_old_sigaction
|
||||
+osf_old_sigblock
|
||||
+osf_old_sigreturn
|
||||
+osf_old_sigsetmask
|
||||
+osf_old_sigvec
|
||||
+osf_old_stat
|
||||
+osf_old_vadvise
|
||||
+osf_old_vtrace
|
||||
+osf_old_wait
|
||||
+osf_oldquota
|
||||
+osf_pathconf
|
||||
+osf_pid_block
|
||||
+osf_pid_unblock
|
||||
+osf_plock
|
||||
+osf_priocntlset
|
||||
+osf_profil
|
||||
+osf_proplist_syscall
|
||||
+osf_reboot
|
||||
+osf_revoke
|
||||
+osf_sbrk
|
||||
+osf_security
|
||||
+osf_select
|
||||
+osf_set_program_attributes
|
||||
+osf_set_speculative
|
||||
+osf_sethostid
|
||||
+osf_setitimer
|
||||
+osf_setlogin
|
||||
+osf_setsysinfo
|
||||
+osf_settimeofday
|
||||
+osf_shmat
|
||||
+osf_signal
|
||||
+osf_sigprocmask
|
||||
+osf_sigsendset
|
||||
+osf_sigstack
|
||||
+osf_sigwaitprim
|
||||
+osf_sstk
|
||||
+osf_stat
|
||||
+osf_statfs
|
||||
+osf_statfs64
|
||||
+osf_subsys_info
|
||||
+osf_swapctl
|
||||
+osf_swapon
|
||||
+osf_syscall
|
||||
+osf_sysinfo
|
||||
+osf_table
|
||||
+osf_uadmin
|
||||
+osf_usleep_thread
|
||||
+osf_uswitch
|
||||
+osf_utc_adjtime
|
||||
+osf_utc_gettime
|
||||
+osf_utimes
|
||||
+osf_utsname
|
||||
+osf_wait4
|
||||
+osf_waitid
|
||||
+pause
|
||||
+pciconfig_iobase
|
||||
+pciconfig_read
|
||||
+pciconfig_write
|
||||
+perf_event_open
|
||||
+perfctr
|
||||
+perfmonctl
|
||||
+personality
|
||||
+pipe
|
||||
+pipe2
|
||||
+pivot_root
|
||||
+pkey_alloc
|
||||
+pkey_free
|
||||
+pkey_mprotect
|
||||
+poll
|
||||
+ppoll
|
||||
+prctl
|
||||
+pread64
|
||||
+preadv
|
||||
+preadv2
|
||||
+prlimit64
|
||||
+process_vm_readv
|
||||
+process_vm_writev
|
||||
+prof
|
||||
+profil
|
||||
+pselect6
|
||||
+ptrace
|
||||
+putpmsg
|
||||
+pwrite64
|
||||
+pwritev
|
||||
+pwritev2
|
||||
+query_module
|
||||
+quotactl
|
||||
+read
|
||||
+readahead
|
||||
+readdir
|
||||
+readlink
|
||||
+readlinkat
|
||||
+readv
|
||||
+reboot
|
||||
+recv
|
||||
+recvfrom
|
||||
+recvmmsg
|
||||
+recvmsg
|
||||
+remap_file_pages
|
||||
+removexattr
|
||||
+rename
|
||||
+renameat
|
||||
+renameat2
|
||||
+request_key
|
||||
+restart_syscall
|
||||
+rmdir
|
||||
+rt_sigaction
|
||||
+rt_sigpending
|
||||
+rt_sigprocmask
|
||||
+rt_sigqueueinfo
|
||||
+rt_sigreturn
|
||||
+rt_sigsuspend
|
||||
+rt_sigtimedwait
|
||||
+rt_tgsigqueueinfo
|
||||
+rtas
|
||||
+s390_guarded_storage
|
||||
+s390_pci_mmio_read
|
||||
+s390_pci_mmio_write
|
||||
+s390_runtime_instr
|
||||
+sched_get_affinity
|
||||
+sched_get_priority_max
|
||||
+sched_get_priority_min
|
||||
+sched_getaffinity
|
||||
+sched_getattr
|
||||
+sched_getparam
|
||||
+sched_getscheduler
|
||||
+sched_rr_get_interval
|
||||
+sched_set_affinity
|
||||
+sched_setaffinity
|
||||
+sched_setattr
|
||||
+sched_setparam
|
||||
+sched_setscheduler
|
||||
+sched_yield
|
||||
+seccomp
|
||||
+security
|
||||
+select
|
||||
+semctl
|
||||
+semget
|
||||
+semop
|
||||
+semtimedop
|
||||
+send
|
||||
+sendfile
|
||||
+sendfile64
|
||||
+sendmmsg
|
||||
+sendmsg
|
||||
+sendto
|
||||
+set_mempolicy
|
||||
+set_robust_list
|
||||
+set_thread_area
|
||||
+set_tid_address
|
||||
+setdomainname
|
||||
+setfsgid
|
||||
+setfsgid32
|
||||
+setfsuid
|
||||
+setfsuid32
|
||||
+setgid
|
||||
+setgid32
|
||||
+setgroups
|
||||
+setgroups32
|
||||
+sethae
|
||||
+sethostname
|
||||
+setitimer
|
||||
+setns
|
||||
+setpgid
|
||||
+setpgrp
|
||||
+setpriority
|
||||
+setregid
|
||||
+setregid32
|
||||
+setresgid
|
||||
+setresgid32
|
||||
+setresuid
|
||||
+setresuid32
|
||||
+setreuid
|
||||
+setreuid32
|
||||
+setrlimit
|
||||
+setsid
|
||||
+setsockopt
|
||||
+settimeofday
|
||||
+setuid
|
||||
+setuid32
|
||||
+setxattr
|
||||
+sgetmask
|
||||
+shmat
|
||||
+shmctl
|
||||
+shmdt
|
||||
+shmget
|
||||
+shutdown
|
||||
+sigaction
|
||||
+sigaltstack
|
||||
+signal
|
||||
+signalfd
|
||||
+signalfd4
|
||||
+sigpending
|
||||
+sigprocmask
|
||||
+sigreturn
|
||||
+sigsuspend
|
||||
+socket
|
||||
+socketcall
|
||||
+socketpair
|
||||
+splice
|
||||
+spu_create
|
||||
+spu_run
|
||||
+ssetmask
|
||||
+stat
|
||||
+stat64
|
||||
+statfs
|
||||
+statfs64
|
||||
+statx
|
||||
+stime
|
||||
+stty
|
||||
+subpage_prot
|
||||
+swapcontext
|
||||
+swapoff
|
||||
+swapon
|
||||
+switch_endian
|
||||
+symlink
|
||||
+symlinkat
|
||||
+sync
|
||||
+sync_file_range
|
||||
+sync_file_range2
|
||||
+syncfs
|
||||
+sys_debug_setcontext
|
||||
+sys_epoll_create
|
||||
+sys_epoll_ctl
|
||||
+sys_epoll_wait
|
||||
+syscall
|
||||
+sysfs
|
||||
+sysinfo
|
||||
+syslog
|
||||
+sysmips
|
||||
+tee
|
||||
+tgkill
|
||||
+time
|
||||
+timer_create
|
||||
+timer_delete
|
||||
+timer_getoverrun
|
||||
+timer_gettime
|
||||
+timer_settime
|
||||
+timerfd
|
||||
+timerfd_create
|
||||
+timerfd_gettime
|
||||
+timerfd_settime
|
||||
+times
|
||||
+tkill
|
||||
+truncate
|
||||
+truncate64
|
||||
+tuxcall
|
||||
+ugetrlimit
|
||||
+ulimit
|
||||
+umask
|
||||
+umount
|
||||
+umount2
|
||||
+uname
|
||||
+unlink
|
||||
+unlinkat
|
||||
+unshare
|
||||
+uselib
|
||||
+userfaultfd
|
||||
+ustat
|
||||
+utime
|
||||
+utimensat
|
||||
+utimes
|
||||
+utrap_install
|
||||
+vfork
|
||||
+vhangup
|
||||
+vm86
|
||||
+vm86old
|
||||
+vmsplice
|
||||
+vserver
|
||||
+wait4
|
||||
+waitid
|
||||
+waitpid
|
||||
+write
|
||||
+writev
|
|
@ -0,0 +1,372 @@
|
|||
See glibc-rh1484729-syscall-names.patch for the actual system call list.
|
||||
|
||||
commit 2dba5ce7b8115d6a2789bf279892263621088e74
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Mon Aug 28 11:31:23 2017 +0200
|
||||
|
||||
<bits/syscall.h>: Use an arch-independent system call list on Linux
|
||||
|
||||
This commit changes the way the list of SYS_* system call macros is
|
||||
created on Linux. glibc now contains a list of all known system
|
||||
calls, and the generated <bits/syscall.h> file defines the SYS_ macro
|
||||
only if the correspnding __NR_ macro is defined by the kernel headers.
|
||||
|
||||
As a result, glibc does not have to be rebuilt to pick up system calls
|
||||
if the glibc sources already know about them. This means that glibc
|
||||
can be built with older kernel headers, and if the installed kernel
|
||||
headers are upgraded afterwards, additional SYS_ macros become
|
||||
available as long as glibc has a record for those system calls.
|
||||
|
||||
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
|
||||
index b1fe960d0080b01f..69edb75209702dfc 100644
|
||||
--- a/sysdeps/unix/sysv/linux/Makefile
|
||||
+++ b/sysdeps/unix/sysv/linux/Makefile
|
||||
@@ -53,74 +53,48 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \
|
||||
tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \
|
||||
test-errno-linux
|
||||
|
||||
-# Generate the list of SYS_* macros for the system calls (__NR_* macros).
|
||||
-
|
||||
-# If there is more than one syscall list for different architecture
|
||||
-# variants, the CPU/Makefile defines abi-variants to be a list of names
|
||||
-# for those variants (e.g. 32 64), and, for each variant, defines
|
||||
-# abi-$(variant)-options to be compiler options to cause <asm/unistd.h>
|
||||
-# to define the desired list of syscalls and abi-$(variant)-condition to
|
||||
-# be the condition for those options to use in a C #if condition.
|
||||
-# abi-includes may be defined to a list of headers to include
|
||||
-# in the generated header, if the default does not suffice.
|
||||
-#
|
||||
-# The generated header is compiled with `-ffreestanding' to avoid any
|
||||
-# circular dependencies against the installed implementation headers.
|
||||
-# Such a dependency would require the implementation header to be
|
||||
-# installed before the generated header could be built (See bug 15711).
|
||||
-# In current practice the generated header dependencies do not include
|
||||
-# any of the implementation headers removed by the use of `-ffreestanding'.
|
||||
-
|
||||
-$(objpfx)bits/syscall%h $(objpfx)bits/syscall%d: ../sysdeps/unix/sysv/linux/sys/syscall.h
|
||||
+# Generate the list of SYS_* macros for the system calls (__NR_*
|
||||
+# macros). The file syscall-names.list contains all possible system
|
||||
+# call names, and the generated header file produces SYS_* macros for
|
||||
+# the __NR_* macros which are actually defined.
|
||||
+
|
||||
+generated += bits/syscall.h
|
||||
+$(objpfx)bits/syscall.h: \
|
||||
+ ../sysdeps/unix/sysv/linux/gen-syscall-h.awk \
|
||||
+ ../sysdeps/unix/sysv/linux/syscall-names.list
|
||||
$(make-target-directory)
|
||||
- { \
|
||||
- echo '/* Generated at libc build time from kernel syscall list. */';\
|
||||
- echo ''; \
|
||||
- echo '#ifndef _SYSCALL_H'; \
|
||||
- echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
|
||||
- echo '#endif'; \
|
||||
- echo ''; \
|
||||
- $(foreach h,$(abi-includes), echo '#include <$(h)>';) \
|
||||
- echo ''; \
|
||||
- $(if $(abi-variants), \
|
||||
- $(foreach v,$(abi-variants),\
|
||||
- $(CC) -ffreestanding -E -MD -MP -MF $(@:.h=.d)-t$(v) -MT '$(@:.d=.h) $(@:.h=.d)' \
|
||||
- -x c $(sysincludes) $< $(abi-$(v)-options) \
|
||||
- -D_LIBC -dM | \
|
||||
- sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
|
||||
- LC_ALL=C sort > $(@:.d=.h).new$(v); \
|
||||
- $(if $(abi-$(v)-condition),\
|
||||
- echo '#if $(abi-$(v)-condition)';) \
|
||||
- cat $(@:.d=.h).new$(v); \
|
||||
- $(if $(abi-$(v)-condition),echo '#endif';) \
|
||||
- rm -f $(@:.d=.h).new$(v); \
|
||||
- ), \
|
||||
- $(CC) -ffreestanding -E -MD -MP -MF $(@:.h=.d)-t$(v) -MT '$(@:.d=.h) $(@:.h=.d)' \
|
||||
- -x c $(sysincludes) $< \
|
||||
- -D_LIBC -dM | \
|
||||
- sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
|
||||
- LC_ALL=C sort;) \
|
||||
- } > $(@:.d=.h).new
|
||||
- mv -f $(@:.d=.h).new $(@:.d=.h)
|
||||
-ifdef abi-variants
|
||||
-ifneq (,$(objpfx))
|
||||
- sed $(sed-remove-objpfx) \
|
||||
- $(foreach v,$(abi-variants),$(@:.h=.d)-t$(v)) > $(@:.h=.d)-t3
|
||||
-else
|
||||
- cat $(foreach v,$(abi-variants),$(@:.h=.d)-t$(v)) \
|
||||
- > $(@:.h=.d)-t3
|
||||
-endif
|
||||
- rm -f $(foreach v,$(abi-variants),$(@:.h=.d)-t$(v))
|
||||
- mv -f $(@:.h=.d)-t3 $(@:.h=.d)
|
||||
-else
|
||||
- mv -f $(@:.h=.d)-t $(@:.h=.d)
|
||||
-endif
|
||||
-
|
||||
-ifndef no_deps
|
||||
-# Get the generated list of dependencies (probably /usr/include/asm/unistd.h).
|
||||
--include $(objpfx)bits/syscall.d
|
||||
-endif
|
||||
-generated += bits/syscall.h bits/syscall.d
|
||||
+ LC_ALL=C $(AWK) -f $^ > $@-tmp
|
||||
+ $(move-if-change) $@-tmp $@
|
||||
+before-compile += $(objpfx)bits/syscall.h
|
||||
+
|
||||
+# All macros defined by <sys/syscall.h>. Include <bits/syscall.h>
|
||||
+# explicitly because <sys/sycall.h> skips it if _LIBC is defined.
|
||||
+$(objpfx)tst-syscall-list-macros.list: \
|
||||
+ $(objpfx)bits/syscall.h ../sysdeps/unix/sysv/linux/sys/syscall.h
|
||||
+ printf '#include <linux/version.h>\n\
|
||||
+#include <sys/syscall.h>\n#include <bits/syscall.h>\n' | \
|
||||
+ $(CC) -E -o $@-tmp $(CFLAGS) $(CPPFLAGS) -x c - -dM
|
||||
+ $(move-if-change) $@-tmp $@
|
||||
+
|
||||
+# __NR_* system call names. Used by the test below.
|
||||
+$(objpfx)tst-syscall-list-nr.list: \
|
||||
+ ../sysdeps/unix/sysv/linux/filter-nr-syscalls.awk \
|
||||
+ $(objpfx)tst-syscall-list-macros.list
|
||||
+ LC_ALL=C $(AWK) -f $^ > $@-tmp
|
||||
+ $(move-if-change) $@-tmp $@
|
||||
+
|
||||
+# SYS_* system call names. Used by the test below.
|
||||
+$(objpfx)tst-syscall-list-sys.list: $(objpfx)tst-syscall-list-macros.list
|
||||
+ LC_ALL=C $(AWK) '/^#define SYS_/ { print substr($$2, 5) }' $< > $@-tmp
|
||||
+ $(move-if-change) $@-tmp $@
|
||||
+
|
||||
+tests-special += $(objpfx)tst-syscall-list.out
|
||||
+$(objpfx)tst-syscall-list.out: \
|
||||
+ ../sysdeps/unix/sysv/linux/tst-syscall-list.sh \
|
||||
+ $(objpfx)tst-syscall-list-macros.list \
|
||||
+ $(objpfx)tst-syscall-list-nr.list \
|
||||
+ $(objpfx)tst-syscall-list-sys.list
|
||||
+ $(BASH) $^ $(AWK) > $@; $(evaluate-test)
|
||||
|
||||
# Separate object file for access to the constant from the UAPI header.
|
||||
$(objpfx)tst-sysconf-iov_max: $(objpfx)tst-sysconf-iov_max-uapi.o
|
||||
diff --git a/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk b/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
|
||||
new file mode 100644
|
||||
index 0000000000000000..15b052a9c9bb4f5b
|
||||
--- /dev/null
|
||||
+++ b/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
|
||||
@@ -0,0 +1,35 @@
|
||||
+# Filter preprocessor __NR_* macros and extract system call names.
|
||||
+# 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/>.
|
||||
+
|
||||
+# Skip reserved system calls.
|
||||
+/^#define __NR_(unused|reserved)[0-9]+ / {
|
||||
+ next;
|
||||
+}
|
||||
+
|
||||
+# Skip pseudo-system calls which describe ranges.
|
||||
+/^#define __NR_(syscalls|arch_specific_syscall|(OABI_)?SYSCALL_BASE) / {
|
||||
+ next;
|
||||
+}
|
||||
+/^#define __NR_(|64_|[NO]32_)Linux(_syscalls)? / {
|
||||
+ next;
|
||||
+}
|
||||
+
|
||||
+# Print the remaining _NR_* macros as system call names.
|
||||
+/^#define __NR_/ {
|
||||
+ print substr($2, 6);
|
||||
+}
|
||||
diff --git a/sysdeps/unix/sysv/linux/gen-syscall-h.awk b/sysdeps/unix/sysv/linux/gen-syscall-h.awk
|
||||
new file mode 100644
|
||||
index 0000000000000000..ef8eb6be5270c5f8
|
||||
--- /dev/null
|
||||
+++ b/sysdeps/unix/sysv/linux/gen-syscall-h.awk
|
||||
@@ -0,0 +1,81 @@
|
||||
+# Generate SYS_* macros from a list in a text file.
|
||||
+# 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/>.
|
||||
+
|
||||
+# Emit a conditional definition for SYS_NAME.
|
||||
+function emit(name) {
|
||||
+ print "#ifdef __NR_" name;
|
||||
+ print "# define SYS_" name " __NR_" name;
|
||||
+ print "#endif";
|
||||
+ print "";
|
||||
+}
|
||||
+
|
||||
+# Bail out with an error.
|
||||
+function fatal(message) {
|
||||
+ print FILENAME ":" FNR ": " message > "/dev/stderr";
|
||||
+ exit 1;
|
||||
+}
|
||||
+
|
||||
+BEGIN {
|
||||
+ name = "";
|
||||
+ kernel = "";
|
||||
+}
|
||||
+
|
||||
+# Skip empty lines and comments.
|
||||
+/^\s*(|#.*)$/ {
|
||||
+ next;
|
||||
+}
|
||||
+
|
||||
+# Kernel version. Used for documentation purposes only.
|
||||
+/^kernel [0-9.]+$/ {
|
||||
+ if (kernel != "") {
|
||||
+ fatal("duplicate kernel directive");
|
||||
+ }
|
||||
+ kernel = $2;
|
||||
+ print "/* Generated at libc build time from syscall list. */";
|
||||
+ print "/* The system call list corresponds to kernel " kernel ". */";
|
||||
+ print "";
|
||||
+ print "#ifndef _SYSCALL_H"
|
||||
+ print "# error \"Never use <bits/syscall.h> directly; include <sys/syscall.h> instead.\"";
|
||||
+ print "#endif";
|
||||
+ print "";
|
||||
+ split($2, kernel_version, ".");
|
||||
+ kernel_major = kernel_version[1];
|
||||
+ kernel_minor = kernel_version[2];
|
||||
+ kernel_version_code = kernel_major * 65536 + kernel_minor * 256;
|
||||
+ print "#define __GLIBC_LINUX_VERSION_CODE " kernel_version_code;
|
||||
+ print "";
|
||||
+ next;
|
||||
+}
|
||||
+
|
||||
+# If there is just one word, it is a system call.
|
||||
+/^[a-zA-Z_][a-zA-Z0-9_]+$/ {
|
||||
+ if (kernel == "") {
|
||||
+ fatal("expected kernel directive before this line");
|
||||
+ }
|
||||
+ if ($1 <= name) {
|
||||
+ fatal("name " name " violates ordering");
|
||||
+ }
|
||||
+ emit($1);
|
||||
+ name = $1;
|
||||
+ next;
|
||||
+}
|
||||
+
|
||||
+# The rest has to be syntax errors.
|
||||
+// {
|
||||
+ fatal("unrecognized syntax");
|
||||
+}
|
||||
diff --git a/sysdeps/unix/sysv/linux/tst-syscall-list.sh b/sysdeps/unix/sysv/linux/tst-syscall-list.sh
|
||||
new file mode 100644
|
||||
index 0000000000000000..8474cf888f8dab73
|
||||
--- /dev/null
|
||||
+++ b/sysdeps/unix/sysv/linux/tst-syscall-list.sh
|
||||
@@ -0,0 +1,99 @@
|
||||
+#!/bin/bash
|
||||
+# Consistency checks for the system call list
|
||||
+# 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/>.
|
||||
+
|
||||
+export LC_ALL=C
|
||||
+set -e
|
||||
+set -o pipefail
|
||||
+
|
||||
+if test $# != 4; then
|
||||
+ echo "error: wrong number of arguments: $#"
|
||||
+ exit 1
|
||||
+fi
|
||||
+
|
||||
+macros="$1"
|
||||
+list_nr="$2"
|
||||
+list_sys="$3"
|
||||
+GAWK="$4"
|
||||
+
|
||||
+linux_version="$("$GAWK" \
|
||||
+ '/#define LINUX_VERSION_CODE / {print $3}' < "$macros")"
|
||||
+glibc_linux_version="$("$GAWK" \
|
||||
+ '/#define __GLIBC_LINUX_VERSION_CODE / {print $3}' < "$macros")"
|
||||
+
|
||||
+echo "info: LINUX_VERSION_CODE: $linux_version"
|
||||
+echo "info: __GLIBC_LINUX_VERSION_CODE: $glibc_linux_version"
|
||||
+# Ignore the subrelease in the comparison.
|
||||
+if test $(expr "$glibc_linux_version" / 256) \
|
||||
+ -lt $(expr "$linux_version" / 256); then
|
||||
+ echo "info: The kernel major/minor version is newer than the glibc version"
|
||||
+ kernel_newer=true
|
||||
+else
|
||||
+ kernel_newer=false
|
||||
+fi
|
||||
+echo
|
||||
+
|
||||
+errors=0
|
||||
+
|
||||
+# Use getpid as a system call which is expected to be always defined.
|
||||
+# alpha uses getxpid instead, so it is permitted as an alternative.
|
||||
+if ! grep -E -q '^getx?pid$' -- "$list_nr"; then
|
||||
+ echo "error: __NR_getpid not defined"
|
||||
+ errors=1
|
||||
+fi
|
||||
+if ! grep -E -q '^getx?pid$' -- "$list_sys"; then
|
||||
+ echo "error: SYS_getpid not defined"
|
||||
+ errors=1
|
||||
+fi
|
||||
+
|
||||
+comm_1="$(mktemp)"
|
||||
+comm_2="$(mktemp)"
|
||||
+comm_result="$(mktemp)"
|
||||
+cleanup () {
|
||||
+ rm -f -- "$comm_1" "$comm_2" "$comm_result"
|
||||
+}
|
||||
+trap cleanup 0
|
||||
+
|
||||
+sort -o "$comm_1" -- "$list_nr"
|
||||
+sort -o "$comm_2" -- "$list_sys"
|
||||
+
|
||||
+# Check for missing SYS_* macros.
|
||||
+comm --check-order -2 -3 -- "$comm_1" "$comm_2" > "$comm_result"
|
||||
+if test -s "$comm_result"; then
|
||||
+ echo "error: These system calls need to be added to syscall-names.list:"
|
||||
+ cat -- "$comm_result"
|
||||
+ # This is only an error if our version is older than the kernel
|
||||
+ # version because we cannot predict future kernel development.
|
||||
+ if $kernel_newer; then
|
||||
+ echo
|
||||
+ echo "warning: This error has been ignored because the glibc"
|
||||
+ echo "warning: system call list is older than the kernel version."
|
||||
+ else
|
||||
+ errors=1
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
+# Check for additional SYS_* macros.
|
||||
+comm --check-order -1 -3 -- "$comm_1" "$comm_2" > "$comm_result"
|
||||
+if test -s "$comm_result"; then
|
||||
+ echo "error: The following system calls have unexpected SYS_* macros:"
|
||||
+ cat -- "$comm_result"
|
||||
+ errors=1
|
||||
+fi
|
||||
+
|
||||
+exit "$errors"
|
|
@ -0,0 +1,81 @@
|
|||
commit 91e7cf982d0104f0e71770f5ae8e3faf352dea9f
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Thu Oct 5 14:48:16 2017 +0200
|
||||
|
||||
abort: Do not flush stdio streams [BZ #15436]
|
||||
|
||||
diff --git a/stdlib/abort.c b/stdlib/abort.c
|
||||
index 19882f3e3dc1ab83..117a507ff88d8624 100644
|
||||
--- a/stdlib/abort.c
|
||||
+++ b/stdlib/abort.c
|
||||
@@ -31,9 +31,6 @@
|
||||
# define ABORT_INSTRUCTION
|
||||
#endif
|
||||
|
||||
-#include <libio/libioP.h>
|
||||
-#define fflush(s) _IO_flush_all_lockp (0)
|
||||
-
|
||||
/* Exported variable to locate abort message in core files etc. */
|
||||
struct abort_msg_s *__abort_msg __attribute__ ((nocommon));
|
||||
libc_hidden_def (__abort_msg)
|
||||
@@ -67,16 +64,8 @@ abort (void)
|
||||
__sigprocmask (SIG_UNBLOCK, &sigs, 0);
|
||||
}
|
||||
|
||||
- /* Flush all streams. We cannot close them now because the user
|
||||
- might have registered a handler for SIGABRT. */
|
||||
- if (stage == 1)
|
||||
- {
|
||||
- ++stage;
|
||||
- fflush (NULL);
|
||||
- }
|
||||
-
|
||||
/* Send signal which possibly calls a user handler. */
|
||||
- if (stage == 2)
|
||||
+ if (stage == 1)
|
||||
{
|
||||
/* This stage is special: we must allow repeated calls of
|
||||
`abort' when a user defined handler for SIGABRT is installed.
|
||||
@@ -94,7 +83,7 @@ abort (void)
|
||||
}
|
||||
|
||||
/* There was a handler installed. Now remove it. */
|
||||
- if (stage == 3)
|
||||
+ if (stage == 2)
|
||||
{
|
||||
++stage;
|
||||
memset (&act, '\0', sizeof (struct sigaction));
|
||||
@@ -104,30 +93,22 @@ abort (void)
|
||||
__sigaction (SIGABRT, &act, NULL);
|
||||
}
|
||||
|
||||
- /* Now close the streams which also flushes the output the user
|
||||
- defined handler might has produced. */
|
||||
- if (stage == 4)
|
||||
- {
|
||||
- ++stage;
|
||||
- __fcloseall ();
|
||||
- }
|
||||
-
|
||||
/* Try again. */
|
||||
- if (stage == 5)
|
||||
+ if (stage == 3)
|
||||
{
|
||||
++stage;
|
||||
raise (SIGABRT);
|
||||
}
|
||||
|
||||
/* Now try to abort using the system specific command. */
|
||||
- if (stage == 6)
|
||||
+ if (stage == 4)
|
||||
{
|
||||
++stage;
|
||||
ABORT_INSTRUCTION;
|
||||
}
|
||||
|
||||
/* If we can't signal ourselves and the abort instruction failed, exit. */
|
||||
- if (stage == 7)
|
||||
+ if (stage == 5)
|
||||
{
|
||||
++stage;
|
||||
_exit (127);
|
|
@ -0,0 +1,153 @@
|
|||
commit 19f82f358670f4b80533156b9edbf81223358bf9
|
||||
Author: Andreas Schwab <schwab@suse.de>
|
||||
Date: Mon Aug 21 16:07:29 2017 +0200
|
||||
|
||||
Always do locking when iterating over list of streams (bug 15142)
|
||||
|
||||
_IO_list_all should only be traversed while locking list_all_lock.
|
||||
|
||||
diff --git a/libio/genops.c b/libio/genops.c
|
||||
index 6ad7346cae5c169d..89376d1b9bd7cf65 100644
|
||||
--- a/libio/genops.c
|
||||
+++ b/libio/genops.c
|
||||
@@ -38,10 +38,6 @@
|
||||
static _IO_lock_t list_all_lock = _IO_lock_initializer;
|
||||
#endif
|
||||
|
||||
-/* Used to signal modifications to the list of FILE decriptors. */
|
||||
-static int _IO_list_all_stamp;
|
||||
-
|
||||
-
|
||||
static _IO_FILE *run_fp;
|
||||
|
||||
#ifdef _IO_MTSAFE_IO
|
||||
@@ -69,16 +65,12 @@ _IO_un_link (struct _IO_FILE_plus *fp)
|
||||
if (_IO_list_all == NULL)
|
||||
;
|
||||
else if (fp == _IO_list_all)
|
||||
- {
|
||||
- _IO_list_all = (struct _IO_FILE_plus *) _IO_list_all->file._chain;
|
||||
- ++_IO_list_all_stamp;
|
||||
- }
|
||||
+ _IO_list_all = (struct _IO_FILE_plus *) _IO_list_all->file._chain;
|
||||
else
|
||||
for (f = &_IO_list_all->file._chain; *f; f = &(*f)->_chain)
|
||||
if (*f == (_IO_FILE *) fp)
|
||||
{
|
||||
*f = fp->file._chain;
|
||||
- ++_IO_list_all_stamp;
|
||||
break;
|
||||
}
|
||||
fp->file._flags &= ~_IO_LINKED;
|
||||
@@ -106,7 +98,6 @@ _IO_link_in (struct _IO_FILE_plus *fp)
|
||||
#endif
|
||||
fp->file._chain = (_IO_FILE *) _IO_list_all;
|
||||
_IO_list_all = fp;
|
||||
- ++_IO_list_all_stamp;
|
||||
#ifdef _IO_MTSAFE_IO
|
||||
_IO_funlockfile ((_IO_FILE *) fp);
|
||||
run_fp = NULL;
|
||||
@@ -794,17 +785,13 @@ _IO_flush_all_lockp (int do_lock)
|
||||
{
|
||||
int result = 0;
|
||||
struct _IO_FILE *fp;
|
||||
- int last_stamp;
|
||||
|
||||
#ifdef _IO_MTSAFE_IO
|
||||
- __libc_cleanup_region_start (do_lock, flush_cleanup, NULL);
|
||||
- if (do_lock)
|
||||
- _IO_lock_lock (list_all_lock);
|
||||
+ _IO_cleanup_region_start_noarg (flush_cleanup);
|
||||
+ _IO_lock_lock (list_all_lock);
|
||||
#endif
|
||||
|
||||
- last_stamp = _IO_list_all_stamp;
|
||||
- fp = (_IO_FILE *) _IO_list_all;
|
||||
- while (fp != NULL)
|
||||
+ for (fp = (_IO_FILE *) _IO_list_all; fp != NULL; fp = fp->_chain)
|
||||
{
|
||||
run_fp = fp;
|
||||
if (do_lock)
|
||||
@@ -823,21 +810,11 @@ _IO_flush_all_lockp (int do_lock)
|
||||
if (do_lock)
|
||||
_IO_funlockfile (fp);
|
||||
run_fp = NULL;
|
||||
-
|
||||
- if (last_stamp != _IO_list_all_stamp)
|
||||
- {
|
||||
- /* Something was added to the list. Start all over again. */
|
||||
- fp = (_IO_FILE *) _IO_list_all;
|
||||
- last_stamp = _IO_list_all_stamp;
|
||||
- }
|
||||
- else
|
||||
- fp = fp->_chain;
|
||||
}
|
||||
|
||||
#ifdef _IO_MTSAFE_IO
|
||||
- if (do_lock)
|
||||
- _IO_lock_unlock (list_all_lock);
|
||||
- __libc_cleanup_region_end (0);
|
||||
+ _IO_lock_unlock (list_all_lock);
|
||||
+ _IO_cleanup_region_end (0);
|
||||
#endif
|
||||
|
||||
return result;
|
||||
@@ -856,16 +833,13 @@ void
|
||||
_IO_flush_all_linebuffered (void)
|
||||
{
|
||||
struct _IO_FILE *fp;
|
||||
- int last_stamp;
|
||||
|
||||
#ifdef _IO_MTSAFE_IO
|
||||
_IO_cleanup_region_start_noarg (flush_cleanup);
|
||||
_IO_lock_lock (list_all_lock);
|
||||
#endif
|
||||
|
||||
- last_stamp = _IO_list_all_stamp;
|
||||
- fp = (_IO_FILE *) _IO_list_all;
|
||||
- while (fp != NULL)
|
||||
+ for (fp = (_IO_FILE *) _IO_list_all; fp != NULL; fp = fp->_chain)
|
||||
{
|
||||
run_fp = fp;
|
||||
_IO_flockfile (fp);
|
||||
@@ -875,15 +849,6 @@ _IO_flush_all_linebuffered (void)
|
||||
|
||||
_IO_funlockfile (fp);
|
||||
run_fp = NULL;
|
||||
-
|
||||
- if (last_stamp != _IO_list_all_stamp)
|
||||
- {
|
||||
- /* Something was added to the list. Start all over again. */
|
||||
- fp = (_IO_FILE *) _IO_list_all;
|
||||
- last_stamp = _IO_list_all_stamp;
|
||||
- }
|
||||
- else
|
||||
- fp = fp->_chain;
|
||||
}
|
||||
|
||||
#ifdef _IO_MTSAFE_IO
|
||||
@@ -919,6 +884,12 @@ static void
|
||||
_IO_unbuffer_all (void)
|
||||
{
|
||||
struct _IO_FILE *fp;
|
||||
+
|
||||
+#ifdef _IO_MTSAFE_IO
|
||||
+ _IO_cleanup_region_start_noarg (flush_cleanup);
|
||||
+ _IO_lock_lock (list_all_lock);
|
||||
+#endif
|
||||
+
|
||||
for (fp = (_IO_FILE *) _IO_list_all; fp; fp = fp->_chain)
|
||||
{
|
||||
if (! (fp->_flags & _IO_UNBUFFERED)
|
||||
@@ -961,6 +932,11 @@ _IO_unbuffer_all (void)
|
||||
used. */
|
||||
fp->_mode = -1;
|
||||
}
|
||||
+
|
||||
+#ifdef _IO_MTSAFE_IO
|
||||
+ _IO_lock_unlock (list_all_lock);
|
||||
+ _IO_cleanup_region_end (0);
|
||||
+#endif
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
Please see the following bug for a complete summary:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1615608
|
||||
|
||||
Index: glibc-2.28/manual/startup.texi
|
||||
===================================================================
|
||||
--- glibc-2.28.orig/manual/startup.texi
|
||||
+++ glibc-2.28/manual/startup.texi
|
||||
@@ -1005,14 +1005,6 @@ This function actually terminates the pr
|
||||
intercept this signal; see @ref{Signal Handling}.
|
||||
@end deftypefun
|
||||
|
||||
-@c Put in by rms. Don't remove.
|
||||
-@cartouche
|
||||
-@strong{Future Change Warning:} Proposed Federal censorship regulations
|
||||
-may prohibit us from giving you information about the possibility of
|
||||
-calling this function. We would be required to say that this is not an
|
||||
-acceptable way of terminating a program.
|
||||
-@end cartouche
|
||||
-
|
||||
@node Termination Internals
|
||||
@subsection Termination Internals
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
diff -rup a/manual/Makefile b/manual/Makefile
|
||||
--- a/manual/Makefile 2012-05-20 19:47:38.000000000 -0600
|
||||
+++ b/manual/Makefile 2012-05-29 22:23:33.920428631 -0600
|
||||
@@ -129,7 +129,8 @@ $(objpfx)%.c.texi: examples/%.c
|
||||
mv -f $@.new $@
|
||||
|
||||
$(objpfx)%.info: %.texinfo
|
||||
- LANGUAGE=C LC_ALL=C $(MAKEINFO) -P $(objpfx) --output=$@ $<
|
||||
+ LANGUAGE=C LC_ALL=C $(MAKEINFO) -P $(objpfx) --output=`basename $@` $<
|
||||
+ mv `basename $@`* $(objpfx)
|
||||
|
||||
$(objpfx)%.dvi: %.texinfo
|
||||
cd $(objpfx);$(TEXI2DVI) -I $(shell cd $(<D) && pwd) --output=$@ \
|
1415
glibc.spec
1415
glibc.spec
File diff suppressed because it is too large
Load Diff
|
@ -165,43 +165,6 @@ main (void)
|
|||
"--nostdlib", iconv_dir);
|
||||
}
|
||||
|
||||
/* Check if telinit is available and either SysVInit fifo,
|
||||
or upstart telinit. */
|
||||
if (access ("/sbin/telinit", X_OK)
|
||||
|| ((!!access ("/dev/initctl", F_OK))
|
||||
^ !access ("/sbin/initctl", X_OK)))
|
||||
_exit (0);
|
||||
|
||||
/* Check if we are not inside of some chroot, because we'd just
|
||||
timeout and leave /etc/initrunlvl.
|
||||
|
||||
On more modern systems this test is not sufficient to detect
|
||||
if we're in a chroot. */
|
||||
if (readlink ("/proc/1/exe", initpath, 256) <= 0 ||
|
||||
readlink ("/proc/1/root", initpath, 256) <= 0)
|
||||
_exit (0);
|
||||
|
||||
/* Here's another well known way to detect chroot, at least on an
|
||||
ext and xfs filesystems and assuming nothing mounted on the chroot's
|
||||
root. */
|
||||
if (stat ("/", &statbuf) != 0
|
||||
|| (statbuf.st_ino != 2
|
||||
&& statbuf.st_ino != 128))
|
||||
_exit (0);
|
||||
|
||||
if (check_elf ("/proc/1/exe"))
|
||||
verbose_exec (116, "/sbin/telinit", "/sbin/telinit", "u");
|
||||
|
||||
/* Check if we can safely condrestart sshd. */
|
||||
if (access ("/sbin/service", X_OK) == 0
|
||||
&& access ("/usr/sbin/sshd", X_OK) == 0
|
||||
&& access ("/etc/rc.d/init.d/sshd", X_OK) == 0
|
||||
&& access ("/bin/bash", X_OK) == 0)
|
||||
{
|
||||
if (check_elf ("/usr/sbin/sshd"))
|
||||
verbose_exec (-121, "/sbin/service", "/sbin/service", "sshd", "condrestart");
|
||||
}
|
||||
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
|||
SHA512 (glibc-2.26-19-g2aad4b0.tar.gz) = b9c20cbc76594a2392963aee47e457a0b0aa1c3ee9fb3a8e1ccc685176ada0b12ed51e855fc155c7395e62bd3e5799aa3650f6039eaf85b96c3a8465c43295a7
|
||||
SHA512 (glibc-2.26-174-g174709d879.tar.gz) = 74542e3be74044d03a9ab136be8d63db000379c1e7b515c95dd62ec6a74339f051dfa4c6b041e564f73870f7dbe6985a49794f58341d0c7b57da4c06c0155e23
|
||||
|
|
Loading…
Reference in New Issue