about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--mach/mach/mig_support.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/mach/mach/mig_support.h b/mach/mach/mig_support.h
index 8fe443157a..bd01fd328f 100644
--- a/mach/mach/mig_support.h
+++ b/mach/mach/mig_support.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1994, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1994, 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,6 +27,19 @@
 #include <sys/types.h>
 #include <string.h>
 
+#ifndef __USE_GNU
+/* The only problem that has come up so far is __stpncpy being undeclared
+   below because <string.h> doesn't declare it without __USE_GNU.  We could
+   work around that problem by just adding the declaration there, or by
+   eliding the inline functions in the absence of __USE_GNU.  But either of
+   these would result in unoptimized calls (because no inline version of
+   __stpncpy will have been defined), and there may be other niggling
+   problems lurking.  Instead we simply insist on _GNU_SOURCE for
+   compiling mig output; anyway, that better reflects the fact that mig
+   output requires nonstandard special support code not found elsewhere.  */
+# error mig stubs must be compiled with -D_GNU_SOURCE
+#endif
+
 /* MiG initialization.  */
 extern void __mig_init (void *__first);
 extern void mig_init (void *__first);