Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Sep 2013 20:29:00 +0100
From:      Andrew Turner <andrew@fubar.geek.nz>
To:        Nathan Whitehorn <nwhitehorn@freebsd.org>
Cc:        svn-src-head@freebsd.org, Baptiste Daroussin <bapt@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org
Subject:   Re: svn commit: r255457 - head/usr.sbin/pkg
Message-ID:  <20130912202900.4eb17e6f@bender.Home>
In-Reply-To: <522FE3A2.2090405@freebsd.org>
References:  <201309102056.r8AKu1rQ000442@svn.freebsd.org> <522FE3A2.2090405@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--MP_/NDatlV/4QluxpO6avFylBzL
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On Tue, 10 Sep 2013 22:29:38 -0500
Nathan Whitehorn <nwhitehorn@freebsd.org> wrote:

> On 09/10/13 15:56, Baptiste Daroussin wrote:
> > Author: bapt
> > Date: Tue Sep 10 20:56:01 2013
> > New Revision: 255457
> > URL: http://svnweb.freebsd.org/changeset/base/255457
> >
> > Log:
> >    Add support to detect arm vs armv6
> >    
> >    There are two different versions of the ARM ABI depending on the
> >    TARGET_ARCH. As these are sligntly different a package built for
> >    one may not work on another. We need to detect which one we are
> > on by parsing the .ARM.attributes section.
> >    
> >    This will only work on the ARM EABI as this section is part of
> > the ABI definition. As armv6 only supports the ARM EABI this is not
> > a problem for the oabi.
> >    
> >    Older versions of libelf in FreeBSD fail to read the
> >    .ARM.attributes section needed. As armv6 is unsupported on these
> >    versions we can assume we are running on arm.
> >    
> 
> Picking a random commit: I don't suppose we can just use MACHINE_ARCH 
> for these identifiers? It encapsulates everything needed for
> compatibility. -Nathan
> 
> 

I have the attached patch to add a MACHINE_ARCH elf note. It would
remove the need to parse the .ARM.attributes section. NetBSD is doing
something similar to the patch where it appears they have
a .note.netbsd.march section.

Andrew
--MP_/NDatlV/4QluxpO6avFylBzL
Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=machine_arch_note.diff

Index: lib/csu/common/crtbrand.c
===================================================================
--- lib/csu/common/crtbrand.c	(revision 252514)
+++ lib/csu/common/crtbrand.c	(working copy)
@@ -64,3 +64,17 @@
 	.name = NOTE_FREEBSD_VENDOR,
 	.desc = __FreeBSD_version
 };
+
+static const struct {
+	int32_t	namesz;
+	int32_t	descsz;
+	int32_t	type;
+	char	name[sizeof(NOTE_FREEBSD_VENDOR)];
+	char	desc[sizeof(MACHINE_ARCH)];
+} archtag __attribute__ ((section (NOTE_SECTION), aligned(4))) __used = {
+	.namesz = sizeof(NOTE_FREEBSD_VENDOR),
+	.descsz = sizeof(MACHINE_ARCH),
+	.type = ARCH_NOTETYPE,
+	.name = NOTE_FREEBSD_VENDOR,
+	.desc = MACHINE_ARCH
+};
Index: lib/csu/common/notes.h
===================================================================
--- lib/csu/common/notes.h	(revision 252514)
+++ lib/csu/common/notes.h	(working copy)
@@ -34,5 +34,6 @@
 
 #define ABI_NOTETYPE		1
 #define	CRT_NOINIT_NOTETYPE	2
+#define	ARCH_NOTETYPE		3
 
 #endif

--MP_/NDatlV/4QluxpO6avFylBzL--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130912202900.4eb17e6f>