Why are arm libs branded as SYSV?

YAMAMOTO Shigeru shigeru at os-hackers.jp
Tue Oct 7 16:24:35 UTC 2014


Hi,

>>>>> "Ronald" == Ronald Klop <ronald-lists at klop.ws> writes:
> On my ARM Sheevaplug:
> # file /usr/local/lib/libpcre.so.3
> /usr/local/lib/libpcre.so.3: ELF 32-bit LSB shared object, ARM,
> EABI5 version 1 (SYSV), dynamically linked, stripped
> On my amd64 computer: file /usr/local/lib/libpcre.so.3
> /usr/local/lib/libpcre.so.3: ELF 64-bit LSB shared object, x86-64,
> version 1 (FreeBSD), dynamically linked, stripped
> Because of this I can not run ldd on a shared library on my ARM
> system. 
> # ldd -a /usr/local/lib/libpcre.so.3 ldd:
> /usr/local/lib/libpcre.so.3: not a FreeBSD ELF shared object

I modify src for RaspberryPi.

# uname -a
FreeBSD rpi.devel.os-hackers.jp 11.0-CURRENT FreeBSD 11.0-CURRENT #0
2b4736f34c78 (shigeru_raspberry_pi) tip: Sun Oct  5 12:18:07 JST 2014
root at nemesis.os-hackers.jp:/root/rpi/build/work/obj/arm.armv6/root/rpi/build/work/src.hg/sys/RPI-B-VIMAGE  arm
# ldd /usr/local/lib/libpcre.so.3
/usr/local/lib/libpcre.so.3:
        libthr.so.3 => /lib/libthr.so.3 (0x20297000)
        libc.so.7 => /lib/libc.so.7 (0x20100000)


I change src follows,

- 1. copy contrib/binutils/bfd/elf32-arm.c to gnu/usr.bin/binutils/libbfd/elf32-arm.c
- 2. change gnu/usr.bin/binutils/libbfd/elf32-arm.c by following diff,

diff -u contrib/binutils/bfd/elf32-arm.c
- gnu/usr.bin/binutils/libbfd/elf32-arm.c
--- contrib/binutils/bfd/elf32-arm.c    2014-10-05 03:00:54.100351377 +0900
+++ gnu/usr.bin/binutils/libbfd/elf32-arm.c     2014-10-05
- 03:00:54.147901348 +0900
@@ -9343,7 +9343,8 @@

   i_ehdrp = elf_elfheader (abfd);

-  if (EF_ARM_EABI_VERSION (i_ehdrp->e_flags) == EF_ARM_EABI_UNKNOWN)
+  if (EF_ARM_EABI_VERSION (i_ehdrp->e_flags) == EF_ARM_EABI_UNKNOWN
+  || EF_ARM_EABI_VERSION (i_ehdrp->e_flags) == EF_ARM_EABI_VER5)
     i_ehdrp->e_ident[EI_OSABI] = ARM_ELF_OS_ABI_VERSION;
   else
     i_ehdrp->e_ident[EI_OSABI] = 0;

---
YAMAMOTO Shigeru <shigeru at os-hackers.jp>


More information about the freebsd-arm mailing list