uclibc: fix knock build issue
This patch sync's with GNU C library and removes __FAVOR_BSD. Fixes: http://autobuild.buildroot.net/results/908/90863b5adb769a346acd3dc4bbe8d5fa497a0581/build-end.log Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
24f2eb1e15
commit
2b38e6dab8
373
package/uclibc/0001-remove-__FAVOR_BSD.patch
Normal file
373
package/uclibc/0001-remove-__FAVOR_BSD.patch
Normal file
|
@ -0,0 +1,373 @@
|
|||
From 58a5ba12bffad5916d9897c2870fc483f1db8282 Mon Sep 17 00:00:00 2001
|
||||
From: Waldemar Brodkorb <wbx@openadk.org>
|
||||
Date: Thu, 22 Jun 2017 22:20:20 +0200
|
||||
Subject: [PATCH] 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>
|
||||
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
|
||||
---
|
||||
include/features.h | 10 ----
|
||||
include/netinet/tcp.h | 123 ++++++++++++++++++++++++++------------------------
|
||||
include/netinet/udp.h | 33 +++++++-------
|
||||
include/setjmp.h | 10 +---
|
||||
include/signal.h | 18 ++------
|
||||
include/unistd.h | 30 ++----------
|
||||
6 files changed, 88 insertions(+), 136 deletions(-)
|
||||
|
||||
diff --git a/include/features.h b/include/features.h
|
||||
index 3a99593..7dc913f 100644
|
||||
--- a/include/features.h
|
||||
+++ b/include/features.h
|
||||
@@ -78,7 +78,6 @@
|
||||
__USE_GNU Define GNU extensions.
|
||||
__USE_REENTRANT Define reentrant/thread-safe *_r functions.
|
||||
__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
|
||||
defined by this file unconditionally. `__GNU_LIBRARY__' is provided
|
||||
@@ -115,7 +114,6 @@
|
||||
#undef __USE_GNU
|
||||
#undef __USE_REENTRANT
|
||||
#undef __USE_FORTIFY_LEVEL
|
||||
-#undef __FAVOR_BSD
|
||||
#undef __KERNEL_STRICT_NAMES
|
||||
|
||||
/* Suppress kernel-name space pollution unless user expressedly asks
|
||||
@@ -155,14 +153,6 @@
|
||||
# define _DEFAULT_SOURCE 1
|
||||
#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. */
|
||||
#ifdef _GNU_SOURCE
|
||||
# undef _ISOC99_SOURCE
|
||||
diff --git a/include/netinet/tcp.h b/include/netinet/tcp.h
|
||||
index 04032bb..ade01cd 100644
|
||||
--- a/include/netinet/tcp.h
|
||||
+++ b/include/netinet/tcp.h
|
||||
@@ -65,75 +65,78 @@
|
||||
#ifdef __USE_MISC
|
||||
# include <sys/types.h>
|
||||
# include <sys/socket.h>
|
||||
+# include <stdint.h>
|
||||
|
||||
-# ifdef __FAVOR_BSD
|
||||
-typedef u_int32_t tcp_seq;
|
||||
+typedef uint32_t tcp_seq;
|
||||
/*
|
||||
* TCP header.
|
||||
* Per RFC 793, September, 1981.
|
||||
*/
|
||||
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
|
||||
{
|
||||
TCP_ESTABLISHED = 1,
|
||||
diff --git a/include/netinet/udp.h b/include/netinet/udp.h
|
||||
index 7d49768..ac6f234 100644
|
||||
--- a/include/netinet/udp.h
|
||||
+++ b/include/netinet/udp.h
|
||||
@@ -52,27 +52,28 @@
|
||||
|
||||
|
||||
/* UDP header as specified by RFC 768, August 1980. */
|
||||
-#ifdef __FAVOR_BSD
|
||||
|
||||
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 */
|
||||
#define UDP_CORK 1 /* Never send partially complete segments. */
|
||||
#define UDP_ENCAP 100 /* Set the socket to accept
|
||||
diff --git a/include/setjmp.h b/include/setjmp.h
|
||||
index 71c1d35..27cac95 100644
|
||||
--- a/include/setjmp.h
|
||||
+++ b/include/setjmp.h
|
||||
@@ -59,21 +59,13 @@ __END_NAMESPACE_STD
|
||||
extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask)
|
||||
__THROWNL;
|
||||
|
||||
-#ifndef __FAVOR_BSD
|
||||
/* Store the calling environment in ENV, not saving the signal mask.
|
||||
Return 0. */
|
||||
extern int _setjmp (struct __jmp_buf_tag __env[1]) __THROWNL;
|
||||
|
||||
/* Do not save the signal mask. This is equivalent to the `_setjmp'
|
||||
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
|
||||
|
||||
diff --git a/include/signal.h b/include/signal.h
|
||||
index 38292a7..d2d5e4a 100644
|
||||
--- a/include/signal.h
|
||||
+++ b/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
|
||||
BSD definition defines the argument as a mask of the signal, while
|
||||
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
|
||||
__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. */
|
||||
extern int sigpause(int __sig);
|
||||
-/*# define sigpause(sig) __sigpause ((sig), 1)*/
|
||||
# endif
|
||||
-#endif
|
||||
#endif /* __UCLIBC_SUSV4_LEGACY__ */
|
||||
|
||||
#if 0 /*def __USE_BSD*/
|
||||
diff --git a/include/unistd.h b/include/unistd.h
|
||||
index 8e4daf6..f48ce21 100644
|
||||
--- a/include/unistd.h
|
||||
+++ b/include/unistd.h
|
||||
@@ -673,17 +673,8 @@ libc_hidden_proto(getpid)
|
||||
/* Get the process ID of the calling process's parent. */
|
||||
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;
|
||||
-#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. */
|
||||
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;
|
||||
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
|
||||
calling conventions. The BSD function is the same as POSIX.1 `setpgid'
|
||||
(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.
|
||||
|
||||
- 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.
|
||||
This is exactly the same as `setpgid (0, 0)'. */
|
||||
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.
|
||||
The process group IDs of the session and the calling process
|
||||
--
|
||||
2.1.4
|
||||
|
Loading…
Reference in a new issue