[patch] extending/completing brandelf's OS knowledge

Kostik Belousov kostikbel at gmail.com
Sat Jan 23 15:08:22 UTC 2010


On Sat, Jan 23, 2010 at 03:38:08PM +0100, Alexander Best wrote:
> 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?
I do not see a need for such rudimentary ELF editor in the base at all.
Ports do have "hacker tools".

After the work of dchagin@/bz@, brandelf is needed only for the corner
cases, if at all.

> 
> 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20100123/c1eac8fa/attachment.pgp


More information about the freebsd-hackers mailing list