[PATCH] Introduce ELF_INITFINI for all architectures
Florian Weimer
fweimer@redhat.com
Tue Jul 3 09:59:00 GMT 2018
On 06/23/2018 11:45 PM, Florian Weimer wrote:
> This supersedes the init_array sysdeps directory. It allows us to
> check for ELF_INITFINI in both C and assembler code, and skip DT_INIT
> and DT_FINI processing completely on RISC-V.
>
> A new header file is needed because <dl-machine.h> is incompatible
> with assembler code. <sysdep.h> is compatible with assembler code,
> but it cannot be included in all assembler files because on some
> architectures, it redefines register names, and some assembler files
> conflict with that.
>
> 2018-06-23 Florian Weimer <fweimer@redhat.com>
>
> Introduce ELF_INITFINI, set everywhere except on RISC-V.
> * sysdeps/init_array/crti.S: Move to ...
> * sysdepes/generic/crti.S: here. Report an error if ELF_INITFINI.
> * sysdeps/init_array/crtn.S: Move to ...
> * sysdeps/generic/crtn.S: here. Report an error if ELF_INITFINI.
> * csu/elf-init.c: Check ELF_INITFINI instead of NO_INITFINI.
> * gmon/gmon-start.c [!ELF_INITFINI] (GMON_START_ARRAY_SECTION):
> Define.
> * elf/dl-fini.c (_dl_fini): Check for ELF_INITFINI before using
> DT_FINI.
> * elf/dl-init.c (call_init): Check for ELF_INITFINI before using
> DT_INIT.
> * nptl/pt-crti.S [ELF_INITFINI]: Use .init_array instead of
> PREINIT_FUNCTION.
> * sysdeps/generic/platform-params.h: New file.
> * sysdeps/init_array/elf-init.c: Remove file.
> * sysdeps/init_array/gmon-start.c: Likewise.
> * sysdeps/init_array/pt-crti.S: Likewise.
> * sysdeps/riscv/Implies (init_array): Remove.
> * sysdeps/riscv/platform-params.h: New file.
The ChangeLog rewriter corrupted the previous patch. I'm attaching a
corrected version.
Florian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: elf_initfini.patch
Type: text/x-patch
Size: 14628 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20180703/477ebf25/attachment.bin>
More information about the Libc-alpha
mailing list