* [Buildroot] [PATCH] squashfs: fix build with gcc 7
@ 2017-07-25 18:28 Baruch Siach
2017-07-31 17:34 ` Thomas Petazzoni
2017-09-04 20:56 ` Peter Korsgaard
0 siblings, 2 replies; 4+ messages in thread
From: Baruch Siach @ 2017-07-25 18:28 UTC (permalink / raw)
To: buildroot
gcc 7 with -Os (optimize for size) takes the liberty to remove the code of
inline function entirely. This leads to undefined function references at link
time. Restore gcc original inline behaviour to fix this issue.
Fixes:
http://autobuild.buildroot.net/results/3c5/3c5b1d799dce3ba361d618330c242bf4eba76019/
http://autobuild.buildroot.net/results/09f/09f350b62e2486404b78222dce211400bb233000/
http://autobuild.buildroot.net/results/693/693960ed7c01622c756dcc929e83b3b713c16ccc/
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
The gcc doc[1] doesn't mention that feature of C99. A gcc bug, maybe?
[1] https://gcc.gnu.org/onlinedocs/gcc/Inline.html
---
package/squashfs/squashfs.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package/squashfs/squashfs.mk b/package/squashfs/squashfs.mk
index db3f27648eb6..9599d892b261 100644
--- a/package/squashfs/squashfs.mk
+++ b/package/squashfs/squashfs.mk
@@ -59,7 +59,7 @@ HOST_SQUASHFS_MAKE_ARGS = \
define SQUASHFS_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) \
CC="$(TARGET_CC)" \
- EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+ EXTRA_CFLAGS="$(TARGET_CFLAGS) -fgnu89-inline" \
EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
$(SQUASHFS_MAKE_ARGS) \
-C $(@D)/squashfs-tools/
--
2.13.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] squashfs: fix build with gcc 7
2017-07-25 18:28 [Buildroot] [PATCH] squashfs: fix build with gcc 7 Baruch Siach
@ 2017-07-31 17:34 ` Thomas Petazzoni
2017-08-06 7:28 ` Baruch Siach
2017-09-04 20:56 ` Peter Korsgaard
1 sibling, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2017-07-31 17:34 UTC (permalink / raw)
To: buildroot
Hello,
On Tue, 25 Jul 2017 21:28:15 +0300, Baruch Siach wrote:
> gcc 7 with -Os (optimize for size) takes the liberty to remove the code of
> inline function entirely. This leads to undefined function references at link
> time. Restore gcc original inline behaviour to fix this issue.
>
> Fixes:
> http://autobuild.buildroot.net/results/3c5/3c5b1d799dce3ba361d618330c242bf4eba76019/
> http://autobuild.buildroot.net/results/09f/09f350b62e2486404b78222dce211400bb233000/
> http://autobuild.buildroot.net/results/693/693960ed7c01622c756dcc929e83b3b713c16ccc/
>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
> The gcc doc[1] doesn't mention that feature of C99. A gcc bug, maybe?
Applied to master, thanks. To be honest, I hesitated between your
proposal and patching the mksquashfs.c code, but OK, I went with your
solution.
Can you send a patch upstream that removes the "inline" or switches
them to "static inline" ?
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] squashfs: fix build with gcc 7
2017-07-31 17:34 ` Thomas Petazzoni
@ 2017-08-06 7:28 ` Baruch Siach
0 siblings, 0 replies; 4+ messages in thread
From: Baruch Siach @ 2017-08-06 7:28 UTC (permalink / raw)
To: buildroot
Hi Thomas,
On Mon, Jul 31, 2017 at 07:34:33PM +0200, Thomas Petazzoni wrote:
> On Tue, 25 Jul 2017 21:28:15 +0300, Baruch Siach wrote:
> > gcc 7 with -Os (optimize for size) takes the liberty to remove the code of
> > inline function entirely. This leads to undefined function references at link
> > time. Restore gcc original inline behaviour to fix this issue.
> >
> > Fixes:
> > http://autobuild.buildroot.net/results/3c5/3c5b1d799dce3ba361d618330c242bf4eba76019/
> > http://autobuild.buildroot.net/results/09f/09f350b62e2486404b78222dce211400bb233000/
> > http://autobuild.buildroot.net/results/693/693960ed7c01622c756dcc929e83b3b713c16ccc/
> >
> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> > ---
> > The gcc doc[1] doesn't mention that feature of C99. A gcc bug, maybe?
>
> Applied to master, thanks. To be honest, I hesitated between your
> proposal and patching the mksquashfs.c code, but OK, I went with your
> solution.
>
> Can you send a patch upstream that removes the "inline" or switches
> them to "static inline" ?
>
> Thanks!
Done.
https://sourceforge.net/p/squashfs/mailman/message/35982546/
I'm still not sure what is the root cause if this issue, and whether this is
GCC/C99 expected behaviour.
baruch
--
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 -
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] squashfs: fix build with gcc 7
2017-07-25 18:28 [Buildroot] [PATCH] squashfs: fix build with gcc 7 Baruch Siach
2017-07-31 17:34 ` Thomas Petazzoni
@ 2017-09-04 20:56 ` Peter Korsgaard
1 sibling, 0 replies; 4+ messages in thread
From: Peter Korsgaard @ 2017-09-04 20:56 UTC (permalink / raw)
To: buildroot
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
> gcc 7 with -Os (optimize for size) takes the liberty to remove the code of
> inline function entirely. This leads to undefined function references at link
> time. Restore gcc original inline behaviour to fix this issue.
> Fixes:
> http://autobuild.buildroot.net/results/3c5/3c5b1d799dce3ba361d618330c242bf4eba76019/
> http://autobuild.buildroot.net/results/09f/09f350b62e2486404b78222dce211400bb233000/
> http://autobuild.buildroot.net/results/693/693960ed7c01622c756dcc929e83b3b713c16ccc/
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
> The gcc doc[1] doesn't mention that feature of C99. A gcc bug, maybe?
> [1] https://gcc.gnu.org/onlinedocs/gcc/Inline.html
Committed to 2017.02.x, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-09-04 20:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-25 18:28 [Buildroot] [PATCH] squashfs: fix build with gcc 7 Baruch Siach
2017-07-31 17:34 ` Thomas Petazzoni
2017-08-06 7:28 ` Baruch Siach
2017-09-04 20:56 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox