bin/143699: [patch] extend brandelf's OS knowledge
Alexander Best
alexbestms at wwu.de
Tue Feb 9 14:00:14 UTC 2010
>Number: 143699
>Category: bin
>Synopsis: [patch] extend brandelf's OS knowledge
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Tue Feb 09 14:00:08 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator: Alexander Best
>Release: 9.0-CURRENT
>Organization:
>Environment:
FreeBSD otaku 9.0-CURRENT FreeBSD 9.0-CURRENT #14 r203556M: Sun Feb 7 16:32:35 CET 2010 root at otaku:/usr/obj/usr/src/sys/ARUNDEL amd64
>Description:
this patch adds extra functionality to brandelf so it's able to brand all elf types defined by POSIX.1-2008.
the patchset has been discussed in this thread:
http://lists.freebsd.org/pipermail/freebsd-hackers/2010-January/030470.html
some people liked the idea of brandelf being extended this way, while others disliked the idea due to the fact that freebsd itself isn't able to run any elf binaries apart from FreeBSD(9) Linux(3) Solaris(6) SVR4(0).
personally i didn't see the connection between brand'elfing binaries and running them. brandelf's purpose also includes simply branding binaries without running them. think of a bunch of NetBSD/OpenBSD/... files which should be backup'ed under FreeBSD, but are brandelf'ed improperly. in this case the patch would come in handy.
cheers.
alex
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
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 */
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list