about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/microblaze/localplt.data
Commit message (Collapse)AuthorAgeFilesLines
* Avoid tickling a linker bug from microblaze pt-vfork.S.Zack Weinberg2017-06-011-1/+0
| | | | | | | | | | | | | | | | | | | | libpthread used to have its own vfork implementation that differed from libc's only in having a pointless micro-optimization. There is no longer any use to having a separate copy in libpthread, but the historical ABI requires a compatibility shim. microblaze was trying to be slightly too clever about how it did this, and tickled a linker bug. The linker bug should get fixed eventually, but there's no reason for us to keep tickling it in the meantime. This doesn't reuse the generic pt-vfork.c because microblaze doesn't have IFUNC support yet, and it doesn't reuse aarch64/pt-vfork.c because that fails to generate a tailcall (with GCC 7.1.1). * sysdeps/unix/sysv/linux/microblaze/pt-vfork.S: Don't include alpha/pt-vfork.S. Provide own compat shim for vfork and __vfork. * sysdeps/unix/sysv/linux/microblaze/vfork.S: Add __libc_vfork alias. * sysdeps/unix/sysv/linux/microblaze/localplt.data: libpthread.so no longer references __errno_location.
* posix: Fix internal p{read,write} plt usageAdhemerval Zanella2017-05-021-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds internal alias for __pread, __pread64, and __pwrite following the already in place one for __pwrite64. This is not used in any implementation but on microblaze on preadv/pwritev fallback (since it does not define __ASSUME_PREADV). In fact it was signaled by commit c35db50ff5 which update the expected localptl.data for the architecture based on resulted value. This patch updates the plt for microblaze now that p{read,write}{64} are correctly routed to use internal alias. Checked on x86_64-linux-gnu and a build for all supported architectures (no all variants although). * include/unistd.h (__pread): Add libc_hidden_proto. (__pread64): Likewise. (__pwrite): Likewise. * sysdeps/unix/sysv/linux/microblaze/localplt.data [libc.so] (__pread64): Remove. * sysdeps/unix/sysv/linux/pread.c (__pread64): Add libc_hidden_weak. * sysdeps/unix/sysv/linux/pread64.c (__pread64): Likewise. * sysdeps/unix/sysv/linux/pwrite.c (__pwrite): Likewise.
* Update MicroBlaze localplt.data.Joseph Myers2017-01-091-1/+2
| | | | | | | | | | | | | This patch updates the MicroBlaze localplt.data based on the results of a build with build-many-glibcs.py. This is simply an empirical update; quite possibly the port could be optimized to remove more local PLT entry usage. Tested (compilation tests) with build-many-glibcs.py. * sysdeps/unix/sysv/linux/microblaze/localplt.data (__pread64): Add libc.so PLT entry. (__tls_get_addr): Make ld.so PLT entry optional.
* ld.so: Remove __libc_memalignFlorian Weimer2016-11-301-4/+3
| | | | | | | It is no longer needed since commit 6c444ad6e953dbdf9c7be065308a0a777 (elf: Do not use memalign for TCB/TLS blocks allocation [BZ #17730]). Applications do not link against ld.so and will use the definition in libc.so, so there is no ABI impact.
* Implement _dl_catch_error, _dl_signal_error in libc.so [BZ #16628]Florian Weimer2016-11-301-0/+3
| | | | | | | | | | | | | | | | | | This change moves the main implementation of _dl_catch_error, _dl_signal_error to libc.so, where TLS variables can be used directly. This removes a writable function pointer from the rtld_global variable. For use during initial relocation, minimal implementations of these functions are provided in ld.so. These are eventually interposed by the libc.so implementations. This is implemented by compiling elf/dl-error-skeleton.c twice, via elf/dl-error.c and elf/dl-error-minimal.c. As a side effect of this change, the static version of dl-error.c no longer includes support for the _dl_signal_cerror/_dl_receive_error mechanism because it is only used in ld.so.
* Remove __signbit* from localplt.data as they are no longer called from ↵Wilco Dijkstra2015-11-101-3/+0
| | | | | | | | | | within GLIBC. * sysdeps/unix/sysv/linux/aarch64/localplt.data: Remove __signbit*. * sysdeps/unix/sysv/linux/arm/localplt.data: Likewise. * sysdeps/unix/sysv/linux/microblaze/localplt.data: Likewise. * sysdeps/unix/sysv/linux/nios2/localplt.data: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data: Likewise.
* Run check-localpltk/textrel/execstack over ld.so.Carlos O'Donell2014-11-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For maximum paranoia we run ld.so through the normal set of tests for all of the shared libraries. This includes running ld.so through check-localplt, check-textrel, and check-execstack. While none of these should trigger any failures given the way ld.so is built, it might possibly fail if a developer does something wrong. This paranoia was triggered by a discussion over the use of __strcpy vs. strcpy [1] and if the symbol could leak and use the libc.so version. The check-localplt test fails right away because localplt.data needs updating for all arches. By default we add 6 new symbols: __tls_get_addr, __libc_memalign, malloc, calloc, realloc and free. Other machines like i386, power, and s390 require some different symbol sets e.g. ___tls_get_addr vs. __tls_get_addr for i386. Verified for i386 Verified for x86_64 Verified for ppc32 Verified for ppc64 Verified for ppc64le Verified for arm Verified for aarch64 Verified for s390 Verified for s390x Guessed for alpha Guessed for ia64 Guessed for m68k Guessed for microblaze Guessed for sparc32 Guessed for sparc64 Defaults for sh Defaults for mips Defaults for hppa Defaults for tile Machine manintainers notified to double check the data used in localplt.data. [1] https://sourceware.org/ml/libc-alpha/2014-10/msg00548.html
* MicroBlaze: Consolidate nptl/ subdirectories under linux/...Roland McGrath2014-07-011-0/+11
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>