summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois Perrad <fperrad@gmail.com>2017-08-06 10:56:08 (GMT)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>2017-08-09 21:41:51 (GMT)
commit128a16aceeb43d7d22b10c6845f7c4d09439e031 (patch)
tree31067e634574e753ba3d7ad43d51a4e050eacbfb
parentd2f0f5df468209e0bd97b54e713e80e92188ef4f (diff)
downloadbuildroot-128a16aceeb43d7d22b10c6845f7c4d09439e031.tar.gz
buildroot-128a16aceeb43d7d22b10c6845f7c4d09439e031.tar.bz2
ficl: fix build with gcc 7
gcc 7 with -Os (optimize for size) takes the liberty to remove the code of inline functions entirely - which is indeed allowed according to the C99 standard, cfr. this [1] very complete StackOverflow answer. This leads to undefined function references at link time. The proper approach is to patch the code to use 'static inline' instead. However, for various reasons such a patch is not entirely trivial, and upstream has not moved since 7 years, so instead take the simpler approach of restoring the gcc original inline behaviour with -fgnu89-inline to fix this issue. Fixes http://autobuild.buildroot.org/results/d72/d72a7e9775a10bc884b9953dd2eba3ad32100cca [1] https://stackoverflow.com/questions/6312597/is-inline-without-static-or-extern-ever-useful-in-c99 Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
-rw-r--r--package/ficl/ficl.mk2
1 files changed, 1 insertions, 1 deletions
diff --git a/package/ficl/ficl.mk b/package/ficl/ficl.mk
index 5d2d600..af900fa 100644
--- a/package/ficl/ficl.mk
+++ b/package/ficl/ficl.mk
@@ -39,7 +39,7 @@ endif
define FICL_BUILD_CMDS
$(MAKE) -C $(@D) -f Makefile.linux $(TARGET_CONFIGURE_OPTS) \
- CFLAGS="$(TARGET_CFLAGS) -fPIC -I. -Dlinux" CPPFLAGS="" $(FICL_BUILD_TARGETS)
+ CFLAGS="$(TARGET_CFLAGS) -fgnu89-inline -fPIC -I. -Dlinux" CPPFLAGS="" $(FICL_BUILD_TARGETS)
endef
define FICL_INSTALL_STAGING_CMDS