mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-27 12:15:39 +03:00 
			
		
		
		
	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 newer architectures. 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. <elf-initfini.h> is replicated for legacy architectures which need DT_INIT/DT_FINI support. New architectures follow the generic default and disable it.
		
			
				
	
	
		
			20 lines
		
	
	
		
			676 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			676 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /* Dummy crtn file.
 | |
| 
 | |
|    In this configuration, crti.o and crtn.o are both empty because the
 | |
|    .init_array/.fini_array sections are used exclusively.
 | |
| 
 | |
|    Older ports cannot use this because even if the linker used to
 | |
|    build libc itself has .init_array support, we don't want to produce
 | |
|    a crt[in].o that presume a linker that new will be used to link
 | |
|    other things later.
 | |
| 
 | |
|    But new configurations without compatibility concerns for
 | |
|    toolchains without .init_array support can use this to avoid the
 | |
|    superfluous .init and .fini boilerplate code.  */
 | |
| 
 | |
| #include <elf-initfini.h>
 | |
| 
 | |
| #if ELF_INITFINI
 | |
| # error Cannot use genetric crtn.S because it lacks _fini code
 | |
| #endif
 |