gcc: explicitly use C{XX}FLAGS_FOR_TARGET instead of --enable-target-optspace
PATCH v4 1/1 gcc: explicitly use C{XX}FLAGS_FOR_TARGET instead of --enable-target-optspace
From: Alexey Brodkin <[email protected]>
The gcc.mk file is passing --enable-target-optspace to gcc configure script, to ask for space-optimized (-Os) target libraries. However, passing this option has the effect of overriding any custom CFLAGS_FOR_TARGET or CXXFLAGS_FOR_TARGET values that may be passed.
These are some situations when it is 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
---
Compared to v3 use "=" instead of ":=" which is not actually required here.
--- package/gcc/gcc.mk | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
package/gcc/gcc.mk +9 -3
@@ -107,16 +107,22 @@ HOST_GCC_COMMON_CONF_OPT = \ HOST_GCC_COMMON_CONF_ENV = \ MAKEINFO=missing +GCC_COMMON_TARGET_CFLAGS = $(TARGET_CFLAGS) +GCC_COMMON_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS) + # 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 +GCC_COMMON_TARGET_CFLAGS = $(filter-out -Os,$(GCC_COMMON_TARGET_CFLAGS)) +GCC_COMMON_TARGET_CXXFLAGS = $(filter-out -Os,$(GCC_COMMON_TARGET_CXXFLAGS)) endif -else -HOST_GCC_COMMON_CONF_OPT += --enable-target-optspace endif +# Propagate options used for target software building to GCC target libs +HOST_GCC_COMMON_CONF_ENV += CFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CXXFLAGS)" +HOST_GCC_COMMON_CONF_ENV += CXXFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CXXFLAGS)" + # gcc 4.6.x quadmath requires wchar ifneq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y) HOST_GCC_COMMON_CONF_OPT += --disable-libquadmath
Signature · 1 line
1.9.3
PATCH v4 1/1 gcc: explicitly use C{XX}FLAGS_FOR_TARGET instead of --enable-target-optspace
Hi Thomas,
Quoted 16 lines · Alexey Brodkin
From: Alexey Brodkin <[email protected]>
The gcc.mk file is passing --enable-target-optspace to gcc configure script, to ask for space-optimized (-Os) target libraries. However, passing this option has the effect of overriding any custom
CFLAGS_FOR_TARGETorCXXFLAGS_FOR_TARGETvalues that may be passed.These are some situations when it is 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 optimizationsSigned-off-by Alexey Brodkin <[email protected]>
Quoted 7 lines
Cc Anton Kolesov <[email protected]>Cc Thomas Petazzoni <[email protected]>Cc Peter Korsgaard <[email protected]>Cc Gustavo Zacarias <[email protected]>---
Compared to v3 use "=" instead of ":=" which is not actually required here.
I'm wondering if this version is fine and we may go ahead an apply it?
Regards,
Alexey
PATCH v4 1/1 gcc: explicitly use C{XX}FLAGS_FOR_TARGET instead of --enable-target-optspace
Hi Thomas,
Quoted 25 lines · Alexey Brodkin
Hi Thomas,
Quoted 22 lines · Alexey Brodkin
From: Alexey Brodkin <[email protected]>
The gcc.mk file is passing --enable-target-optspace to gcc configure script, to ask for space-optimized (-Os) target libraries. However, passing this option has the effect of overriding any custom
CFLAGS_FOR_TARGETorCXXFLAGS_FOR_TARGETvalues that may be passed.These are some situations when it is 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 optimizationsSigned-off-by Alexey Brodkin <[email protected]>Cc Anton Kolesov <[email protected]>Cc Thomas Petazzoni <[email protected]>Cc Peter Korsgaard <[email protected]>Cc Gustavo Zacarias <[email protected]>---
Quoted 3 lines
Quoted 1 line
Compared to v3 use "=" instead of ":=" which is not actually required here.
I'm wondering if this version is fine and we may go ahead an apply it?
Please treat this as a polite reminder about this pending patch.
Regards,
Alexey
PATCH v4 1/1 gcc: explicitly use C{XX}FLAGS_FOR_TARGET instead of --enable-target-optspace
Hi Thomas,
Quoted 28 lines · Alexey Brodkin
Hi Thomas,
Quoted 25 lines · Alexey Brodkin
Hi Thomas,
Quoted 22 lines · Alexey Brodkin
From: Alexey Brodkin <[email protected]>
The gcc.mk file is passing --enable-target-optspace to gcc configure script, to ask for space-optimized (-Os) target libraries. However, passing this option has the effect of overriding any custom
CFLAGS_FOR_TARGETorCXXFLAGS_FOR_TARGETvalues that may be passed.These are some situations when it is 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 optimizationsSigned-off-by Alexey Brodkin <[email protected]>Cc Anton Kolesov <[email protected]>Cc Thomas Petazzoni <[email protected]>Cc Peter Korsgaard <[email protected]>Cc Gustavo Zacarias <[email protected]>---
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
Compared to v3 use "=" instead of ":=" which is not actually required here.
I'm wondering if this version is fine and we may go ahead an apply it?
Please treat this as a polite reminder about this pending patch.
Any chance for this change to made its way into upstream Buildroot?
-Alexey
PATCH v4 1/1 gcc: explicitly use C{XX}FLAGS_FOR_TARGET instead of --enable-target-optspace
Dear Alexey Brodkin,
Quoted 5 lines · Alexey Brodkin
Quoted 3 lines
Quoted 1 line
I'm wondering if this version is fine and we may go ahead an apply it?
Please treat this as a polite reminder about this pending patch.
Any chance for this change to made its way into upstream Buildroot?
Yes. Please give us some time to test it before applying it. It's touching a fairly sensitive area, so we don't apply such patches lightly.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v4 1/1 gcc: explicitly use C{XX}FLAGS_FOR_TARGET instead of --enable-target-optspace
Hi Thomas,
Quoted 6 lines · Thomas Petazzoni
Dear Alexey Brodkin,
Quoted 2 lines · Alexey Brodkin
Quoted 2 lines
Quoted 1 line
I'm wondering if this version is fine and we may go ahead an apply it?
Quoted 7 lines
Quoted 3 lines
Quoted 1 line
Please treat this as a polite reminder about this pending patch.
Any chance for this change to made its way into upstream Buildroot?
Yes. Please give us some time to test it before applying it. It's touching a fairly sensitive area, so we don't apply such patches lightly.
Sure, I completely understand and support your comment.
I just want to make sure this change is not lost and in one or other form is applied.
This change is important for us because allows us to build entire target binaries in consistency, otherwise with inconsistent binaries in some corner cases there happen error on linkage of libgcc and other software like busybox etc.
Personally I did build tests this patch for ARC, ARM and PPC (with GCC 4.5), essentially run-time test was only done on ARC because this is the only HW I had handy.
-Alexey
PATCH v4 1/1 gcc: explicitly use C{XX}FLAGS_FOR_TARGET instead of --enable-target-optspace
In reply to Thomas PetazzoniHi Thomas,
Quoted 10 lines · Thomas Petazzoni
Dear Alexey Brodkin,
Quoted 5 lines · Alexey Brodkin
Quoted 3 lines
Quoted 1 line
I'm wondering if this version is fine and we may go ahead an apply it?
Please treat this as a polite reminder about this pending patch.
Any chance for this change to made its way into upstream Buildroot?
Quoted 7 lines
Yes. Please give us some time to test it before applying it. It's touching a fairly sensitive area, so we don't apply such patches lightly.
Best regards,
Thomas
I just got a reminder on my pending patches in Buildroot so I'm updating that one.
This v4 patch should be dropped because it is now superseded with v5
(http://patchwork.ozlabs.org/patch/453849/) which in its turn is just a rebase of v4 on top of more up to date master.
-Alexey
PATCH v4 1/1 gcc: explicitly use C{XX}FLAGS_FOR_TARGET instead of --enable-target-optspace
Hi Alexey,
Quoted 6 lines · Alexey Brodkin
I just got a reminder on my pending patches in Buildroot so I'm updating that one.
This v4 patch should be dropped because it is now superseded with v5
(http://patchwork.ozlabs.org/patch/453849/) which in its turn is just a rebase of v4 on top of more up to date master.
Please mark this patch as "Superseded" in Buildroot's patchwork, then.
baruch
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -PATCH v4 1/1 gcc: explicitly use C{XX}FLAGS_FOR_TARGET instead of --enable-target-optspace
Hi Baruch,
Quoted 11 lines · Baruch Siach
Hi Alexey,
Quoted 6 lines · Alexey Brodkin
I just got a reminder on my pending patches in Buildroot so I'm updating that one.
This v4 patch should be dropped because it is now superseded with v5
(http://patchwork.ozlabs.org/patch/453849/) which in its turn is just a rebase of v4 on top of more up to date master.Please mark this patch as "Superseded" in Buildroot's patchwork, then.
Already done. Made it before sending my previous email.
-Alexey