summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@free.fr>2012-12-09 23:25:48 (GMT)
committerYann E. MORIN" <yann.morin.1998@free.fr>2012-12-09 23:25:48 (GMT)
commitfc4d1bf65fbde3e791b8e3d564b0daab287e3018 (patch)
treee6fe019fa529a814859d587432f92497a44498d6
parent288ac9d627df92cfcffdc28180f0f19ef18a4cf8 (diff)
complibs/ppl: fix build with newer gcc
ppl-0.10.x does not build with gcc-4.6+, as it uses constructs that were warnings with gcc-4.5 and before, but are now errors with gcc-4.6 and above. Fix that by passing -fpermissive in CFLAGS for ppl 0.10. Reported-by: Jeremy Rosen <jeremy.rosen@openwide.fr> Reported-by: Peter Korsgaard <jacmet@uclibc.org> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-rw-r--r--config/companion_libs/ppl.in6
-rw-r--r--scripts/build/companion_libs/120-ppl.sh16
2 files changed, 20 insertions, 2 deletions
diff --git a/config/companion_libs/ppl.in b/config/companion_libs/ppl.in
index a6d4f70..1861e7a 100644
--- a/config/companion_libs/ppl.in
+++ b/config/companion_libs/ppl.in
@@ -24,6 +24,7 @@ config PPL_V_0_11
config PPL_V_0_10_2
bool
prompt "0.10.2"
+ select PPL_NEEDS_FPERMISSIVE
endchoice
@@ -36,6 +37,11 @@ config PPL_VERSION
default "0.11" if PPL_V_0_11
default "0.10.2" if PPL_V_0_10_2
+# For PPL 0.10, we need -fpermissive to build on gcc 4.7+
+# (even gcc-4.6+ ?)
+config PPL_NEEDS_FPERMISSIVE
+ bool
+
# For PPL 0.11, we need to pull libpwl if configured static
config PPL_0_11
bool
diff --git a/scripts/build/companion_libs/120-ppl.sh b/scripts/build/companion_libs/120-ppl.sh
index 93a07ca..e7e17fc 100644
--- a/scripts/build/companion_libs/120-ppl.sh
+++ b/scripts/build/companion_libs/120-ppl.sh
@@ -30,6 +30,7 @@ do_ppl_extract() {
# - install in build-tools prefix
do_ppl_for_build() {
local -a ppl_opts
+ local ppl_cflags
case "${CT_TOOLCHAIN_TYPE}" in
native|cross) return 0;;
@@ -38,9 +39,14 @@ do_ppl_for_build() {
CT_DoStep INFO "Installing PPL for build"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-ppl-build-${CT_BUILD}"
+ ppl_cflags="${CT_CFLAGS_FOR_BUILD}"
+ if [ "${CT_PPL_NEEDS_FPERMISSIVE}" = "y" ]; then
+ ppl_cflags+=" -fpermissive"
+ fi
+
ppl_opts+=( "host=${CT_BUILD}" )
ppl_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
- ppl_opts+=( "cflags=${CT_CFLAGS_FOR_BUILD}" )
+ ppl_opts+=( "cflags=${ppl_cflags}" )
ppl_opts+=( "ldflags=${CT_LDFLAGS_FOR_BUILD}" )
do_ppl_backend "${ppl_opts[@]}"
@@ -51,13 +57,19 @@ do_ppl_for_build() {
# Build PPL for running on host
do_ppl_for_host() {
local -a ppl_opts
+ local ppl_cflags
CT_DoStep INFO "Installing PPL for host"
CT_mkdir_pushd "${CT_BUILD_DIR}/build-ppl-host-${CT_HOST}"
+ ppl_cflags="${CT_CFLAGS_FOR_HOST}"
+ if [ "${CT_PPL_NEEDS_FPERMISSIVE}" = "y" ]; then
+ ppl_cflags+=" -fpermissive"
+ fi
+
ppl_opts+=( "host=${CT_HOST}" )
ppl_opts+=( "prefix=${CT_HOST_COMPLIBS_DIR}" )
- ppl_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
+ ppl_opts+=( "cflags=${ppl_cflags}" )
ppl_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
do_ppl_backend "${ppl_opts[@]}"