]> The Tcpdump Group git mirrors - libpcap/commitdiff
Define more feature test macros and do so in a separate header file.
authorGuy Harris <[email protected]>
Mon, 20 Mar 2017 22:20:51 +0000 (15:20 -0700)
committerGuy Harris <[email protected]>
Mon, 20 Mar 2017 22:20:51 +0000 (15:20 -0700)
On Linux, define _GNU_SOURCE to get as much stuff declared as possible.

Define the feature test macros in ftmacros.h, and include that befoe
including any header files other than config.h.

Makefile.in
ftmacros.h [new file with mode: 0644]
portability.h
rpcapd/daemon.c
rpcapd/fileconf.c
rpcapd/rpcapd.c
sockutils.c

index cc383fcc39402674c915b030989ea69e46f17083..6ed8c01558184bae61bc68a2e820b88b6da50dbc 100644 (file)
@@ -119,6 +119,7 @@ HDR = $(PUBHDR) \
        atmuni31.h \
        ethertype.h \
        extract.h \
+       ftmacros.h \
        funcattrs.h \
        gencode.h \
        ieee80211.h \
diff --git a/ftmacros.h b/ftmacros.h
new file mode 100644 (file)
index 0000000..19b9fb4
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 1994, 1995, 1996
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the Computer Systems
+ *     Engineering Group at Lawrence Berkeley Laboratory.
+ * 4. Neither the name of the University nor of the Laboratory may be used
+ *    to endorse or promote products derived from this software without
+ *    specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef ftmacros_h
+#define        ftmacros_h
+
+/*
+ * Define some feature test macros to make sure that everything we want
+ * to be declared gets declared.
+ *
+ * On some UN*Xes we need to force strtok_r() to be declared.
+ * We do *NOT* want to define _POSIX_C_SOURCE, as that tends
+ * to make non-POSIX APIs that we use unavailable.
+ * XXX - is there no portable way to say "please pollute the
+ * namespace to the maximum extent possible"?
+ *
+ * We also want to force crypt() to be declared on systems that use
+ * GNU libc, such as most Linux distributions.
+ */
+#if defined(sun) || defined(__sun)
+  #define __EXTENSIONS__
+#elif defined(_hpux) || defined(hpux) || defined(__hpux)
+  #define _REENTRANT
+#elif defined(__linux__) || defined(linux) || defined(__linux)
+  #define _GNU_SOURCE
+#endif
+
+#endif
index bcaabae3e839a678f3cb239054664fdab9f43af9..179ecd92d70bb09db83c7d6164269c93c7064828 100644 (file)
 
 #include "funcattrs.h"
 
-/*
- * We include <string.h> ourselves, to make sure strtok_r() gets
- * declared if we have it.
- *
- * On some UN*Xes we need to force it to be declared.
- * We do *NOT* want to define _POSIX_C_SOURCE, as that tends
- * to make non-POSIX APIs that we use unavailable.
- * XXX - is there no portable way to say "please pollute the
- * namespace to the maximum extent possible"?
- */
-#if defined(sun) || defined(__sun)
-  #define __EXTENSIONS__
-#elif defined(_hpux) || defined(hpux) || defined(__hpux)
-  #define _REENTRANT
-#endif
-
-#include <string.h>
-
 #ifdef __cplusplus
 extern "C" {
 #endif
index 6a9da4e42f6041dfa55d9050fb762eec6961c65f..ad43682ca2bd9bb1de572caf65bb3170e7647131 100755 (executable)
@@ -33,6 +33,8 @@
 #include "config.h"
 #endif
 
+#include "ftmacros.h"
+
 #include <pcap.h>              // for libpcap/WinPcap calls
 #include <errno.h>             // for the errno variable
 #include <stdlib.h>            // for malloc(), free(), ...
index 5578d10aab35e34e4a426f584d86414edb7a726a..701dd85c9ab05023b5a1bfe23cfcd5652e1bdada 100755 (executable)
 #include "config.h"
 #endif
 
+#include "ftmacros.h"
+
 #include <stdio.h>
+#include <string.h>
 #include <signal.h>
 #include <pcap.h>              // for PCAP_ERRBUF_SIZE
 
-#include "portability.h"       // this includes <string.h>
+#include "portability.h"
 #include "rpcapd.h"
 #include "fileconf.h"
 #include "sockutils.h"         // for SOCK_ASSERT
index a33ca6d2db68f338f98ecf65f6b1b24b1ea9cc19..d00204ab378eb870cab7f56e258be9db037aa486 100755 (executable)
 #define USE_THREADS            // threads vs. subprocesses
 #endif
 
+#include "ftmacros.h"
+
 #include <errno.h>             // for the errno variable
+#include <string.h>            // for strtok, etc
 #include <stdlib.h>            // for malloc(), free(), ...
 #include <pcap.h>              // for PCAP_ERRBUF_SIZE
 #include <signal.h>            // for signal()
 #include <pthread.h>
 
-#include "portability.h"       // this includes <string.h>
+#include "portability.h"
 #include "rpcapd.h"
 #include "fileconf.h"          // for the configuration file management
 #include "sockutils.h"         // for socket calls
index b6a7299c87f078fddf60aefba009949b31f92060..33e2cc6c7c67821eeb8f71824b55dd048e802bec 100644 (file)
@@ -50,6 +50,9 @@
  * ways.
  */
 
+#include "ftmacros.h"
+
+#include <string.h>
 #include <errno.h>     /* for the errno variable */
 #include <stdio.h>     /* for the stderr file */
 #include <stdlib.h>    /* for malloc() and free() */
@@ -59,7 +62,7 @@
 #define INT_MAX                2147483647
 #endif
 
-#include "portability.h"       /* this includes <string.h> */
+#include "portability.h"
 #include "sockutils.h"
 
 #ifdef _WIN32