[coreboot-gerrit] Patch set updated for coreboot: e30eb16 ARM: Tell the linker memset and memcpy are functions.

Gabe Black (gabeblack@chromium.org) gerrit at coreboot.org
Wed Jul 10 05:07:19 CEST 2013


Gabe Black (gabeblack at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3672

-gerrit

commit e30eb162212e90e5ad6fc9f094ee56b0388d702e
Author: Gabe Black <gabeblack at google.com>
Date:   Fri Jun 14 15:53:23 2013 -0700

    ARM: Tell the linker memset and memcpy are functions.
    
    The memset and memcpy functions are assembled as ARM code, likely because
    that's the default of the assembler. Without special annotation, the assembler
    and linker don't know that those symbols are functions which need special
    handling so that ARM/thumb issues are handled properly. This change adds that
    annotation which gets those functions working in Coreboot which is compiled as
    thumb. Libpayload and depthcharge are compiled as ARM so they don't *need* the
    annotation since it just works out in ARM mode, but it's the safe thing to do
    in case we change that in the future.
    
    We should explicitly select ARM vs. thumb when assembling assembly files to be
    consistent across builds and toolchains.
    
    Change-Id: I814b137064cf46ae9e2744ff6c223b695dc1ef01
    Signed-off-by: Gabe Black <gabeblack at chromium.org>
---
 payloads/libpayload/arch/armv7/memcpy.S | 1 +
 payloads/libpayload/arch/armv7/memset.S | 1 +
 src/arch/armv7/memcpy.S                 | 1 +
 src/arch/armv7/memset.S                 | 1 +
 4 files changed, 4 insertions(+)

diff --git a/payloads/libpayload/arch/armv7/memcpy.S b/payloads/libpayload/arch/armv7/memcpy.S
index 549320c..e68b28f 100644
--- a/payloads/libpayload/arch/armv7/memcpy.S
+++ b/payloads/libpayload/arch/armv7/memcpy.S
@@ -57,6 +57,7 @@
 
 /* Prototype: void *memcpy(void *dest, const void *src, size_t n); */
 
+.type memcpy, function
 .globl memcpy
 memcpy:
 
diff --git a/payloads/libpayload/arch/armv7/memset.S b/payloads/libpayload/arch/armv7/memset.S
index 4ff4c3c..aa4f57a 100644
--- a/payloads/libpayload/arch/armv7/memset.S
+++ b/payloads/libpayload/arch/armv7/memset.S
@@ -27,6 +27,7 @@
  * memset again.
  */
 
+.type memset, function
 .globl memset
 memset:
 	ands	r3, r0, #3		@ 1 unaligned?
diff --git a/src/arch/armv7/memcpy.S b/src/arch/armv7/memcpy.S
index f04113f..921fc2a 100644
--- a/src/arch/armv7/memcpy.S
+++ b/src/arch/armv7/memcpy.S
@@ -57,6 +57,7 @@
 
 /* Prototype: void *memcpy(void *dest, const void *src, size_t n); */
 
+.type memcpy, function
 .globl memcpy
 memcpy:
 
diff --git a/src/arch/armv7/memset.S b/src/arch/armv7/memset.S
index 3ea2721..a3cc947 100644
--- a/src/arch/armv7/memset.S
+++ b/src/arch/armv7/memset.S
@@ -27,6 +27,7 @@
  * memset again.
  */
 
+.type memset, function
 .globl memset
 memset:
 	ands	r3, r0, #3		@ 1 unaligned?



More information about the coreboot-gerrit mailing list