Patchwork libnspr: fix build issue on ARM with certain toolchains

login
register
mail settings
Submitter Thomas Petazzoni
Date June 20, 2012, 9:48 a.m.
Message ID <1340185707-6285-1-git-send-email-thomas.petazzoni@free-electrons.com>
Download mbox | patch
Permalink /patch/165970/
State Accepted
Commit 792ddde39da3b200bc34ff0204db74bb3fe2bd57
Headers show

Comments

Thomas Petazzoni - June 20, 2012, 9:48 a.m.
Fixes issues like
http://autobuild.buildroot.org/results/aed444bf37b9e289866a9b6c754ed74a3cc0f3b2/build-end.log.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/libnspr/libnspr-fix-flags.patch |   65 +++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 package/libnspr/libnspr-fix-flags.patch
Peter Korsgaard - June 20, 2012, 8:58 p.m.
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Fixes issues like
 Thomas> http://autobuild.buildroot.org/results/aed444bf37b9e289866a9b6c754ed74a3cc0f3b2/build-end.log.

Committed, thanks.

Patch

diff --git a/package/libnspr/libnspr-fix-flags.patch b/package/libnspr/libnspr-fix-flags.patch
new file mode 100644
index 0000000..d5ad4fa
--- /dev/null
+++ b/package/libnspr/libnspr-fix-flags.patch
@@ -0,0 +1,65 @@ 
+Fix build issues on ARM with certain toolchains
+
+Some gcc/binutils combinations do not like having a space between
+"-Wa," and the following assembler option, so we simply remove those
+spaces.
+
+However, fixing the configure.in is not sufficient, because libnspr
+absolutely requires the prehistoric autoconf 2.13 to re-generate the
+configure script. So, since the patch to the configure script is not
+horrible, we also patch this script directly.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/mozilla/nsprpub/configure.in
+===================================================================
+--- a/mozilla/nsprpub/configure.in
++++ b/mozilla/nsprpub/configure.in
+@@ -925,8 +925,8 @@
+   case "$target_cpu" in
+     arm*)
+       if test "$GNU_CC"; then
+-        CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
+-        CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
++        CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa,-march=armv7-a -Wa,-mthumb"
++        CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa,-march=armv7-a -Wa,-mthumb"
+         ASFLAGS="$ASFLAGS -march=armv7-a -mthumb"
+       else
+         AC_MSG_ERROR([--enable-thumb2 is not supported for non-GNU toolchains])
+@@ -940,8 +940,8 @@
+   case "$target_cpu" in
+     arm*)
+       if test "$GNU_CC"; then
+-       CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
+-        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
++       CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa,-march=armv5te -Wa,-mthumb-interwork"
++        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -Wa,-march=armv5te -Wa,-mthumb-interwork"
+         ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork"
+       fi
+       ;;
+Index: b/mozilla/nsprpub/configure
+===================================================================
+--- a/mozilla/nsprpub/configure
++++ b/mozilla/nsprpub/configure
+@@ -3101,8 +3101,8 @@
+   case "$target_cpu" in
+     arm*)
+       if test "$GNU_CC"; then
+-        CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
+-        CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
++        CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa,-march=armv7-a -Wa,-mthumb"
++        CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa,-march=armv7-a -Wa,-mthumb"
+         ASFLAGS="$ASFLAGS -march=armv7-a -mthumb"
+       else
+         { echo "configure: error: --enable-thumb2 is not supported for non-GNU toolchains" 1>&2; exit 1; }
+@@ -3116,8 +3116,8 @@
+   case "$target_cpu" in
+     arm*)
+       if test "$GNU_CC"; then
+-       CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
+-        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
++       CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa,-march=armv5te -Wa,-mthumb-interwork"
++        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -Wa,-march=armv5te -Wa,-mthumb-interwork"
+         ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork"
+       fi
+       ;;