[PATCH] stubdom: Fix newlib build with GCC-14

Andrew Cooper posted 1 patch 1 month, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20241002224531.1966914-1-andrew.cooper3@citrix.com
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
[PATCH] stubdom: Fix newlib build with GCC-14
Posted by Andrew Cooper 1 month, 3 weeks ago
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

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

base-commit: 41190d2ceb03b12ffc17a66c04de519c26a6052a
-- 
2.39.5
Re: [PATCH] stubdom: Fix newlib build with GCC-14
Posted by Anthony PERARD 1 month, 3 weeks ago
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,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech