mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 06:32:44 +00:00 
			
		
		
		
	|  e2b1f9447c As IFUNC resolvers may call arbitrary functions though the PLT, they can only be called after the PLT has been populated. This is true of the `[[gnu::target_clones]]` attribute, which makes a call to `__cpu_indicator_init`, which is defined in `libgcc_s.so`, through the PLT. `do_plt_relocation` and `do_direct_relocation` are given a parameter that controls whether IFUNCs are immediately resolved. In the first pass, relocations pointing to IFUNCs are put on a worklist, while all other relocations are performed. Only after non-IFUNC relocations are done and the PLT is set up do we deal with these. | ||
|---|---|---|
| .. | ||
| Arch | ||
| AuxiliaryVector.h | ||
| CMakeLists.txt | ||
| Core.h | ||
| DynamicLinker.cpp | ||
| DynamicLinker.h | ||
| DynamicLoader.cpp | ||
| DynamicLoader.h | ||
| DynamicObject.cpp | ||
| DynamicObject.h | ||
| Hashes.h | ||
| Image.cpp | ||
| Image.h | ||
| Relocation.cpp | ||
| Relocation.h | ||
| Validation.cpp | ||
| Validation.h | ||