Browse Source

remove __FAVOR_BSD

Remove __FAVOR_BSD and sync with GNU C library

Some issues compiling knock application fixed.

Reported-By: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Waldemar Brodkorb 6 years ago
parent
commit
58a5ba12bf
6 changed files with 88 additions and 136 deletions
  1. 0 10
      include/features.h
  2. 63 60
      include/netinet/tcp.h
  3. 17 16
      include/netinet/udp.h
  4. 1 9
      include/setjmp.h
  5. 3 15
      include/signal.h
  6. 4 26
      include/unistd.h

+ 0 - 10
include/features.h

@@ -78,7 +78,6 @@
    __USE_GNU		Define GNU extensions.
    __USE_GNU		Define GNU extensions.
    __USE_REENTRANT	Define reentrant/thread-safe *_r functions.
    __USE_REENTRANT	Define reentrant/thread-safe *_r functions.
    __USE_FORTIFY_LEVEL	Additional security measures used, according to level.
    __USE_FORTIFY_LEVEL	Additional security measures used, according to level.
-   __FAVOR_BSD		Favor 4.3BSD things in cases of conflict.
 
 
    The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
    The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
    defined by this file unconditionally.  `__GNU_LIBRARY__' is provided
    defined by this file unconditionally.  `__GNU_LIBRARY__' is provided
@@ -115,7 +114,6 @@
 #undef	__USE_GNU
 #undef	__USE_GNU
 #undef	__USE_REENTRANT
 #undef	__USE_REENTRANT
 #undef	__USE_FORTIFY_LEVEL
 #undef	__USE_FORTIFY_LEVEL
-#undef	__FAVOR_BSD
 #undef	__KERNEL_STRICT_NAMES
 #undef	__KERNEL_STRICT_NAMES
 
 
 /* Suppress kernel-name space pollution unless user expressedly asks
 /* Suppress kernel-name space pollution unless user expressedly asks
@@ -155,14 +153,6 @@
 # define _DEFAULT_SOURCE	1
 # define _DEFAULT_SOURCE	1
 #endif
 #endif
 
 
-/* If _BSD_SOURCE was defined by the user, favor BSD over POSIX.  */
-#if defined _BSD_SOURCE && \
-    !(defined _POSIX_SOURCE || defined _POSIX_C_SOURCE || \
-      defined _XOPEN_SOURCE || defined _XOPEN_SOURCE_EXTENDED || \
-      defined _GNU_SOURCE || defined _SVID_SOURCE)
-# define __FAVOR_BSD	1
-#endif
-
 /* If _GNU_SOURCE was defined by the user, turn on all the other features.  */
 /* If _GNU_SOURCE was defined by the user, turn on all the other features.  */
 #ifdef _GNU_SOURCE
 #ifdef _GNU_SOURCE
 # undef  _ISOC99_SOURCE
 # undef  _ISOC99_SOURCE

+ 63 - 60
include/netinet/tcp.h

@@ -65,75 +65,78 @@
 #ifdef __USE_MISC
 #ifdef __USE_MISC
 # include <sys/types.h>
 # include <sys/types.h>
 # include <sys/socket.h>
 # include <sys/socket.h>
+# include <stdint.h>
 
 
-# ifdef __FAVOR_BSD
-typedef	u_int32_t tcp_seq;
+typedef	uint32_t tcp_seq;
 /*
 /*
  * TCP header.
  * TCP header.
  * Per RFC 793, September, 1981.
  * Per RFC 793, September, 1981.
  */
  */
 struct tcphdr
 struct tcphdr
   {
   {
-    u_int16_t th_sport;		/* source port */
-    u_int16_t th_dport;		/* destination port */
-    tcp_seq th_seq;		/* sequence number */
-    tcp_seq th_ack;		/* acknowledgement number */
-#  if __BYTE_ORDER == __LITTLE_ENDIAN
-    u_int8_t th_x2:4;		/* (unused) */
-    u_int8_t th_off:4;		/* data offset */
-#  endif
-#  if __BYTE_ORDER == __BIG_ENDIAN
-    u_int8_t th_off:4;		/* data offset */
-    u_int8_t th_x2:4;		/* (unused) */
-#  endif
-    u_int8_t th_flags;
-#  define TH_FIN	0x01
-#  define TH_SYN	0x02
-#  define TH_RST	0x04
-#  define TH_PUSH	0x08
-#  define TH_ACK	0x10
-#  define TH_URG	0x20
-    u_int16_t th_win;		/* window */
-    u_int16_t th_sum;		/* checksum */
-    u_int16_t th_urp;		/* urgent pointer */
+    __extension__ union
+    {
+      struct
+      {
+	uint16_t th_sport;	/* source port */
+	uint16_t th_dport;	/* destination port */
+	tcp_seq th_seq;		/* sequence number */
+	tcp_seq th_ack;		/* acknowledgement number */
+# if __BYTE_ORDER == __LITTLE_ENDIAN
+	uint8_t th_x2:4;	/* (unused) */
+	uint8_t th_off:4;	/* data offset */
+# endif
+# if __BYTE_ORDER == __BIG_ENDIAN
+	uint8_t th_off:4;	/* data offset */
+	uint8_t th_x2:4;	/* (unused) */
+# endif
+	uint8_t th_flags;
+# define TH_FIN	0x01
+# define TH_SYN	0x02
+# define TH_RST	0x04
+# define TH_PUSH	0x08
+# define TH_ACK	0x10
+# define TH_URG	0x20
+	uint16_t th_win;	/* window */
+	uint16_t th_sum;	/* checksum */
+	uint16_t th_urp;	/* urgent pointer */
+      };
+      struct
+      {
+	uint16_t source;
+	uint16_t dest;
+	uint32_t seq;
+	uint32_t ack_seq;
+# if __BYTE_ORDER == __LITTLE_ENDIAN
+	uint16_t res1:4;
+	uint16_t doff:4;
+	uint16_t fin:1;
+	uint16_t syn:1;
+	uint16_t rst:1;
+	uint16_t psh:1;
+	uint16_t ack:1;
+	uint16_t urg:1;
+	uint16_t res2:2;
+# elif __BYTE_ORDER == __BIG_ENDIAN
+	uint16_t doff:4;
+	uint16_t res1:4;
+	uint16_t res2:2;
+	uint16_t urg:1;
+	uint16_t ack:1;
+	uint16_t psh:1;
+	uint16_t rst:1;
+	uint16_t syn:1;
+	uint16_t fin:1;
+# else
+#  error "Adjust your <bits/endian.h> defines"
+# endif
+	uint16_t window;
+	uint16_t check;
+	uint16_t urg_ptr;
+      };
+    };
 };
 };
 
 
-# else /* !__FAVOR_BSD */
-struct tcphdr
-  {
-    u_int16_t source;
-    u_int16_t dest;
-    u_int32_t seq;
-    u_int32_t ack_seq;
-#  if __BYTE_ORDER == __LITTLE_ENDIAN
-    u_int16_t res1:4;
-    u_int16_t doff:4;
-    u_int16_t fin:1;
-    u_int16_t syn:1;
-    u_int16_t rst:1;
-    u_int16_t psh:1;
-    u_int16_t ack:1;
-    u_int16_t urg:1;
-    u_int16_t res2:2;
-#  elif __BYTE_ORDER == __BIG_ENDIAN
-    u_int16_t doff:4;
-    u_int16_t res1:4;
-    u_int16_t res2:2;
-    u_int16_t urg:1;
-    u_int16_t ack:1;
-    u_int16_t psh:1;
-    u_int16_t rst:1;
-    u_int16_t syn:1;
-    u_int16_t fin:1;
-#  else
-#   error "Adjust your <bits/endian.h> defines"
-#  endif
-    u_int16_t window;
-    u_int16_t check;
-    u_int16_t urg_ptr;
-};
-# endif /* __FAVOR_BSD */
-
 enum
 enum
 {
 {
   TCP_ESTABLISHED = 1,
   TCP_ESTABLISHED = 1,

+ 17 - 16
include/netinet/udp.h

@@ -52,27 +52,28 @@
 
 
 
 
 /* UDP header as specified by RFC 768, August 1980. */
 /* UDP header as specified by RFC 768, August 1980. */
-#ifdef __FAVOR_BSD
 
 
 struct udphdr
 struct udphdr
 {
 {
-  u_int16_t uh_sport;		/* source port */
-  u_int16_t uh_dport;		/* destination port */
-  u_int16_t uh_ulen;		/* udp length */
-  u_int16_t uh_sum;		/* udp checksum */
+  __extension__ union
+  {
+    struct
+    {
+      uint16_t uh_sport;	/* source port */
+      uint16_t uh_dport;	/* destination port */
+      uint16_t uh_ulen;		/* udp length */
+      uint16_t uh_sum;		/* udp checksum */
+    };
+    struct
+    {
+      uint16_t source;
+      uint16_t dest;
+      uint16_t len;
+      uint16_t check;
+    };
+  };
 };
 };
 
 
-#else
-
-struct udphdr
-{
-  u_int16_t source;
-  u_int16_t dest;
-  u_int16_t len;
-  u_int16_t check;
-};
-#endif
-
 /* UDP socket options */
 /* UDP socket options */
 #define UDP_CORK	1	/* Never send partially complete segments.  */
 #define UDP_CORK	1	/* Never send partially complete segments.  */
 #define UDP_ENCAP	100	/* Set the socket to accept
 #define UDP_ENCAP	100	/* Set the socket to accept

+ 1 - 9
include/setjmp.h

@@ -59,21 +59,13 @@ __END_NAMESPACE_STD
 extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask)
 extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask)
     __THROWNL;
     __THROWNL;
 
 
-#ifndef	__FAVOR_BSD
 /* Store the calling environment in ENV, not saving the signal mask.
 /* Store the calling environment in ENV, not saving the signal mask.
    Return 0.  */
    Return 0.  */
 extern int _setjmp (struct __jmp_buf_tag __env[1]) __THROWNL;
 extern int _setjmp (struct __jmp_buf_tag __env[1]) __THROWNL;
 
 
 /* Do not save the signal mask.  This is equivalent to the `_setjmp'
 /* Do not save the signal mask.  This is equivalent to the `_setjmp'
    BSD function.  */
    BSD function.  */
-# define setjmp(env)	_setjmp (env)
-#else
-/* We are in 4.3 BSD-compatibility mode in which `setjmp'
-   saves the signal mask like `sigsetjmp (ENV, 1)'.  We have to
-   define a macro since ISO C says `setjmp' is one.  */
-# define setjmp(env)	setjmp (env)
-#endif /* Favor BSD.  */
-
+#define setjmp(env)	_setjmp (env)
 
 
 __BEGIN_NAMESPACE_STD
 __BEGIN_NAMESPACE_STD
 
 

+ 3 - 15
include/signal.h

@@ -191,27 +191,15 @@ extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
 /* The `sigpause' function has two different interfaces.  The original
 /* The `sigpause' function has two different interfaces.  The original
    BSD definition defines the argument as a mask of the signal, while
    BSD definition defines the argument as a mask of the signal, while
    the more modern interface in X/Open defines it as the signal
    the more modern interface in X/Open defines it as the signal
-   number.  We go with the BSD version unless the user explicitly
-   selects the X/Open version.
+   number.  We go with the X/Open version.
 
 
    This function is a cancellation point and therefore not marked with
    This function is a cancellation point and therefore not marked with
    __THROW.  */
    __THROW.  */
-/*extern int __sigpause (int __sig_or_mask, int __is_sig);*/
-
-#ifdef __FAVOR_BSD
-/* Set the mask of blocked signals to MASK,
-   wait for a signal to arrive, and then restore the mask.  */
-/*extern int sigpause (int __mask) __THROW __attribute_deprecated__;
-# define sigpause(mask) __sigpause ((mask), 0)*/
-/* uClibc note: BSD sigpause is available as __bsd_sigpause.
- * It is intentionally not prototyped */
-#else
-# ifdef __USE_XOPEN
+
+# ifdef __USE_XOPEN_EXTENDED
 /* Remove a signal from the signal mask and suspend the process.  */
 /* Remove a signal from the signal mask and suspend the process.  */
 extern int sigpause(int __sig);
 extern int sigpause(int __sig);
-/*#  define sigpause(sig) __sigpause ((sig), 1)*/
 # endif
 # endif
-#endif
 #endif /* __UCLIBC_SUSV4_LEGACY__ */
 #endif /* __UCLIBC_SUSV4_LEGACY__ */
 
 
 #if 0 /*def __USE_BSD*/
 #if 0 /*def __USE_BSD*/

+ 4 - 26
include/unistd.h

@@ -673,17 +673,8 @@ libc_hidden_proto(getpid)
 /* Get the process ID of the calling process's parent.  */
 /* Get the process ID of the calling process's parent.  */
 extern __pid_t getppid (void) __THROW;
 extern __pid_t getppid (void) __THROW;
 
 
-/* Get the process group ID of the calling process.
-   This function is different on old BSD. */
-#ifndef __FAVOR_BSD
+/* Get the process group ID of the calling process.  */
 extern __pid_t getpgrp (void) __THROW;
 extern __pid_t getpgrp (void) __THROW;
-#else
-# ifdef __REDIRECT_NTH
-extern __pid_t __REDIRECT_NTH (getpgrp, (__pid_t __pid), __getpgid);
-# else
-#  define getpgrp __getpgid
-# endif
-#endif
 
 
 /* Get the process group ID of process PID.  */
 /* Get the process group ID of process PID.  */
 extern __pid_t __getpgid (__pid_t __pid) __THROW;
 extern __pid_t __getpgid (__pid_t __pid) __THROW;
@@ -698,7 +689,7 @@ extern __pid_t getpgid (__pid_t __pid) __THROW;
 extern int setpgid (__pid_t __pid, __pid_t __pgid) __THROW;
 extern int setpgid (__pid_t __pid, __pid_t __pgid) __THROW;
 libc_hidden_proto(setpgid)
 libc_hidden_proto(setpgid)
 
 
-#if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
+#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
 /* Both System V and BSD have `setpgrp' functions, but with different
 /* Both System V and BSD have `setpgrp' functions, but with different
    calling conventions.  The BSD function is the same as POSIX.1 `setpgid'
    calling conventions.  The BSD function is the same as POSIX.1 `setpgid'
    (above).  The System V function takes no arguments and puts the calling
    (above).  The System V function takes no arguments and puts the calling
@@ -706,26 +697,13 @@ libc_hidden_proto(setpgid)
 
 
    New programs should always use `setpgid' instead.
    New programs should always use `setpgid' instead.
 
 
-   The default in GNU is to provide the System V function.  The BSD
-   function is available under -D_BSD_SOURCE.  */
-
-# ifndef __FAVOR_BSD
+   GNU provides the POSIX.1 function.  */
 
 
 /* Set the process group ID of the calling process to its own PID.
 /* Set the process group ID of the calling process to its own PID.
    This is exactly the same as `setpgid (0, 0)'.  */
    This is exactly the same as `setpgid (0, 0)'.  */
 extern int setpgrp (void) __THROW;
 extern int setpgrp (void) __THROW;
 
 
-# else
-
-/* Another name for `setpgid' (above).  */
-#  ifdef __REDIRECT_NTH
-extern int __REDIRECT_NTH (setpgrp, (__pid_t __pid, __pid_t __pgrp), setpgid);
-#  else
-#   define setpgrp setpgid
-#  endif
-
-# endif	/* Favor BSD.  */
-#endif	/* Use SVID or BSD.  */
+#endif	/* Use misc or X/Open.  */
 
 
 /* Create a new session with the calling process as its leader.
 /* Create a new session with the calling process as its leader.
    The process group IDs of the session and the calling process
    The process group IDs of the session and the calling process