diff options
| author | Robert Yang <liezhi.yang@windriver.com> | 2012-03-27 17:37:17 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-03-27 13:26:37 +0100 |
| commit | 7b01671f54f70c28c98457058c51ffefcb07c0e8 (patch) | |
| tree | d52a7541f21a6858974a753e8293160bf94e3382 | |
| parent | c3c5e8933a0833f31f976aa69ee8d013fc0136ad (diff) | |
| download | poky-7b01671f54f70c28c98457058c51ffefcb07c0e8.tar.gz | |
nspr 4.8.9: failed to build on x86_64 board
nspr failed to build on x86_64 board(e.g., qemux86-64):
x86_64-poky-linux-gcc -m64 ... -m32 ...
...
fatal error: gnu/stubs-32.h: No such file or directory
This is because there are both '-m64' and '-m32' in gcc's options, and
the later one is used, but what we need is '-m64' since it is x86_64,
this is caused by an incorrect logic in configure.in, we should assume
that the pkg uses 64bit when target_cpu is x86_64 (it has two options:
--enable-n32 and --enable-64bit, both of them are not set by default),
we only can assume that the pkg uses 32bit when USE_N32 is set. But
what it did was that assumed 32bit when target_cpu was x86_64 unless
--enable-64bit was set, this seems unreasonable and caused the "gcc -m64
-m32" error.
Some had noticed this error before:
https://lists.yoctoproject.org/pipermail/poky/2011-May/005799.html
NOTE:
* Both fix configure and configure.in since we can't run the
"autoreconf" for nsrp, please see more explanation in
trickly-fix-build-on-x86_64.patch.
* Also fixed powerpc64, this is just fixed by conclusion since we don't
suport ppc64.
[YOCTO #2179]
(From OE-Core rev: 1d8fea3b9c9dd8f3e2b72ee8c8a9b834f4a3d729)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-support/nspr/files/fix-build-on-x86_64.patch | 51 | ||||
| -rw-r--r-- | meta/recipes-support/nspr/files/trickly-fix-build-on-x86_64.patch | 62 | ||||
| -rw-r--r-- | meta/recipes-support/nspr/nspr_4.8.9.bb | 4 |
3 files changed, 116 insertions, 1 deletions
diff --git a/meta/recipes-support/nspr/files/fix-build-on-x86_64.patch b/meta/recipes-support/nspr/files/fix-build-on-x86_64.patch new file mode 100644 index 0000000000..a6fa1ea607 --- /dev/null +++ b/meta/recipes-support/nspr/files/fix-build-on-x86_64.patch | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | Fix build failure on x86_64 | ||
| 2 | |||
| 3 | When the target_cpu is x86_64, we should assume that the pkg uses 64bit, | ||
| 4 | only if USE_N32 is set, we can assume that the pkg uses 32bit. It used a | ||
| 5 | opposite logic before. | ||
| 6 | |||
| 7 | Signed-off-by: Robert Yang <liezhi.yang@windriver.com> | ||
| 8 | |||
| 9 | Upstream-Status: Pending | ||
| 10 | --- | ||
| 11 | configure.in | 12 ++++++------ | ||
| 12 | 1 files changed, 6 insertions(+), 6 deletions(-) | ||
| 13 | |||
| 14 | diff --git a/configure.in b/configure.in | ||
| 15 | index 39c96a3..99a03ac 100644 | ||
| 16 | --- a/configure.in | ||
| 17 | +++ b/configure.in | ||
| 18 | @@ -1778,24 +1778,24 @@ tools are selected during the Xcode/Developer Tools installation.]) | ||
| 19 | PR_MD_ASFILES=os_Linux_ia64.s | ||
| 20 | ;; | ||
| 21 | x86_64) | ||
| 22 | - if test -n "$USE_64"; then | ||
| 23 | - PR_MD_ASFILES=os_Linux_x86_64.s | ||
| 24 | - else | ||
| 25 | + if test -n "$USE_N32"; then | ||
| 26 | AC_DEFINE(i386) | ||
| 27 | PR_MD_ASFILES=os_Linux_x86.s | ||
| 28 | CC="$CC -m32" | ||
| 29 | CXX="$CXX -m32" | ||
| 30 | + else | ||
| 31 | + PR_MD_ASFILES=os_Linux_x86_64.s | ||
| 32 | fi | ||
| 33 | ;; | ||
| 34 | ppc|powerpc) | ||
| 35 | PR_MD_ASFILES=os_Linux_ppc.s | ||
| 36 | ;; | ||
| 37 | powerpc64) | ||
| 38 | - if test -n "$USE_64"; then | ||
| 39 | + if test -n "$USE_N32"; then | ||
| 40 | + PR_MD_ASFILES=os_Linux_ppc.s | ||
| 41 | + else | ||
| 42 | CC="$CC -m64" | ||
| 43 | CXX="$CXX -m64" | ||
| 44 | - else | ||
| 45 | - PR_MD_ASFILES=os_Linux_ppc.s | ||
| 46 | fi | ||
| 47 | ;; | ||
| 48 | m68k) | ||
| 49 | -- | ||
| 50 | 1.7.1 | ||
| 51 | |||
diff --git a/meta/recipes-support/nspr/files/trickly-fix-build-on-x86_64.patch b/meta/recipes-support/nspr/files/trickly-fix-build-on-x86_64.patch new file mode 100644 index 0000000000..8ca51e4d1f --- /dev/null +++ b/meta/recipes-support/nspr/files/trickly-fix-build-on-x86_64.patch | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | trickily fix build failure on x86_64 | ||
| 2 | |||
| 3 | It seems that we can not run the 'autoreconf -f -i' for the nspr, I met | ||
| 4 | several strange problems while trying to do that, and the previous | ||
| 5 | author seemed had noticed this, so he wrote: | ||
| 6 | |||
| 7 | do_configure() { | ||
| 8 | oe_runconf | ||
| 9 | } | ||
| 10 | |||
| 11 | to avoid running the "autoreconf". But we must modify configure.in to | ||
| 12 | fix the build failure on x86_64, so both modify configure and | ||
| 13 | configure.in, once the "autoreconf" can work correctly, we can remove | ||
| 14 | this patch. | ||
| 15 | |||
| 16 | Signed-off-by: Robert Yang <liezhi.yang@windriver.com> | ||
| 17 | |||
| 18 | Upstream-Status: Inappropriate [configuration] | ||
| 19 | --- | ||
| 20 | configure | 12 ++++++------ | ||
| 21 | 1 files changed, 6 insertions(+), 6 deletions(-) | ||
| 22 | |||
| 23 | diff --git a/configure b/configure | ||
| 24 | --- a/configure | ||
| 25 | +++ b/configure | ||
| 26 | @@ -4366,9 +4366,7 @@ EOF | ||
| 27 | PR_MD_ASFILES=os_Linux_ia64.s | ||
| 28 | ;; | ||
| 29 | x86_64) | ||
| 30 | - if test -n "$USE_64"; then | ||
| 31 | - PR_MD_ASFILES=os_Linux_x86_64.s | ||
| 32 | - else | ||
| 33 | + if test -n "$USE_N32"; then | ||
| 34 | cat >> confdefs.h <<\EOF | ||
| 35 | #define i386 1 | ||
| 36 | EOF | ||
| 37 | @@ -4376,17 +4374,19 @@ EOF | ||
| 38 | PR_MD_ASFILES=os_Linux_x86.s | ||
| 39 | CC="$CC -m32" | ||
| 40 | CXX="$CXX -m32" | ||
| 41 | + else | ||
| 42 | + PR_MD_ASFILES=os_Linux_x86_64.s | ||
| 43 | fi | ||
| 44 | ;; | ||
| 45 | ppc|powerpc) | ||
| 46 | PR_MD_ASFILES=os_Linux_ppc.s | ||
| 47 | ;; | ||
| 48 | powerpc64) | ||
| 49 | - if test -n "$USE_64"; then | ||
| 50 | + if test -n "$USE_N32"; then | ||
| 51 | + PR_MD_ASFILES=os_Linux_ppc.s | ||
| 52 | + else | ||
| 53 | CC="$CC -m64" | ||
| 54 | CXX="$CXX -m64" | ||
| 55 | - else | ||
| 56 | - PR_MD_ASFILES=os_Linux_ppc.s | ||
| 57 | fi | ||
| 58 | ;; | ||
| 59 | m68k) | ||
| 60 | -- | ||
| 61 | 1.7.1 | ||
| 62 | |||
diff --git a/meta/recipes-support/nspr/nspr_4.8.9.bb b/meta/recipes-support/nspr/nspr_4.8.9.bb index 8b840d9a74..f70c2c1e45 100644 --- a/meta/recipes-support/nspr/nspr_4.8.9.bb +++ b/meta/recipes-support/nspr/nspr_4.8.9.bb | |||
| @@ -5,10 +5,12 @@ LIC_FILES_CHKSUM = "file://configure.in;beginline=3;endline=40;md5=99d4d7d68bbc4 | |||
| 5 | file://Makefile.in;beginline=4;endline=38;md5=c2b512182a334e1bfa1edc4d1c84a298 " | 5 | file://Makefile.in;beginline=4;endline=38;md5=c2b512182a334e1bfa1edc4d1c84a298 " |
| 6 | SECTION = "libs/network" | 6 | SECTION = "libs/network" |
| 7 | 7 | ||
| 8 | PR = "r2" | 8 | PR = "r3" |
| 9 | 9 | ||
| 10 | SRC_URI = "ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \ | 10 | SRC_URI = "ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \ |
| 11 | file://remove-rpath-from-tests.patch \ | 11 | file://remove-rpath-from-tests.patch \ |
| 12 | file://fix-build-on-x86_64.patch \ | ||
| 13 | file://trickly-fix-build-on-x86_64.patch \ | ||
| 12 | " | 14 | " |
| 13 | 15 | ||
| 14 | SRC_URI += "file://nspr.pc.in" | 16 | SRC_URI += "file://nspr.pc.in" |
