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