diff mbox

gcc: explicitly use CFLAGS_FOR_TARGET instead of --enable-target-optspace

Message ID 1405096282-13354-1-git-send-email-abrodkin@synopsys.com
State Not Applicable
Headers show

Commit Message

Alexey Brodkin July 11, 2014, 4:31 p.m. UTC
Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=2222 it's impossible
to specify custom CFLAGS_FOR_TARGET, it is always gets overriden with values
from "config/mt-ospace":

Comments

Carmelo Amoroso July 14, 2014, 1:47 p.m. UTC | #1
Hello Alexey,
I guess you sent it to the wrong list.

You need to send to buildroot team.

Regards,
Carmelo

On 7/11/2014 6:31 PM, Alexey Brodkin wrote:
> Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=2222 it's impossible
> to specify custom CFLAGS_FOR_TARGET, it is always gets overriden with values
> from "config/mt-ospace":
> ===========
>   CFLAGS_FOR_TARGET = -g -Os
>   CXXFLAGS_FOR_TARGET = -g -Os
> ===========
>
> But in some situations it's required to pass custom flags on buildong of libgcc:
>   * Default flags "-g -Os" lead to build isses as with PowerPC on gcc 4.5
> (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810)
>   * Particular CPU requires specific instructions for HW support
>   * Deep optimizations
>
> Tested by toolchain building for ARC, ARM and PowerPC with GCC 4.5
>
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
>
> Cc: Anton Kolesov <akolesov@synopsys.com>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: Peter Korsgaard <peter@korsgaard.com>
> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
>   package/gcc/gcc-intermediate/gcc-intermediate.mk | 13 +++++++++++++
>   package/gcc/gcc.mk                               | 10 ----------
>   2 files changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/package/gcc/gcc-intermediate/gcc-intermediate.mk b/package/gcc/gcc-intermediate/gcc-intermediate.mk
> index db84d18..0543574 100644
> --- a/package/gcc/gcc-intermediate/gcc-intermediate.mk
> +++ b/package/gcc/gcc-intermediate/gcc-intermediate.mk
> @@ -46,4 +46,17 @@ ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
>   HOST_GCC_INTERMEDIATE_INSTALL_OPT += install-target-libgcc
>   endif
>
> +ifeq ($(ARCH),powerpc)
> +ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
> +	# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810
> +	# Workaround until it's fixed in 4.5.4 or later
> +	HOST_GCC_INTERMEDIATE_CONF_ENV += CFLAGS_FOR_TARGET="-g -O2"
> +	HOST_GCC_INTERMEDIATE_CONF_ENV += CXXFLAGS_FOR_TARGET="-g -O2"
> +endif
> +else
> +	# Defaults are "-g -Os" from "config/mt-ospace"
> +	HOST_GCC_INTERMEDIATE_CONF_ENV += CFLAGS_FOR_TARGET="-g -Os"
> +	HOST_GCC_INTERMEDIATE_CONF_ENV += CXXFLAGS_FOR_TARGET="-g -Os"
> +endif
> +
>   $(eval $(host-autotools-package))
> diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
> index 5b60bc3..c6f6e41 100644
> --- a/package/gcc/gcc.mk
> +++ b/package/gcc/gcc.mk
> @@ -107,16 +107,6 @@ HOST_GCC_COMMON_CONF_OPT = \
>   HOST_GCC_COMMON_CONF_ENV = \
>   	MAKEINFO=missing
>
> -# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810
> -# Workaround until it's fixed in 4.5.4 or later
> -ifeq ($(ARCH),powerpc)
> -ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
> -HOST_GCC_COMMON_CONF_OPT += --disable-target-optspace
> -endif
> -else
> -HOST_GCC_COMMON_CONF_OPT += --enable-target-optspace
> -endif
> -
>   # gcc 4.6.x quadmath requires wchar
>   ifneq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
>   HOST_GCC_COMMON_CONF_OPT += --disable-libquadmath
>
Alexey Brodkin July 14, 2014, 3:44 p.m. UTC | #2
Hi Carmelo,


On Mon, 2014-07-14 at 15:47 +0200, Carmelo Amoroso wrote:
> Hello Alexey,
> I guess you sent it to the wrong list.
> 
> You need to send to buildroot team.
> 
> Regards,
> Carmelo

Ooops my bad.
Re-sent to buildroot list.

Thanks for pointing at it.

Regards,
Alexey
diff mbox

Patch

===========
 CFLAGS_FOR_TARGET = -g -Os
 CXXFLAGS_FOR_TARGET = -g -Os
===========

But in some situations it's required to pass custom flags on buildong of libgcc:
 * Default flags "-g -Os" lead to build isses as with PowerPC on gcc 4.5
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810)
 * Particular CPU requires specific instructions for HW support
 * Deep optimizations

Tested by toolchain building for ARC, ARM and PowerPC with GCC 4.5

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>

Cc: Anton Kolesov <akolesov@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/gcc/gcc-intermediate/gcc-intermediate.mk | 13 +++++++++++++
 package/gcc/gcc.mk                               | 10 ----------
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/package/gcc/gcc-intermediate/gcc-intermediate.mk b/package/gcc/gcc-intermediate/gcc-intermediate.mk
index db84d18..0543574 100644
--- a/package/gcc/gcc-intermediate/gcc-intermediate.mk
+++ b/package/gcc/gcc-intermediate/gcc-intermediate.mk
@@ -46,4 +46,17 @@  ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
 HOST_GCC_INTERMEDIATE_INSTALL_OPT += install-target-libgcc
 endif
 
+ifeq ($(ARCH),powerpc)
+ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
+	# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810
+	# Workaround until it's fixed in 4.5.4 or later
+	HOST_GCC_INTERMEDIATE_CONF_ENV += CFLAGS_FOR_TARGET="-g -O2"
+	HOST_GCC_INTERMEDIATE_CONF_ENV += CXXFLAGS_FOR_TARGET="-g -O2"
+endif
+else
+	# Defaults are "-g -Os" from "config/mt-ospace"
+	HOST_GCC_INTERMEDIATE_CONF_ENV += CFLAGS_FOR_TARGET="-g -Os"
+	HOST_GCC_INTERMEDIATE_CONF_ENV += CXXFLAGS_FOR_TARGET="-g -Os"
+endif
+
 $(eval $(host-autotools-package))
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index 5b60bc3..c6f6e41 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -107,16 +107,6 @@  HOST_GCC_COMMON_CONF_OPT = \
 HOST_GCC_COMMON_CONF_ENV = \
 	MAKEINFO=missing
 
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810
-# Workaround until it's fixed in 4.5.4 or later
-ifeq ($(ARCH),powerpc)
-ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
-HOST_GCC_COMMON_CONF_OPT += --disable-target-optspace
-endif
-else
-HOST_GCC_COMMON_CONF_OPT += --enable-target-optspace
-endif
-
 # gcc 4.6.x quadmath requires wchar
 ifneq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
 HOST_GCC_COMMON_CONF_OPT += --disable-libquadmath