git: Set PKG_FORTIFY_SOURCE to 0 when lto enabled
authorRyan Keane <the.ra2.ifv@gmail.com>
Wed, 13 Nov 2024 11:14:03 +0000 (03:14 -0800)
committerRosen Penev <rosenp@gmail.com>
Wed, 22 Jan 2025 02:35:44 +0000 (18:35 -0800)
If PKG_FORTIFY_SOURCE is not 0 and lto is enabled for package git, it
will fail to compile with the following example error:

/openwrt/staging_dir/toolchain-aarch64_generic_gcc-14.1.0_musl/include/stdio.h: In function 'process_curl_messages': /openwrt/staging_dir/toolchain-aarch64_generic_gcc-14.1.0_musl/include/stdio.h:90:8: error: inlining failed in call to 'always_inline' 'fwrite': function body can be overwritten at link time
   90 | size_t fwrite(const void *__restrict, size_t, size_t, FILE *__restrict);
      |        ^
http.c:355:33: note: called from here
  355 |                                 fprintf(stderr, "Received DONE message for unknown request!\n");
      |                                 ^

A related issue is #13016 .
This commit set PKG_FORTIFY_SOURCE to 0 if CONFIG_USE_LTO is y.

Close #24366

Link: https://lore.kernel.org/git/CAHfWF5mjquES-nocQaK+CAEsqWgdy-_OYdGtN82heYs0eJP3eQ@mail.gmail.com/T/#t
Link: https://github.com/openwrt/openwrt/issues/13016
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110834
Signed-off-by: Ryan Keane <the.ra2.ifv@gmail.com>
net/git/Makefile

index 8d9c05c1015393030eded2ddc1f38ba68d90a017..45204a231886d3d67c453aca02d922a25341bba5 100644 (file)
@@ -23,6 +23,10 @@ PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
+ifeq ($(CONFIG_USE_LTO),y)
+       PKG_FORTIFY_SOURCE:=0
+endif
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/git/Default