104 lines
3.8 KiB
Diff
104 lines
3.8 KiB
Diff
|
# HG changeset patch
|
||
|
# Parent 02ec826cab1e4acb25b364a180a1597ace1149f9
|
||
|
stubdom: fix errors in newlib
|
||
|
|
||
|
rpm post-build-checks found a few code bugs in newlib, and marks them as
|
||
|
errors. Add another newlib patch and apply it during stubdom build.
|
||
|
|
||
|
I: A function uses a 'return;' statement, but has actually a value
|
||
|
to return, like an integer ('return 42;') or similar.
|
||
|
W: xen voidreturn ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:117, 125, 146, 157, 330
|
||
|
|
||
|
I: Program is using implicit definitions of special functions.
|
||
|
these functions need to use their correct prototypes to allow
|
||
|
the lightweight buffer overflow checking to work.
|
||
|
- Implicit memory/string functions need #include <string.h>.
|
||
|
- Implicit *printf functions need #include <stdio.h>.
|
||
|
- Implicit *printf functions need #include <stdio.h>.
|
||
|
- Implicit *read* functions need #include <unistd.h>.
|
||
|
- Implicit *recv* functions need #include <sys/socket.h>.
|
||
|
E: xen implicit-fortify-decl ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:119
|
||
|
|
||
|
I: Program returns random data in a function
|
||
|
E: xen no-return-in-nonvoid-function ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:362
|
||
|
|
||
|
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
||
|
|
||
|
Index: xen-4.5.0-testing/stubdom/Makefile
|
||
|
===================================================================
|
||
|
--- xen-4.5.0-testing.orig/stubdom/Makefile
|
||
|
+++ xen-4.5.0-testing/stubdom/Makefile
|
||
|
@@ -72,6 +72,7 @@ newlib-$(NEWLIB_VERSION): newlib-$(NEWLI
|
||
|
patch -d $@ -p0 < newlib.patch
|
||
|
patch -d $@ -p0 < newlib-chk.patch
|
||
|
patch -d $@ -p1 < newlib-stdint-size_max-fix-from-1.17.0.patch
|
||
|
+ patch -d $@ -p1 < newlib-cygmon-gmon.patch
|
||
|
find $@ -type f | xargs perl -i.bak \
|
||
|
-pe 's/\b_(tzname|daylight|timezone)\b/$$1/g'
|
||
|
touch $@
|
||
|
Index: xen-4.5.0-testing/stubdom/newlib-cygmon-gmon.patch
|
||
|
===================================================================
|
||
|
--- /dev/null
|
||
|
+++ xen-4.5.0-testing/stubdom/newlib-cygmon-gmon.patch
|
||
|
@@ -0,0 +1,60 @@
|
||
|
+
|
||
|
+I: A function uses a 'return;' statement, but has actually a value
|
||
|
+ to return, like an integer ('return 42;') or similar.
|
||
|
+W: xen voidreturn ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:117, 125, 146, 157, 330
|
||
|
+
|
||
|
+I: Program is using implicit definitions of special functions.
|
||
|
+ these functions need to use their correct prototypes to allow
|
||
|
+ the lightweight buffer overflow checking to work.
|
||
|
+ - Implicit memory/string functions need #include <string.h>.
|
||
|
+ - Implicit *printf functions need #include <stdio.h>.
|
||
|
+ - Implicit *printf functions need #include <stdio.h>.
|
||
|
+ - Implicit *read* functions need #include <unistd.h>.
|
||
|
+ - Implicit *recv* functions need #include <sys/socket.h>.
|
||
|
+E: xen implicit-fortify-decl ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:119
|
||
|
+
|
||
|
+I: Program returns random data in a function
|
||
|
+E: xen no-return-in-nonvoid-function ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:362
|
||
|
+
|
||
|
+---
|
||
|
+ libgloss/i386/cygmon-gmon.c | 6 +++++-
|
||
|
+ 1 file changed, 5 insertions(+), 1 deletion(-)
|
||
|
+
|
||
|
+Index: newlib-1.16.0/libgloss/i386/cygmon-gmon.c
|
||
|
+===================================================================
|
||
|
+--- newlib-1.16.0.orig/libgloss/i386/cygmon-gmon.c
|
||
|
++++ newlib-1.16.0/libgloss/i386/cygmon-gmon.c
|
||
|
+@@ -61,6 +61,8 @@
|
||
|
+ static char sccsid[] = "@(#)gmon.c 5.3 (Berkeley) 5/22/91";
|
||
|
+ #endif /* not lint */
|
||
|
+
|
||
|
++#include <string.h>
|
||
|
++#include <unistd.h>
|
||
|
+ #define DEBUG
|
||
|
+ #ifdef DEBUG
|
||
|
+ #include <stdio.h>
|
||
|
+@@ -89,7 +91,7 @@ static int s_scale;
|
||
|
+
|
||
|
+ extern int errno;
|
||
|
+
|
||
|
+-int
|
||
|
++void
|
||
|
+ monstartup(lowpc, highpc)
|
||
|
+ char *lowpc;
|
||
|
+ char *highpc;
|
||
|
+@@ -199,6 +201,7 @@ _mcleanup()
|
||
|
+
|
||
|
+ static char already_setup = 0;
|
||
|
+
|
||
|
++void
|
||
|
+ _mcount()
|
||
|
+ {
|
||
|
+ register char *selfpc;
|
||
|
+@@ -341,6 +344,7 @@ overflow:
|
||
|
+ * profiling is what mcount checks to see if
|
||
|
+ * all the data structures are ready.
|
||
|
+ */
|
||
|
++void
|
||
|
+ moncontrol(mode)
|
||
|
+ int mode;
|
||
|
+ {
|