[PATCH] ELF: Updated comments for ET_EXEC and ET_DYN

Fangrui Song i@maskray.me
Sat May 30 00:59:38 GMT 2020


Does https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=d871d478061f10b0879c688e2fa941407e9137aa
start to set DF_1_PIE on non-Solaris platforms (e.g. Linux) as well?

I guess previous versions of binutils don't set the flag.

This flag makes sense to me, because it makes the distinction of
executable/shared object for ET_DYN.

On Tue, May 26, 2020 at 10:45 AM Fangrui Song <i@maskray.me> wrote:
>
> Looks good. Ali in the generic-abi proposed a more generic form:
>
> #define ET_EXEC 2 /* Position-dependent object */
> #define ET_DYN 3 /* Position-independent object */
>
>
> I just filed https://sourceware.org/bugzilla/show_bug.cgi?id=26047 We
> may consider disallowing ET_EXEC as linker input.
> Happy to know if there are legitimate cases, though.
>
> On Mon, May 25, 2020 at 11:28 AM H.J. Lu via Binutils
> <binutils@sourceware.org> wrote:
> >
> > include/elf/common.h has
> >
> >  #define ET_EXEC         2       /* Executable file */
> >  #define ET_DYN          3       /* Shared object file */
> >
> > These predate PIE:
> >
> > https://groups.google.com/forum/#!topic/generic-abi/mBKlSNldFW4
> >
> > Updated comments to
> >
> >  #define ET_EXEC         2       /* Position-dependent executable file */
> >  #define ET_DYN          3       /* Position-independent executable or
> >                                     shared object file */
> >
> >         * elf/common.h: Update comments for ET_EXEC and ET_DYN.
> > ---
> >  include/ChangeLog    | 4 ++++
> >  include/elf/common.h | 5 +++--
> >  2 files changed, 7 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/ChangeLog b/include/ChangeLog
> > index c309780544..53f50e513f 100644
> > --- a/include/ChangeLog
> > +++ b/include/ChangeLog
> > @@ -1,3 +1,7 @@
> > +2020-05-25  H.J. Lu  <hongjiu.lu@intel.com>
> > +
> > +       * elf/common.h: Update comments for ET_EXEC and ET_DYN.
> > +
> >  2020-05-20  Nelson Chu  <nelson.chu@sifive.com>
> >
> >         * opcode/riscv.h: Include "bfd.h" to support bfd_boolean.
> > diff --git a/include/elf/common.h b/include/elf/common.h
> > index 26e6fbc8e6..4d94c4fd5b 100644
> > --- a/include/elf/common.h
> > +++ b/include/elf/common.h
> > @@ -91,8 +91,9 @@
> >
> >  #define ET_NONE                0       /* No file type */
> >  #define ET_REL         1       /* Relocatable file */
> > -#define ET_EXEC                2       /* Executable file */
> > -#define ET_DYN         3       /* Shared object file */
> > +#define ET_EXEC                2       /* Position-dependent executable file */
> > +#define ET_DYN         3       /* Position-independent executable or
> > +                                  shared object file */
> >  #define ET_CORE                4       /* Core file */
> >  #define ET_LOOS                0xFE00  /* Operating system-specific */
> >  #define ET_HIOS                0xFEFF  /* Operating system-specific */
> > --
> > 2.26.2
> >


More information about the Binutils mailing list