diff mbox series

stubdom: Fix newlib build with GCC-14

Message ID 20241002224531.1966914-1-andrew.cooper3@citrix.com (mailing list archive)
State New
Headers show
Series stubdom: Fix newlib build with GCC-14 | expand

Commit Message

Andrew Cooper Oct. 2, 2024, 10:45 p.m. UTC
Based on a fix from OpenSUSE, but adjusted to be Clang-compatible too.  Pass
-Wno-implicit-function-declaration library-wide rather than using local GCC
pragmas.

Fix of copy_past_newline() to avoid triggering -Wstrict-prototypes.

Link: https://build.opensuse.org/request/show/1178775
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Jan Beulich <JBeulich@suse.com>

The OpenSUSE Tumbleweed containers already reproduce this issue:

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1479445899

This wants backporting to all trees in due course.
---
 stubdom/Makefile                           |  2 ++
 stubdom/newlib-fix-copy_past_newline.patch | 10 ++++++++++
 2 files changed, 12 insertions(+)
 create mode 100644 stubdom/newlib-fix-copy_past_newline.patch


base-commit: 41190d2ceb03b12ffc17a66c04de519c26a6052a

Comments

Anthony PERARD Oct. 3, 2024, 8:59 a.m. UTC | #1
On Wed, Oct 02, 2024 at 11:45:31PM +0100, Andrew Cooper wrote:
> Based on a fix from OpenSUSE, but adjusted to be Clang-compatible too.  Pass
> -Wno-implicit-function-declaration library-wide rather than using local GCC
> pragmas.
> 
> Fix of copy_past_newline() to avoid triggering -Wstrict-prototypes.
> 
> Link: https://build.opensuse.org/request/show/1178775
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,
diff mbox series

Patch

diff --git a/stubdom/Makefile b/stubdom/Makefile
index 8c503c2bf8de..f8c31fd35d0d 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -97,10 +97,12 @@  newlib-$(NEWLIB_VERSION): newlib-$(NEWLIB_VERSION).tar.gz
 	patch -d $@ -p1 < newlib-disable-texinfo.patch
 	patch -d $@ -p1 < newlib-cygmon-gmon.patch
 	patch -d $@ -p1 < newlib-makedoc.patch
+	patch -d $@ -p1 < newlib-fix-copy_past_newline.patch
 	find $@ -type f | xargs perl -i.bak \
 		-pe 's/\b_(tzname|daylight|timezone)\b/$$1/g'
 	touch $@
 
+NEWLIB_CFLAGS += -Wno-implicit-function-declaration
 NEWLIB_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libc.a
 .PHONY: cross-newlib
 cross-newlib: $(NEWLIB_STAMPFILE)
diff --git a/stubdom/newlib-fix-copy_past_newline.patch b/stubdom/newlib-fix-copy_past_newline.patch
new file mode 100644
index 000000000000..f8452480bc80
--- /dev/null
+++ b/stubdom/newlib-fix-copy_past_newline.patch
@@ -0,0 +1,10 @@ 
+--- newlib-1.16.0/newlib/doc/makedoc.c.orig
++++ newlib-1.16.0/newlib/doc/makedoc.c
+@@ -798,6 +798,7 @@ DEFUN( iscommand,(ptr, idx),
+ }
+
+
++static unsigned int
+ DEFUN(copy_past_newline,(ptr, idx, dst),
+       string_type *ptr AND
+       unsigned int idx AND