package/libxslt: fix bfin compile
authorJörg Krause <joerg.krause@embedded.rocks>
Wed, 21 Sep 2016 20:21:07 +0000 (22:21 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Wed, 21 Sep 2016 20:29:07 +0000 (22:29 +0200)
Fixes:
http://autobuild.buildroot.org/results/df4/df4bf247c92847024dff88ce58a5f47343f06258/
http://autobuild.buildroot.org/results/b33/b33f34dc23f7429928d7d0b1478e71d8e7fffed2/
http://autobuild.buildroot.org/results/cad/cad02570ec039511b9495e82d98439e9f0724b37/

And many more.

A GCC bug is triggered when the compiler is run with an optimization level
'-Os/-O2/-O3' for the Blackfin architecture:

```
error: unable to find a register to spill in class 'CCREGS'
```

Workaround this bug by forcing an optimization level of '-O1' when building
libxslt for the Blackfin architecture.

See GCC bug report:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77311

[Peter: add reference to autobuilders failures]
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/libxslt/libxslt.mk

index 868ba6a10f9b483aee1aabeb2507bf747d35f461..d89dde8d00c068f0475f4b901425bd871cee91a4 100644 (file)
@@ -19,6 +19,12 @@ LIBXSLT_CONF_OPTS = \
 LIBXSLT_CONFIG_SCRIPTS = xslt-config
 LIBXSLT_DEPENDENCIES = libxml2
 
+# GCC bug with Os/O2/O3, PR77311
+# error: unable to find a register to spill in class 'CCREGS'
+ifeq ($(BR2_bfin),y)
+LIBXSLT_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -O1"
+endif
+
 # If we have enabled libgcrypt then use it, else disable crypto support.
 ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
 LIBXSLT_DEPENDENCIES += libgcrypt