Skip to contentSkip to conversation

ARM hf support

PATCH Applied Khem Raj 2 participants 5 messages May 21, 2012 – May 24, 2012

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

cover ARM hf support

This patchset adds the newly added hard float convention for naming the dynamic linker. We have a tune feature to denote hf calling convention already therefore this patch uses that feature to decide on configuring the toolchain to be soft float or hard-float call conventions by default.

The following changes since commit e6333825c3482a559a0c0499e17f8f48d3042ddf:

tune-mips64.inc: Add new tune file for mips64 big-endian (2012-05-20 20:24:37 -0700)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib kraj/armhf
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/armhf

Khem Raj (3):
gcc-4.7: Add knowledge about arm hf dynamic loader
eglibc: Add ARM hf dynamic linker support
gcc: Grok for callconvention-hard to enable hard float

 .../eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch  |   28 ++
 .../eglibc/eglibc-2.15/ldso_arm_hf_support.patch   |  338 ++++++++++++++++++++
 meta/recipes-core/eglibc/eglibc_2.15.bb            |    4 +-
 meta/recipes-devtools/gcc/gcc-4.7.inc              |    1 +
 .../gcc/gcc-4.7/arm-hard-float-loader.patch        |   48 +++
 meta/recipes-devtools/gcc/gcc-common.inc           |    2 +
 6 files changed, 420 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.7/arm-hard-float-loader.patch
Signature · 1 line
1.7.5.4
author
#1 lore raw

PATCH 1/3 gcc-4.7: Add knowledge about arm hf dynamic loader

---
 meta/recipes-devtools/gcc/gcc-4.7.inc              |    1 +
 .../gcc/gcc-4.7/arm-hard-float-loader.patch        |   48 ++++++++++++++++++++
 2 files changed, 49 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.7/arm-hard-float-loader.patch
meta/recipes-devtools/gcc/gcc-4.7.inc +1 -0
index efd166c..0321776 100644
@@ -65,6 +65,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \
 	   file://libgcc-sjlj-check.patch \
 	   file://cpp-honor-sysroot.patch \
 	   file://mips64-default-n64.patch \
+	   file://arm-hard-float-loader.patch \
 	  "
 
 S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/${BRANCH}"
meta/recipes-devtools/gcc/gcc-4.7/arm-hard-float-loader.patch new file +48 -0

48 lines not on this page · raw message

Signature · 1 line
1.7.5.4
author
#2 lore raw

PATCH 2/3 eglibc: Add ARM hf dynamic linker support

The work is done in glibc upstream we backport
the relevant patches

---
 .../eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch  |   28 ++
 .../eglibc/eglibc-2.15/ldso_arm_hf_support.patch   |  338 ++++++++++++++++++++
 meta/recipes-core/eglibc/eglibc_2.15.bb            |    4 +-
 3 files changed, 369 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch
meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch new file +28 -0
new file mode 100644
index 0000000..0f95c2f
@@ -0,0 +1,28 @@
+From: Carlos O'Donell <[email protected]>
+Date: Mon, 7 May 2012 20:04:41 +0000 (-0400)
+Subject: ARM: Define HAVE_ARM_PCS_VFP in config.h.
+X-Git-Url: http://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=6a43ec980c5a0500149ef37d4854eac0e270da6f;hp=05c2c9618f583ea4acd69b3fe5ae2a2922dd2ddc
+
+ARM: Define HAVE_ARM_PCS_VFP in config.h.
+
+If the compiler and flags would select the hard-float ABI
+then the ARM configure fragment will set HAVE_ARM_PCS_VFP.
+This is later used by the ARM shlib-versions to select
+the appropriately named dynamic linker.
+---
+
+Upstream-Status: Backport
+-Khem
+
+Index: libc/config.h.in
+===================================================================
+--- libc.orig/config.h.in	2012-01-04 22:06:28.000000000 -0800
++++ libc/config.h.in	2012-05-08 11:25:56.581079069 -0700
+@@ -233,4 +233,7 @@
+ 
+ #define HAVE_REGEX 1
+ 
++/* The ARM hard-float ABI is being used.  */
++#undef HAVE_ARM_PCS_VFP
++
+ #endif
meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch new file +338 -0

338 lines not on this page · raw message

meta/recipes-core/eglibc/eglibc_2.15.bb +3 -1
index fa92670..6dd846f 100644
@@ -3,7 +3,7 @@ require eglibc.inc
 SRCREV = "17386"
 
 DEPENDS += "gperf-native"
-PR = "r10"
+PR = "r11"
 PR_append = "+svnr${SRCPV}"
 
 EGLIBC_BRANCH="eglibc-2_15"
@@ -25,6 +25,8 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
            file://initgroups_keys.patch \
            file://use-localstatedir-for-vardbdir.patch \
            file://eglibc_fix_findidx_parameters.patch \
+           file://add_HAVE_ARM_PCS_VFP.patch \
+           file://ldso_arm_hf_support.patch \
           "
 LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
       file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
Signature · 1 line
1.7.5.4
author
#3 lore raw

PATCH 3/3 gcc: Grok for callconvention-hard to enable hard float

In reply to Khem Raj

If callconvention-hard is set then we build gcc defaulting to hard-float ABI

---
 meta/recipes-devtools/gcc/gcc-common.inc |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
meta/recipes-devtools/gcc/gcc-common.inc +2 -0
index f550aab..c479403 100644
@@ -10,6 +10,8 @@ inherit autotools gettext
 FILESDIR = "${@os.path.dirname(d.getVar('FILE',1))}/gcc-${PV}"
 
 def get_gcc_fpu_setting(bb, d):
+    if d.getVar('ARMPKGSFX_EABI', True) is "hf":
+        return "--with-float=hard"
     if d.getVar('TARGET_FPU', True) in [ 'soft' ]:
         return "--with-float=soft"
     if d.getVar('TARGET_FPU', True) in [ 'ppc-efd' ]:
Signature · 1 line
1.7.5.4
Applied
#4 lore raw
In reply to Khem Raj
Quoted 26 lines · Khem Raj

This patchset adds the newly added hard float convention for naming the dynamic linker. We have a tune feature to denote hf calling convention already therefore this patch uses that feature to decide on configuring the toolchain to be soft float or hard-float call conventions by default.

The following changes since commit e6333825c3482a559a0c0499e17f8f48d3042ddf:

   tune-mips64.inc: Add new tune file for mips64 big-endian (2012-05-20 20:24:37 -0700)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib kraj/armhf
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/armhf

Khem Raj (3):
gcc-4.7: Add knowledge about arm hf dynamic loader
eglibc: Add ARM hf dynamic linker support
gcc: Grok for callconvention-hard to enable hard float

  .../eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch  |   28 ++
  .../eglibc/eglibc-2.15/ldso_arm_hf_support.patch   |  338 ++++++++++++++++++++
  meta/recipes-core/eglibc/eglibc_2.15.bb            |    4 +-
  meta/recipes-devtools/gcc/gcc-4.7.inc              |    1 +
  .../gcc/gcc-4.7/arm-hard-float-loader.patch        |   48 +++
  meta/recipes-devtools/gcc/gcc-common.inc           |    2 +
  6 files changed, 420 insertions(+), 1 deletions(-)
Quoted 4 lines

create mode 100644 meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch create mode 100644 meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch create mode 100644 meta/recipes-devtools/gcc/gcc-4.7/arm-hard-float-loader.patch

Merged into OE-Core

Thanks
Sau!