This is the mail archive of the
mailing list for the newlib project.
[PATCH] Add declaration of "kill" for SPU
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: newlib at sourceware dot org
- Date: Tue, 2 Dec 2014 20:12:38 +0100 (CET)
- Subject: [PATCH] Add declaration of "kill" for SPU
- Authentication-results: sourceware.org; auth=none
on the SPU, libgloss implements the kill function, but none of the newlib
header file provides a prototype for it. This has been the case forever,
but as of recent GCC changes it now causes the SPU GCC build to fail.
This is because libgfortran uses a configure check to test for the presence
of "kill". This will succeed since libgloss *does* have kill. Since the
test succeeds, libgfortran now attempt to use kill. But since the function
is not declared anywhere, this will result in a warning message. And as
of a couple of weeks ago, libgfortran has switched to using -Werror, so
this causes the whole build to abort.
There are already two prototypes of kill in newlib header files, but both
are not active on SPU. The one is in libc/sys/linux/sys/signal.h, which
isn't applicable on SPU anyway, and the other is in libc/include/sys/signal.h
under a #if defined(__CYGWIN__) || defined(__rtems__) block.
It does not really make sense to enable that whole block for SPU, since
it would enable a whole bunch of other functions that are in fact not
available on the SPU.
The patch below simply adds a new prototype for kill, for use simply
on SPU. This fixes the GCC build breakage for me.
* libc/include/sys/signal.h [__SPU__] (kill): Declare.
RCS file: /cvs/src/src/newlib/libc/include/sys/signal.h,v
retrieving revision 1.24
diff -u -r1.24 signal.h
--- src/newlib/libc/include/sys/signal.h 18 Aug 2014 18:18:10 -0000 1.24
+++ src/newlib/libc/include/sys/signal.h 5 Oct 2014 21:41:43 -0000
@@ -225,6 +225,10 @@
#endif /* defined(__CYGWIN__) || defined(__rtems__) */
+int _EXFUN(kill, (pid_t, int));
/* #endif __STRICT_ANSI__ */
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain