[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