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 |
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@ -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
|
* Fri Dec 27 2013 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.18.90-19
|
||||||
- Sync with upstream master.
|
- Sync with upstream master.
|
||||||
|
|
||||||
|
@ -67,7 +67,6 @@ bg_BG.UTF-8/UTF-8 \
|
|||||||
bg_BG/CP1251 \
|
bg_BG/CP1251 \
|
||||||
bhb_IN.UTF-8/UTF-8 \
|
bhb_IN.UTF-8/UTF-8 \
|
||||||
bho_IN/UTF-8 \
|
bho_IN/UTF-8 \
|
||||||
bho_NP/UTF-8 \
|
|
||||||
bi_VU/UTF-8 \
|
bi_VU/UTF-8 \
|
||||||
bn_BD/UTF-8 \
|
bn_BD/UTF-8 \
|
||||||
bn_IN/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
|
|
70
glibc-nscd-reproducible.patch
Normal file
70
glibc-nscd-reproducible.patch
Normal file
@ -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)))
|
||||||
|
{
|
447
glibc-nss_compat.patch
Normal file
447
glibc-nss_compat.patch
Normal file
@ -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,
|
|
271
glibc-rh1315108-glob.patch
Normal file
271
glibc-rh1315108-glob.patch
Normal file
@ -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
|
* posix/wordexp.c (parse_tilde): Use struct scratch_buffer
|
||||||
instead of extend_alloca.
|
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
|
commit 683543bbb3e2c1b17554c4096d00c2980f39a802
|
||||||
Author: Florian Weimer <fweimer@redhat.com>
|
Author: Florian Weimer <fweimer@redhat.com>
|
||||||
Date: Sun Mar 1 23:22:45 2015 +0100
|
Date: Sun Mar 1 23:22:45 2015 +0100
|
||||||
@ -249,8 +239,9 @@ Date: Sun Mar 1 23:22:45 2015 +0100
|
|||||||
[BZ #18023]
|
[BZ #18023]
|
||||||
* include/alloca.h (stackinfo_alloca_round, extend_alloca,
|
* include/alloca.h (stackinfo_alloca_round, extend_alloca,
|
||||||
extend_alloca_account): Remove.
|
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
|
--- a/elf/dl-deps.c
|
||||||
+++ b/elf/dl-deps.c
|
+++ b/elf/dl-deps.c
|
||||||
@@ -27,6 +27,7 @@
|
@@ -27,6 +27,7 @@
|
||||||
@ -261,7 +252,7 @@ Index: b/elf/dl-deps.c
|
|||||||
|
|
||||||
#include <dl-dst.h>
|
#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. */
|
/* Pointer to last unique object. */
|
||||||
tail = &known[nlist - 1];
|
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
|
/* Process each element of the search list, loading each of its
|
||||||
auxiliary objects and immediate dependencies. Auxiliary objects
|
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
|
if (l->l_searchlist.r_list == NULL && l->l_initfini == NULL
|
||||||
&& l != map && l->l_ldnum > 0)
|
&& 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])
|
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 **)
|
struct link_map **l_initfini = (struct link_map **)
|
||||||
malloc ((2 * nneeded + 1) * sizeof needed[0]);
|
malloc ((2 * nneeded + 1) * sizeof needed[0]);
|
||||||
if (l_initfini == NULL)
|
if (l_initfini == NULL)
|
||||||
@ -307,7 +298,7 @@ Index: b/elf/dl-deps.c
|
|||||||
l_initfini[0] = l;
|
l_initfini[0] = l;
|
||||||
memcpy (&l_initfini[1], needed, nneeded * sizeof needed[0]);
|
memcpy (&l_initfini[1], needed, nneeded * sizeof needed[0]);
|
||||||
memcpy (&l_initfini[nneeded + 1], l_initfini,
|
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:
|
out:
|
||||||
@ -316,8 +307,8 @@ Index: b/elf/dl-deps.c
|
|||||||
if (errno == 0 && errno_saved != 0)
|
if (errno == 0 && errno_saved != 0)
|
||||||
__set_errno (errno_saved);
|
__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
|
--- a/include/alloca.h
|
||||||
+++ b/include/alloca.h
|
+++ b/include/alloca.h
|
||||||
@@ -23,57 +23,17 @@ libc_hidden_proto (__libc_alloca_cutoff)
|
@@ -23,57 +23,17 @@ libc_hidden_proto (__libc_alloca_cutoff)
|
||||||
@ -378,11 +369,11 @@ Index: b/include/alloca.h
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
# endif /* !_ISOMAC */
|
# 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
|
--- a/nis/nss_compat/compat-initgroups.c
|
||||||
+++ b/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. */
|
overwrite the pointer with one to a bigger buffer. */
|
||||||
char *tmpbuf = buffer;
|
char *tmpbuf = buffer;
|
||||||
size_t tmplen = buflen;
|
size_t tmplen = buflen;
|
||||||
@ -390,7 +381,7 @@ Index: b/nis/nss_compat/compat-initgroups.c
|
|||||||
|
|
||||||
for (int i = 0; i < mystart; i++)
|
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
|
== NSS_STATUS_TRYAGAIN
|
||||||
&& *errnop == ERANGE)
|
&& *errnop == ERANGE)
|
||||||
{
|
{
|
||||||
@ -440,7 +431,7 @@ Index: b/nis/nss_compat/compat-initgroups.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (__builtin_expect (status != NSS_STATUS_NOTFOUND, 1))
|
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;
|
status = NSS_STATUS_NOTFOUND;
|
||||||
|
|
||||||
done:
|
done:
|
||||||
@ -449,8 +440,8 @@ Index: b/nis/nss_compat/compat-initgroups.c
|
|||||||
free (tmpbuf);
|
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
|
--- a/nis/nss_nis/nis-initgroups.c
|
||||||
+++ b/nis/nss_nis/nis-initgroups.c
|
+++ b/nis/nss_nis/nis-initgroups.c
|
||||||
@@ -16,7 +16,6 @@
|
@@ -16,7 +16,6 @@
|
||||||
@ -469,7 +460,7 @@ Index: b/nis/nss_nis/nis-initgroups.c
|
|||||||
|
|
||||||
#include "nss-nis.h"
|
#include "nss-nis.h"
|
||||||
#include <libnsl.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
|
static int
|
||||||
get_uid (const char *user, uid_t *uidp)
|
get_uid (const char *user, uid_t *uidp)
|
||||||
{
|
{
|
||||||
@ -504,7 +495,7 @@ Index: b/nis/nss_nis/nis-initgroups.c
|
|||||||
return 1;
|
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;
|
struct group grpbuf, *g;
|
||||||
@ -513,7 +504,7 @@ Index: b/nis/nss_nis/nis-initgroups.c
|
|||||||
enum nss_status status;
|
enum nss_status status;
|
||||||
intern_t intern = { NULL, NULL, 0 };
|
intern_t intern = { NULL, NULL, 0 };
|
||||||
gid_t *groups = *groupsp;
|
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)
|
if (status != NSS_STATUS_SUCCESS)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
@ -546,8 +537,8 @@ Index: b/nis/nss_nis/nis-initgroups.c
|
|||||||
|
|
||||||
return status;
|
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
|
--- a/nscd/aicache.c
|
||||||
+++ b/nscd/aicache.c
|
+++ b/nscd/aicache.c
|
||||||
@@ -28,6 +28,7 @@
|
@@ -28,6 +28,7 @@
|
||||||
@ -558,7 +549,7 @@ Index: b/nscd/aicache.c
|
|||||||
|
|
||||||
#include "dbg_log.h"
|
#include "dbg_log.h"
|
||||||
#include "nscd.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)
|
if (ctx == NULL)
|
||||||
no_more = 1;
|
no_more = 1;
|
||||||
|
|
||||||
@ -576,7 +567,7 @@ Index: b/nscd/aicache.c
|
|||||||
int32_t ttl = INT32_MAX;
|
int32_t ttl = INT32_MAX;
|
||||||
ssize_t total = 0;
|
ssize_t total = 0;
|
||||||
char *key_copy = NULL;
|
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 status[2] = { NSS_STATUS_UNAVAIL, NSS_STATUS_UNAVAIL };
|
||||||
int naddrs = 0;
|
int naddrs = 0;
|
||||||
size_t addrslen = 0;
|
size_t addrslen = 0;
|
||||||
@ -584,7 +575,7 @@ Index: b/nscd/aicache.c
|
|||||||
char *canon = NULL;
|
char *canon = NULL;
|
||||||
size_t canonlen;
|
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;
|
at = &atmem;
|
||||||
rc6 = 0;
|
rc6 = 0;
|
||||||
herrno = 0;
|
herrno = 0;
|
||||||
@ -604,7 +595,7 @@ Index: b/nscd/aicache.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (rc6 != 0 && herrno == NETDB_INTERNAL)
|
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)
|
while (1)
|
||||||
{
|
{
|
||||||
rc6 = 0;
|
rc6 = 0;
|
||||||
@ -662,7 +653,7 @@ Index: b/nscd/aicache.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (rc4 != 0 && herrno == NETDB_INTERNAL)
|
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");
|
cfct = __nss_lookup_function (nip, "getcanonname_r");
|
||||||
if (cfct != NULL)
|
if (cfct != NULL)
|
||||||
{
|
{
|
||||||
@ -678,7 +669,7 @@ Index: b/nscd/aicache.c
|
|||||||
== NSS_STATUS_SUCCESS)
|
== NSS_STATUS_SUCCESS)
|
||||||
canon = s;
|
canon = s;
|
||||||
else
|
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;
|
addrfamily = AF_INET6;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -715,11 +706,11 @@ Index: b/nscd/aicache.c
|
|||||||
return timeout;
|
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
|
--- a/nscd/connections.c
|
||||||
+++ b/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;
|
- size_t readlen = 0;
|
||||||
int fd = open ("/proc/self/cmdline", O_RDONLY);
|
int fd = open ("/proc/self/cmdline", O_RDONLY);
|
||||||
- if (fd == -1)
|
- if (fd == -1)
|
||||||
- {
|
|
||||||
- dbg_log (_("\
|
|
||||||
-cannot open /proc/self/cmdline: %s; disabling paranoia mode"),
|
|
||||||
- strerror (errno));
|
|
||||||
-
|
|
||||||
- paranoia = 0;
|
|
||||||
- return;
|
|
||||||
+ if (fd < 0)
|
+ if (fd < 0)
|
||||||
+ return NULL;
|
+ return NULL;
|
||||||
+ size_t current = 0;
|
+ size_t current = 0;
|
||||||
+ size_t limit = 1024;
|
+ size_t limit = 1024;
|
||||||
+ char *buffer = malloc (limit);
|
+ char *buffer = malloc (limit);
|
||||||
+ if (buffer == NULL)
|
+ if (buffer == NULL)
|
||||||
+ {
|
{
|
||||||
|
- dbg_log (_("\
|
||||||
|
-cannot open /proc/self/cmdline: %s; disabling paranoia mode"),
|
||||||
|
- strerror (errno));
|
||||||
|
-
|
||||||
|
- paranoia = 0;
|
||||||
|
- return;
|
||||||
+ close (fd);
|
+ close (fd);
|
||||||
+ errno = ENOMEM;
|
+ errno = ENOMEM;
|
||||||
+ return NULL;
|
+ return NULL;
|
||||||
@ -842,7 +832,7 @@ Index: b/nscd/connections.c
|
|||||||
{
|
{
|
||||||
argv[argc++] = cp;
|
argv[argc++] = cp;
|
||||||
cp = (char *) rawmemchr (cp, '\0') + 1;
|
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));
|
strerror (errno));
|
||||||
|
|
||||||
paranoia = 0;
|
paranoia = 0;
|
||||||
@ -850,7 +840,7 @@ Index: b/nscd/connections.c
|
|||||||
return;
|
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));
|
ignore_value (setuid (server_uid));
|
||||||
paranoia = 0;
|
paranoia = 0;
|
||||||
@ -858,7 +848,7 @@ Index: b/nscd/connections.c
|
|||||||
return;
|
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));
|
ignore_value (setgid (server_gid));
|
||||||
}
|
}
|
||||||
paranoia = 0;
|
paranoia = 0;
|
||||||
@ -866,7 +856,7 @@ Index: b/nscd/connections.c
|
|||||||
return;
|
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"),
|
dbg_log (_("cannot change current working directory to \"/\": %s"),
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
paranoia = 0;
|
paranoia = 0;
|
||||||
@ -874,8 +864,8 @@ Index: b/nscd/connections.c
|
|||||||
|
|
||||||
/* Reenable the databases. */
|
/* Reenable the databases. */
|
||||||
time_t now = time (NULL);
|
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
|
--- a/nscd/grpcache.c
|
||||||
+++ b/nscd/grpcache.c
|
+++ b/nscd/grpcache.c
|
||||||
@@ -16,7 +16,6 @@
|
@@ -16,7 +16,6 @@
|
||||||
@ -894,7 +884,7 @@ Index: b/nscd/grpcache.c
|
|||||||
|
|
||||||
#include "nscd.h"
|
#include "nscd.h"
|
||||||
#include "dbg_log.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
|
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
|
simply insert it. It does not matter if it is in there twice. The
|
||||||
pruning function only will look at the timestamp. */
|
pruning function only will look at the timestamp. */
|
||||||
@ -910,7 +900,7 @@ Index: b/nscd/grpcache.c
|
|||||||
|
|
||||||
if (__glibc_unlikely (debug_level > 0))
|
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);
|
dbg_log (_("Reloading \"%s\" in group cache!"), keystr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -969,8 +959,8 @@ Index: b/nscd/grpcache.c
|
|||||||
return timeout;
|
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
|
--- a/nscd/hstcache.c
|
||||||
+++ b/nscd/hstcache.c
|
+++ b/nscd/hstcache.c
|
||||||
@@ -34,6 +34,7 @@
|
@@ -34,6 +34,7 @@
|
||||||
@ -981,7 +971,7 @@ Index: b/nscd/hstcache.c
|
|||||||
|
|
||||||
#include "nscd.h"
|
#include "nscd.h"
|
||||||
#include "dbg_log.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
|
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
|
simply insert it. It does not matter if it is in there twice. The
|
||||||
pruning function only will look at the timestamp. */
|
pruning function only will look at the timestamp. */
|
||||||
@ -993,7 +983,7 @@ Index: b/nscd/hstcache.c
|
|||||||
int errval = 0;
|
int errval = 0;
|
||||||
int32_t ttl = INT32_MAX;
|
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);
|
dbg_log (_("Reloading \"%s\" in hosts cache!"), (char *) str);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1059,8 +1049,8 @@ Index: b/nscd/hstcache.c
|
|||||||
return timeout;
|
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
|
--- a/nscd/pwdcache.c
|
||||||
+++ b/nscd/pwdcache.c
|
+++ b/nscd/pwdcache.c
|
||||||
@@ -16,7 +16,6 @@
|
@@ -16,7 +16,6 @@
|
||||||
@ -1079,7 +1069,7 @@ Index: b/nscd/pwdcache.c
|
|||||||
|
|
||||||
#include "nscd.h"
|
#include "nscd.h"
|
||||||
#include "dbg_log.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
|
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
|
simply insert it. It does not matter if it is in there twice. The
|
||||||
pruning function only will look at the timestamp. */
|
pruning function only will look at the timestamp. */
|
||||||
@ -1094,7 +1084,7 @@ Index: b/nscd/pwdcache.c
|
|||||||
|
|
||||||
if (__glibc_unlikely (debug_level > 0))
|
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);
|
dbg_log (_("Reloading \"%s\" in password cache!"), keystr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1155,8 +1145,8 @@ Index: b/nscd/pwdcache.c
|
|||||||
return timeout;
|
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
|
--- a/nscd/servicescache.c
|
||||||
+++ b/nscd/servicescache.c
|
+++ b/nscd/servicescache.c
|
||||||
@@ -16,7 +16,6 @@
|
@@ -16,7 +16,6 @@
|
||||||
@ -1175,7 +1165,7 @@ Index: b/nscd/servicescache.c
|
|||||||
|
|
||||||
#include "nscd.h"
|
#include "nscd.h"
|
||||||
#include "dbg_log.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
|
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
|
simply insert it. It does not matter if it is in there twice. The
|
||||||
pruning function only will look at the timestamp. */
|
pruning function only will look at the timestamp. */
|
||||||
@ -1190,7 +1180,7 @@ Index: b/nscd/servicescache.c
|
|||||||
|
|
||||||
if (__glibc_unlikely (debug_level > 0))
|
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);
|
dbg_log (_("Reloading \"%s\" in services cache!"), key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1249,8 +1239,8 @@ Index: b/nscd/servicescache.c
|
|||||||
return timeout;
|
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
|
--- a/nss/getent.c
|
||||||
+++ b/nss/getent.c
|
+++ b/nss/getent.c
|
||||||
@@ -39,6 +39,7 @@
|
@@ -39,6 +39,7 @@
|
||||||
@ -1303,7 +1293,7 @@ Index: b/nss/getent.c
|
|||||||
printf ("%-21s", key[i]);
|
printf ("%-21s", key[i]);
|
||||||
for (int j = 0; j < n; ++j)
|
for (int j = 0; j < n; ++j)
|
||||||
if (grps[j] != -1)
|
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');
|
putchar_unlocked ('\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1312,111 +1302,8 @@ Index: b/nss/getent.c
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: b/nss/nss_files/files-hosts.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-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
|
|
||||||
===================================================================
|
|
||||||
--- a/nss/nss_files/files-initgroups.c
|
--- a/nss/nss_files/files-initgroups.c
|
||||||
+++ b/nss/nss_files/files-initgroups.c
|
+++ b/nss/nss_files/files-initgroups.c
|
||||||
@@ -16,7 +16,6 @@
|
@@ -16,7 +16,6 @@
|
||||||
@ -1435,7 +1322,7 @@ Index: b/nss/nss_files/files-initgroups.c
|
|||||||
|
|
||||||
enum nss_status
|
enum nss_status
|
||||||
_nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
|
_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;
|
enum nss_status status = NSS_STATUS_SUCCESS;
|
||||||
bool any = false;
|
bool any = false;
|
||||||
|
|
||||||
@ -1447,7 +1334,7 @@ Index: b/nss/nss_files/files-initgroups.c
|
|||||||
|
|
||||||
gid_t *groups = *groupsp;
|
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;
|
struct group grp;
|
||||||
@ -1480,7 +1367,7 @@ Index: b/nss/nss_files/files-initgroups.c
|
|||||||
/* Reread current line, the parser has clobbered it. */
|
/* Reread current line, the parser has clobbered it. */
|
||||||
fsetpos (stream, &pos);
|
fsetpos (stream, &pos);
|
||||||
continue;
|
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:
|
out:
|
||||||
/* Free memory. */
|
/* Free memory. */
|
||||||
@ -1490,241 +1377,8 @@ Index: b/nss/nss_files/files-initgroups.c
|
|||||||
free (line);
|
free (line);
|
||||||
|
|
||||||
fclose (stream);
|
fclose (stream);
|
||||||
Index: b/posix/glob.c
|
diff --git a/posix/wordexp.c b/posix/wordexp.c
|
||||||
===================================================================
|
index dfc41736e68bc4e1..23e0b9783631970a 100644
|
||||||
--- 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
|
|
||||||
===================================================================
|
|
||||||
--- a/posix/wordexp.c
|
--- a/posix/wordexp.c
|
||||||
+++ b/posix/wordexp.c
|
+++ b/posix/wordexp.c
|
||||||
@@ -17,7 +17,6 @@
|
@@ -17,7 +17,6 @@
|
||||||
@ -1743,7 +1397,7 @@ Index: b/posix/wordexp.c
|
|||||||
|
|
||||||
#include <libc-lock.h>
|
#include <libc-lock.h>
|
||||||
#include <_itoa.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)
|
if (i == 1 + *offset)
|
||||||
{
|
{
|
||||||
/* Tilde appears on its own */
|
/* 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
|
/* POSIX.2 says ~ expands to $HOME and if HOME is unset the
|
||||||
results are unspecified. We do a lookup on the uid if
|
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
|
else
|
||||||
{
|
{
|
||||||
@ -1802,7 +1456,7 @@ Index: b/posix/wordexp.c
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
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 */
|
/* Look up user name in database to get home directory */
|
||||||
char *user = strndupa (&words[1 + *offset], i - (1 + *offset));
|
char *user = strndupa (&words[1 + *offset], i - (1 + *offset));
|
||||||
struct passwd pwd, *tpwd;
|
struct passwd pwd, *tpwd;
|
||||||
@ -1822,7 +1476,7 @@ Index: b/posix/wordexp.c
|
|||||||
|
|
||||||
if (result == 0 && tpwd != NULL && pwd.pw_dir)
|
if (result == 0 && tpwd != NULL && pwd.pw_dir)
|
||||||
*word = w_addstr (*word, word_length, max_length, 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);
|
*word = w_addstr (*word, word_length, max_length, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1831,8 +1485,8 @@ Index: b/posix/wordexp.c
|
|||||||
*offset = i - 1;
|
*offset = i - 1;
|
||||||
}
|
}
|
||||||
return *word ? 0 : WRDE_NOSPACE;
|
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
|
--- a/sysdeps/unix/sysv/linux/gethostid.c
|
||||||
+++ b/sysdeps/unix/sysv/linux/gethostid.c
|
+++ b/sysdeps/unix/sysv/linux/gethostid.c
|
||||||
@@ -63,13 +63,12 @@ sethostid (long int id)
|
@@ -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
|
/* For the return value to be not exactly the IP address we do some
|
||||||
bit fiddling. */
|
bit fiddling. */
|
||||||
return (int32_t) (in.s_addr << 16 | in.s_addr >> 16);
|
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
|
--- a/sysdeps/unix/sysv/linux/getlogin_r.c
|
||||||
+++ b/sysdeps/unix/sysv/linux/getlogin_r.c
|
+++ b/sysdeps/unix/sysv/linux/getlogin_r.c
|
||||||
@@ -18,6 +18,7 @@
|
@@ -18,6 +18,7 @@
|
||||||
@ -1897,9 +1551,9 @@ Index: b/sysdeps/unix/sysv/linux/getlogin_r.c
|
|||||||
|
|
||||||
#define STATIC static
|
#define STATIC static
|
||||||
static int getlogin_r_fd0 (char *name, size_t namesize);
|
static int getlogin_r_fd0 (char *name, size_t namesize);
|
||||||
@@ -54,28 +55,19 @@ __getlogin_r_loginuid (char *name, size_
|
@@ -63,28 +64,19 @@ __getlogin_r_loginuid (char *name, size_t namesize)
|
||||||
endp == uidbuf || *endp != '\0'))
|
return ENXIO;
|
||||||
return -1;
|
}
|
||||||
|
|
||||||
- size_t buflen = 1024;
|
- size_t buflen = 1024;
|
||||||
- char *buf = alloca (buflen);
|
- char *buf = alloca (buflen);
|
||||||
@ -1933,7 +1587,7 @@ Index: b/sysdeps/unix/sysv/linux/getlogin_r.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (res != 0 || tpwd == NULL)
|
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);
|
memcpy (name, pwd.pw_name, needed);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
440
glibc-rh1416405.patch
Normal file
440
glibc-rh1416405.patch
Normal file
@ -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);
|
|
609
glibc-rh1484729-syscall-names.patch
Normal file
609
glibc-rh1484729-syscall-names.patch
Normal file
@ -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
|
372
glibc-rh1484729.patch
Normal file
372
glibc-rh1484729.patch
Normal file
@ -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"
|
81
glibc-rh1498880-1.patch
Normal file
81
glibc-rh1498880-1.patch
Normal file
@ -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);
|
153
glibc-rh1498880-2.patch
Normal file
153
glibc-rh1498880-2.patch
Normal file
@ -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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
22
glibc-rh1615608.patch
Normal file
22
glibc-rh1615608.patch
Normal file
@ -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);
|
"--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);
|
_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
Block a user