Re: [PATCH 1/2] Define the EF_AS_NO_RANDOM e_flag bit

From: Samium Gromoff
Date: Tue Jan 23 2007 - 16:07:05 EST


At Tue, 23 Jan 2007 15:50:18 -0500,
Jakub Jelinek wrote:
>
> On Tue, Jan 23, 2007 at 11:28:13PM +0300, Samium Gromoff wrote:
> > Author: Samium Gromoff <deepfire@xxxxxxxxxxxxxxxxxxx>
> > Date: Tue Jan 23 22:31:13 2007 +0300
> >
> > Define the ELF binary header flag EF_AS_NO_RANDOM
> >
> > EF_AS_NO_RANDOM should mean that the binary requests to not apply
> > randomisation to address spaces of its processes.
> >
> > diff --git a/include/linux/elf.h b/include/linux/elf.h
> > index 60713e6..58ebb47 100644
> > --- a/include/linux/elf.h
> > +++ b/include/linux/elf.h
> > @@ -172,6 +172,8 @@ typedef struct elf64_sym {
> >
> > #define EI_NIDENT 16
> >
> > +#define EF_AS_NO_RANDOM 0x1 /* do not randomise the address space */
> > +
>
> You can't make up EF_* flags this way, they are arch specific, the LSB bit
> (but many others too) are already used on many architectures.
> E.g.:
> elf/mt.h:#define EF_MT_CPU_MRISC 0x00000001 /* default */
> elf/sparc.h:#define EF_SPARCV9_PSO 0x1 /* partial store ordering */
> elf/bfin.h:#define EF_BFIN_PIC 0x00000001 /* -fpic */
> elf/alpha.h:#define EF_ALPHA_32BIT 0x00000001
> elf/mips.h:#define EF_MIPS_NOREORDER 0x00000001
> elf/m68k.h:#define EF_M68K_CF_ISA_A_NODIV 0x01 /* ISA A except for div */
> elf/sh.h:#define EF_SH1 1
> elf/arm.h:#define EF_ARM_RELEXEC 0x01
> elf/cris.h:#define EF_CRIS_UNDERSCORE 0x00000001
> elf/ia64.h:#define EF_IA_64_TRAPNIL (1 << 0) /* Trap NIL pointer dereferences. */
> elf/vax.h:#define EF_VAX_NONPIC 0x0001 /* Object contains non-PIC code */
> elf/iq2000.h:#define EF_IQ2000_CPU_IQ2000 0x00000001 /* default */
> elf/frv.h:#define EF_FRV_GPR_32 0x00000001 /* -mgpr-32 */
> to name just a few.

Should we introduce per-arch asm/elf.h files to hold the relevant flag definitions then?

> Jakub

regards, Samium Gromoff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/