Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 08 Oct 2014 01:24:23 +0900 (JST)
From:      YAMAMOTO Shigeru <shigeru@os-hackers.jp>
To:        ronald-lists@klop.ws
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Why are arm libs branded as SYSV?
Message-ID:  <20141008.012423.1241777167968112759.shigeru@os-hackers.jp>
In-Reply-To: <op.xnc7szg9kndu52@ronaldradial.radialsg.local>
References:  <op.xnc7szg9kndu52@ronaldradial.radialsg.local>

next in thread | previous in thread | raw e-mail | index | archive | help

Hi,

>>>>> "Ronald" == Ronald Klop <ronald-lists@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@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@os-hackers.jp>



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