Fix MIPS waitid build.
authorJoseph Myers <joseph@codesourcery.com>
Wed, 10 Dec 2014 18:50:07 +0000 (18:50 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 10 Dec 2014 18:50:07 +0000 (18:50 +0000)
As previously discussed in
<https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, MIPS (o32)
waitid has build warnings (now errors) because a function is declared
inline but functions with five-argument syscalls cannot be inlined for
MIPS o32.

This patch disables the -Winline warnings for waitid.c using a
MIPS-specific wrapper file.  As it's whole-file disabling, there's no
point in using push and pop, so just DIAG_IGNORE_NEEDS_COMMENT is
used.

* sysdeps/unix/sysv/linux/mips/mips32/waitid.c: New file.

ChangeLog
sysdeps/unix/sysv/linux/mips/mips32/waitid.c [new file with mode: 0644]

index a99abbc..0e060b3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2014-12-10  Joseph Myers  <joseph@codesourcery.com>
 
+       * sysdeps/unix/sysv/linux/mips/mips32/waitid.c: New file.
+
        * sysdeps/unix/sysv/linux/mips/mips64/Makefile
        [$(subdir) == signal] (CFLAGS-sigaction.c): New variable.
        [$(subdir) == nptl] (CFLAGS-sigaction.c): Likewise.
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/waitid.c b/sysdeps/unix/sysv/linux/mips/mips32/waitid.c
new file mode 100644 (file)
index 0000000..c18a57c
--- /dev/null
@@ -0,0 +1,7 @@
+#include <libc-internal.h>
+
+/* MIPS forces a frame pointer for five-argument syscalls using
+   alloca, so resulting in "inlining failed in call to 'do_waitid':
+   function not inlinable".  */
+DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Winline");
+#include <sysdeps/unix/sysv/linux/waitid.c>