_GNU_SOURCE needs to be defined before any standard header.
authorRichard Levitte <levitte@openssl.org>
Mon, 6 Jun 2005 00:50:52 +0000 (00:50 +0000)
committerRichard Levitte <levitte@openssl.org>
Mon, 6 Jun 2005 00:50:52 +0000 (00:50 +0000)
crypto/dso/dso_dlfcn.c

index 67a0f32..56756cf 100644 (file)
  *
  */
 
+/* We need to do this early, because stdio.h includes the header files
+   that handle _GNU_SOURCE and other similar macros.  Defining it later
+   is simply too late, because those headers are protected from re-
+   inclusion.  */
+#ifdef __linux
+# ifndef _GNU_SOURCE
+#  define _GNU_SOURCE  /* make sure dladdr is declared */
+# endif
+#endif
+
 #include <stdio.h>
 #include "cryptlib.h"
 #include <openssl/dso.h>
@@ -69,11 +79,6 @@ DSO_METHOD *DSO_METHOD_dlfcn(void)
 
 #ifdef HAVE_DLFCN_H
 
-#ifdef __linux
-# ifndef _GNU_SOURCE
-#  define _GNU_SOURCE  /* make sure dladdr is declared */
-# endif
-#endif
 #include <dlfcn.h>
 #endif