tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: missing ELF-related constants



On Jan 29, 2013, at 4:17 PM, enh wrote:

> i just switched bionic (the Android C library) over to the NetBSD 
> <sys/exec_elf.h> from the existing mishmash of OpenBSD files and Linux kernel 
> header files.
> 
> the NetBSD headers appear to be a superset, but they're still missing some 
> constants that are in the specification...
> 
> a couple of architecture-independent constants are missing from exec_elf.h: 
> DT_PREINIT_ARRAY, DT_PREINIT_ARRAYSZ (see figure 5-10 of 
> http://www.sco.com/developers/gabi/latest/ch5.dynamic.html#dynamic_section)
> 
> three MIPS-specific constants are missing from elf_machdep.h: 
> R_MIPS_JUMP_SLOT, DT_MIPS_PLTGOT, DT_MIPS_RWPLT (see 
> http://sourceware.org/ml/binutils/2008-07/msg00008.html).
> 
> these constants can all be found in the (BSD licensed) bionic/linker/linker.h 
> file:
> 
> #define R_MIPS_JUMP_SLOT       127

Hmmm.  Linux switched away from ABICALLS?

> #define DT_MIPS_PLTGOT         0x70000032

That looks reasonable.

> #define DT_MIPS_RWPLT          0x70000034

Why would you ever want a writable PLT?  I moved ppc from their PLT in bss to 
the readonly secure-plt.  A writeable PLT is just a bad idea which is why 
powerpc moved away from it.

> #define DT_PREINIT_ARRAY   32
> #define DT_PREINIT_ARRAYSZ 33

Those are OK too.


Home | Main Index | Thread Index | Old Index