All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Menzel <paulepanter@users.sourceforge.net>
To: openembedded-devel@lists.openembedded.org
Subject: [PATCH] libcap: Append `-fPIC` to `CFLAGS` to fix compilation on newer binutils/ld. (was: [gcc 4.4.2] [libcap, vdr] relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC)
Date: Sat, 16 Jan 2010 14:59:47 +0100	[thread overview]
Message-ID: <1263650387.5298.80.camel@mattotaupa.wohnung.familie-menzel.net> (raw)
In-Reply-To: <1263292840.20557.80.camel@mattotaupa.wohnung.familie-menzel.net>


[-- Attachment #1.1: Type: text/plain, Size: 4807 bytes --]

Dear OE hackers,


Am Dienstag, den 12.01.2010, 11:40 +0100 schrieb Paul Menzel:
> sorry for bothering you with this. I am trying to reproduce the errors
> Henning has seen with g++ 4.4.2 [1] and therefore added the following
> lines to my `local.conf` for Ångström with BeagleBoard [2].
> 
> Am Montag, den 11.01.2010, 23:42 +0100 schrieb Paul Menzel:
> 
> […]
> 
> > Putting
> > 
> >         PREFERRED_VERSION_binutils               = "2.20"
> >         PREFERRED_VERSION_binutils-cross         = "2.20"
> >         PREFERRED_VERSION_binutils-cross-sdk     = "2.20"
> >         
> >         PREFERRED_VERSION_gcc                    = "4.4.2"
> >         PREFERRED_VERSION_gcc-cross              = "4.4.2"
> >         PREFERRED_VERSION_gcc-cross-sdk          = "4.4.2"
> >         PREFERRED_VERSION_gcc-cross-initial      = "4.4.2"
> >         PREFERRED_VERSION_gcc-cross-intermediate = "4.4.2"
> > 
> > in my `local.conf` and running `bitbake vdr` gave me an error in
> > `do_compile` for `libcap_1.10.bb`.
> > 
> >         arm-angstrom-linux-gnueabi-ld -soname libcap.so.1 -x -shared
> -o libcap.so.1.10 cap_alloc.o cap_proc.o cap_extint.o cap_flag.o
> cap_text.o cap_sys.o
> >         arm-angstrom-linux-gnueabi-ld: cap_text.o: relocation
> R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making
> a shared object; recompile with -fPIC
> 
> I do not get these errors if I use the standard versions defined for
> Ångström which is 4.1.1. Adding `-fPIC` to the flags as suggested in
> [3]
> solves the problem for me.
> 
> Does anyone know if GCC’s behavior was changed somehow?

according to Khem Raj this has to do with binutils/ld [2].

Please find the patch inlined and attached.


Thanks,

Paul

---
From c119072b0f13b674d705d3bc50150a252bf7c5d2 Mon Sep 17 00:00:00 2001
From: Paul Menzel <paulepanter@users.sourceforge.net>
Date: Sat, 16 Jan 2010 14:41:03 +0100
Subject: [PATCH] libcap: Append `-fPIC` to `CFLAGS` to fix compilation on newer binutils/ld.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Doing `bitbake libcap` with

        PREFERRED_VERSION_binutils               = "2.20"
        PREFERRED_VERSION_binutils-cross         = "2.20"
        PREFERRED_VERSION_binutils-cross-sdk     = "2.20"

        PREFERRED_VERSION_gcc                    = "4.4.2"
        PREFERRED_VERSION_gcc-cross              = "4.4.2"
        PREFERRED_VERSION_gcc-cross-sdk          = "4.4.2"
        PREFERRED_VERSION_gcc-cross-initial      = "4.4.2"
        PREFERRED_VERSION_gcc-cross-intermediate = "4.4.2"

in `local.conf` made `do_compile` error out with the following message [1].

        arm-angstrom-linux-gnueabi-ld -soname libcap.so.1 -x -shared -o libcap.so.1.10 cap_alloc.o cap_proc.o cap_extint.o cap_flag.o cap_text.o cap_sys.o
        arm-angstrom-linux-gnueabi-ld: cap_text.o: relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC

Khem Raj explained it the following way [2].

Am Mittwoch, den 13.01.2010, 02:27 -0800 schrieb Khem Raj:
> > I also get the same error which I did not get before with GCC 4.1.1.
>
> Older versions of binutils/ld can not detect MOVT/MOVW relocations which
> are absolute and cant be used in PIC code.
> hence even if the error was there it remained latent.

Therefore just append `-fPIC` to the CFLAGS and bump the PR variable.

The strange thing is still, that other distributions seem to have patched libcap to build with `-fPIC` long ago [3–5].

[1] http://lists.linuxtogo.org/pipermail/openembedded-devel/2010-January/016142.html
[2] http://lists.linuxtogo.org/pipermail/openembedded-devel/2010-January/016211.html
[3] http://www.linuxfromscratch.org/patches/downloads/libcap/libcap-1.10-fedora_fixes-1.patch
[4] http://frugalware.org/pipermail/frugalware-darcs/2005-May/000824.html
[5] http://cvs.fedoraproject.org/viewvc/rpms/libcap/F-7/libcap-1.10-fPIC.patch?revision=1.1&view=markup

Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
---
 recipes/libcap/libcap_1.10.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/recipes/libcap/libcap_1.10.bb b/recipes/libcap/libcap_1.10.bb
index 172acac..241529e 100644
--- a/recipes/libcap/libcap_1.10.bb
+++ b/recipes/libcap/libcap_1.10.bb
@@ -3,9 +3,9 @@ PRIORITY = "optional"
 SECTION = "libs"
 LICENSE = "GPL"
 DEPENDS = "bison-native flex-native"
-PR = "r1"
+PR = "r2"
 
-CFLAGS_append = " -I${S}/libcap/include"
+CFLAGS_append = " -I${S}/libcap/include -fPIC"
 
 SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/security/linux-privs/kernel-2.4/${PN}-${PV}.tar.bz2 \
 	   file://makenames.patch;patch=1 \
-- 
1.6.6

[-- Attachment #1.2: 0001-libcap-Append-fPIC-to-CFLAGS-to-fix-compilation-on-n.patch --]
[-- Type: text/x-patch, Size: 3027 bytes --]

From c119072b0f13b674d705d3bc50150a252bf7c5d2 Mon Sep 17 00:00:00 2001
From: Paul Menzel <paulepanter@users.sourceforge.net>
Date: Sat, 16 Jan 2010 14:41:03 +0100
Subject: [PATCH] libcap: Append `-fPIC` to `CFLAGS` to fix compilation on newer binutils/ld.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Doing `bitbake libcap` with

        PREFERRED_VERSION_binutils               = "2.20"
        PREFERRED_VERSION_binutils-cross         = "2.20"
        PREFERRED_VERSION_binutils-cross-sdk     = "2.20"

        PREFERRED_VERSION_gcc                    = "4.4.2"
        PREFERRED_VERSION_gcc-cross              = "4.4.2"
        PREFERRED_VERSION_gcc-cross-sdk          = "4.4.2"
        PREFERRED_VERSION_gcc-cross-initial      = "4.4.2"
        PREFERRED_VERSION_gcc-cross-intermediate = "4.4.2"

in `local.conf` made `do_compile` error out with the following message [1].

        arm-angstrom-linux-gnueabi-ld -soname libcap.so.1 -x -shared -o libcap.so.1.10 cap_alloc.o cap_proc.o cap_extint.o cap_flag.o cap_text.o cap_sys.o
        arm-angstrom-linux-gnueabi-ld: cap_text.o: relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC

Khem Raj explained it the following way [2].

Am Mittwoch, den 13.01.2010, 02:27 -0800 schrieb Khem Raj:
> > I also get the same error which I did not get before with GCC 4.1.1.
>
> Older versions of binutils/ld can not detect MOVT/MOVW relocations which
> are absolute and cant be used in PIC code.
> hence even if the error was there it remained latent.

Therefore just append `-fPIC` to the CFLAGS and bump the PR variable.

The strange thing is still, that other distributions seem to have patched libcap to build with `-fPIC` long ago [3–5].

[1] http://lists.linuxtogo.org/pipermail/openembedded-devel/2010-January/016142.html
[2] http://lists.linuxtogo.org/pipermail/openembedded-devel/2010-January/016211.html
[3] http://www.linuxfromscratch.org/patches/downloads/libcap/libcap-1.10-fedora_fixes-1.patch
[4] http://frugalware.org/pipermail/frugalware-darcs/2005-May/000824.html
[5] http://cvs.fedoraproject.org/viewvc/rpms/libcap/F-7/libcap-1.10-fPIC.patch?revision=1.1&view=markup

Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
---
 recipes/libcap/libcap_1.10.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/recipes/libcap/libcap_1.10.bb b/recipes/libcap/libcap_1.10.bb
index 172acac..241529e 100644
--- a/recipes/libcap/libcap_1.10.bb
+++ b/recipes/libcap/libcap_1.10.bb
@@ -3,9 +3,9 @@ PRIORITY = "optional"
 SECTION = "libs"
 LICENSE = "GPL"
 DEPENDS = "bison-native flex-native"
-PR = "r1"
+PR = "r2"
 
-CFLAGS_append = " -I${S}/libcap/include"
+CFLAGS_append = " -I${S}/libcap/include -fPIC"
 
 SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/security/linux-privs/kernel-2.4/${PN}-${PV}.tar.bz2 \
 	   file://makenames.patch;patch=1 \
-- 
1.6.6


[-- Attachment #2: Dies ist ein digital signierter Nachrichtenteil --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

  parent reply	other threads:[~2010-01-16 14:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-12 10:40 [gcc 4.4.2] [libcap, vdr] relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC Paul Menzel
2010-01-12 11:29 ` Frans Meulenbroeks
2010-01-12 11:47   ` Paul Menzel
2010-01-16 13:59 ` Paul Menzel [this message]
2010-01-19  9:55   ` [PATCH] libcap: Append `-fPIC` to `CFLAGS` to fix compilation on newer binutils/ld Paul Menzel
2010-01-21 22:20   ` [PATCH] libcap: Append `-fPIC` to `CFLAGS` to fix compilation on newer binutils/ld. (was: [gcc 4.4.2] [libcap, vdr] relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC) Phil Blundell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1263650387.5298.80.camel@mattotaupa.wohnung.familie-menzel.net \
    --to=paulepanter@users.sourceforge.net \
    --cc=openembedded-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.