[patch] extending/completing brandelf's OS knowledge

Alexander Best alexbestms at wwu.de
Sat Jan 23 14:38:11 UTC 2010


oh. i thought brandelf's purpose was to adjust an executable's OS ABI on a
general basis. an example would be having solaris executables with the OS ABI
set to 0. although freebsd won't support running these binaries brandelf could
be used to correct the OS ABI value which might come in handy if you're using
freebsd for backup purposes e.g.

or is this purpose covered by a different application in the base dir?

cheers.
alex

Kostik Belousov schrieb am 2010-01-23:
> On Sat, Jan 23, 2010 at 01:07:44PM +0100, Alexander Best wrote:
> > patch is pretty self explanatory i guess. brandelf should now be
> > able to
> > handle all OSes defined in the current SCO elf specs (26.10.2009).

> > cheers.
> > alex

> > Index: usr.bin/brandelf/brandelf.1
> > ===================================================================
> > --- usr.bin/brandelf/brandelf.1       (revision 202848)
> > +++ usr.bin/brandelf/brandelf.1       (working copy)
> > @@ -27,7 +27,7 @@
> >  .\"
> >  .\" $FreeBSD$
> >  .\"
> > -.Dd February 6, 1997
> > +.Dd January 23, 2010
> >  .Dt BRANDELF 1
> >  .Os
> >  .Sh NAME
> > @@ -62,10 +62,25 @@
> >  .Ar string
> >  ABI type.
> >  Currently supported ABIs are
> > +.Dq Li SVR4 ,
> > +.Dq Li HPUX ,
> > +.Dq Li NetBSD ,
> > +.Dq Li Linux ,
> > +.Dq Li Hurd ,
> > +.Dq Li 86Open ,
> > +.Dq Li Solaris ,
> > +.Dq Li AIX ,
> > +.Dq Li IRIX ,
> >  .Dq Li FreeBSD ,
> > -.Dq Li Linux ,
> > +.Dq Li TRU64 ,
> > +.Dq Li Modesto ,
> > +.Dq Li OpenBSD ,
> > +.Dq Li OpenVMS ,
> > +.Dq Li HPNSK ,
> > +.Dq Li AROS ,
> > +.Dq Li FenixOS
> >  and
> > -.Dq Li SVR4 .
> > +.Dq Li ARM .
> >  .It Ar file
> >  If
> >  .Fl t Ar string
> > @@ -95,7 +110,7 @@
> >  .Rs
> >  .%A The Santa Cruz Operation, Inc.
> >  .%T System V Application Binary Interface
> > -.%D April 29, 1998 (DRAFT)
> > +.%D October 26, 2009 (DRAFT)
> >  .%U http://www.sco.com/developer/devspecs/
> >  .Re
> >  .Sh HISTORY
> > Index: usr.bin/brandelf/brandelf.c
> > ===================================================================
> > --- usr.bin/brandelf/brandelf.c       (revision 202848)
> > +++ usr.bin/brandelf/brandelf.c       (working copy)
> > @@ -49,12 +49,25 @@
> >       const char *str;
> >       int value;
> >  };
> > -/* XXX - any more types? */
> >  static struct ELFtypes elftypes[] = {
> > -     { "FreeBSD",    ELFOSABI_FREEBSD },
> > +     { "SVR4",       ELFOSABI_NONE },
> > +     { "HPUX",       ELFOSABI_HPUX },
> > +     { "NetBSD",     ELFOSABI_NETBSD },
> >       { "Linux",      ELFOSABI_LINUX },
> > +     { "Hurd",       ELFOSABI_HURD },
> > +     { "86Open",     ELFOSABI_86OPEN },
> >       { "Solaris",    ELFOSABI_SOLARIS },
> > -     { "SVR4",       ELFOSABI_SYSV }
> > +     { "AIX",        ELFOSABI_AIX },
> > +     { "IRIX",       ELFOSABI_IRIX },
> > +     { "FreeBSD",    ELFOSABI_FREEBSD },
> > +     { "TRU64",      ELFOSABI_TRU64 },
> > +     { "Modesto",    ELFOSABI_MODESTO },
> > +     { "OpenBSD",    ELFOSABI_OPENBSD },
> > +     { "OpenVMS",    ELFOSABI_OPENVMS },
> > +     { "HPNSK",      ELFOSABI_NSK },
> > +     { "AROS",       ELFOSABI_AROS },
> > +     { "FenixOS",    ELFOSABI_FENIXOS },
> > +     { "ARM",        ELFOSABI_ARM }
> >  };

> >  int
> > Index: sys/sys/elf_common.h
> > ===================================================================
> > --- sys/sys/elf_common.h      (revision 202848)
> > +++ sys/sys/elf_common.h      (working copy)
> > @@ -113,6 +113,7 @@
> >  #define      ELFOSABI_OPENVMS        13      /* Open VMS */
> >  #define      ELFOSABI_NSK            14      /* HP Non-Stop Kernel
> >  */
> >  #define      ELFOSABI_AROS           15      /* Amiga Research OS
> >  */
> > +#define      ELFOSABI_FENIXOS        16      /* FenixOS */
> >  #define      ELFOSABI_ARM            97      /* ARM */
> >  #define      ELFOSABI_STANDALONE     255     /* Standalone
> >  (embedded) application */


> This does not make a sense. brandelf(1) is (was) used as a way to
> specify
> hint for the FreeBSD kernel under which ABI emulation the binary
> should
> be activated.

> We do not support, and I believe never will, ABIs added in the patch.


More information about the freebsd-hackers mailing list