24 lines
945 B
Diff
24 lines
945 B
Diff
Encode arm EABI ( hard/soft ) calling convention in ELF header
|
|
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
Upstream-Status: Pending
|
|
Index: go/src/cmd/link/internal/ld/elf.go
|
|
===================================================================
|
|
--- go.orig/src/cmd/link/internal/ld/elf.go
|
|
+++ go/src/cmd/link/internal/ld/elf.go
|
|
@@ -827,7 +827,13 @@
|
|
// 32-bit architectures
|
|
case '5':
|
|
// we use EABI on both linux/arm and freebsd/arm.
|
|
- if HEADTYPE == obj.Hlinux || HEADTYPE == obj.Hfreebsd {
|
|
+ if HEADTYPE == obj.Hlinux {
|
|
+ if Ctxt.Goarm == 7 {
|
|
+ ehdr.flags = 0x5000402 // has entry point, Version5 EABI, hard float
|
|
+ } else {
|
|
+ ehdr.flags = 0x5000202 // has entry point, Version5 EABI, soft float
|
|
+ }
|
|
+ } else if HEADTYPE == obj.Hfreebsd {
|
|
// We set a value here that makes no indication of which
|
|
// float ABI the object uses, because this is information
|
|
// used by the dynamic linker to compare executables and
|