traceroute: use our LDFLAGS in native builds; unbreak musl build.
This commit is contained in:
parent
e9848b351c
commit
8ae1075b48
2 changed files with 360 additions and 2 deletions
358
srcpkgs/traceroute/patches/musl.patch
Normal file
358
srcpkgs/traceroute/patches/musl.patch
Normal file
|
@ -0,0 +1,358 @@
|
|||
--- traceroute/csum.c 2013-07-19 16:47:55.000000000 +0200
|
||||
+++ traceroute/csum.c 2014-12-28 06:31:08.164629774 +0100
|
||||
@@ -12,11 +12,11 @@
|
||||
#include "traceroute.h"
|
||||
|
||||
|
||||
-u_int16_t in_csum (const void *ptr, size_t len) {
|
||||
- const u_int16_t *p = (const u_int16_t *) ptr;
|
||||
+uint16_t in_csum (const void *ptr, size_t len) {
|
||||
+ const uint16_t *p = (const uint16_t *) ptr;
|
||||
size_t nw = len / 2;
|
||||
unsigned int sum = 0;
|
||||
- u_int16_t res;
|
||||
+ uint16_t res;
|
||||
|
||||
while (nw--) sum += *p++;
|
||||
|
||||
--- traceroute/extension.c 2013-07-14 16:29:08.000000000 +0200
|
||||
+++ traceroute/extension.c 2014-12-28 06:31:08.164629774 +0100
|
||||
@@ -14,16 +14,16 @@ struct icmp_ext_header {
|
||||
unsigned int reserved:4;
|
||||
unsigned int version:4;
|
||||
#endif
|
||||
- u_int8_t reserved1;
|
||||
- u_int16_t checksum;
|
||||
+ uint8_t reserved1;
|
||||
+ uint16_t checksum;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
|
||||
struct icmp_ext_object {
|
||||
- u_int16_t length;
|
||||
- u_int8_t class;
|
||||
- u_int8_t c_type;
|
||||
- u_int8_t data[0];
|
||||
+ uint16_t length;
|
||||
+ uint8_t class;
|
||||
+ uint8_t c_type;
|
||||
+ uint8_t data[0];
|
||||
};
|
||||
|
||||
#define MPLS_CLASS 1
|
||||
@@ -49,7 +49,7 @@ static int try_extension (probe *pb, cha
|
||||
if (iext->version != 2) return -1;
|
||||
|
||||
if (iext->checksum &&
|
||||
- in_csum (iext, len) != (u_int16_t) ~0
|
||||
+ in_csum (iext, len) != (uint16_t) ~0
|
||||
) return -1;
|
||||
|
||||
buf += sizeof (*iext);
|
||||
@@ -60,7 +60,7 @@ static int try_extension (probe *pb, cha
|
||||
struct icmp_ext_object *obj = (struct icmp_ext_object *) buf;
|
||||
size_t objlen = ntohs (obj->length);
|
||||
size_t data_len;
|
||||
- u_int32_t *ui = (u_int32_t *) obj->data;
|
||||
+ uint32_t *ui = (uint32_t *) obj->data;
|
||||
int i, n;
|
||||
|
||||
if (objlen < sizeof (*obj) ||
|
||||
@@ -68,7 +68,7 @@ static int try_extension (probe *pb, cha
|
||||
) return -1;
|
||||
|
||||
data_len = objlen - sizeof (*obj);
|
||||
- if (data_len % sizeof (u_int32_t))
|
||||
+ if (data_len % sizeof (uint32_t))
|
||||
return -1; /* must be 32bit rounded... */
|
||||
|
||||
n = data_len / sizeof (*ui);
|
||||
@@ -85,7 +85,7 @@ static int try_extension (probe *pb, cha
|
||||
do_snprintf (curr, end, "MPLS:");
|
||||
|
||||
for (i = 0; i < n; i++, ui++) {
|
||||
- u_int32_t mpls = ntohl (*ui);
|
||||
+ uint32_t mpls = ntohl (*ui);
|
||||
|
||||
do_snprintf (curr, end, "%sL=%u,E=%u,S=%u,T=%u",
|
||||
i ? "/" : "",
|
||||
--- traceroute/mod-dccp.c 2013-11-19 16:51:53.000000000 +0100
|
||||
+++ traceroute/mod-dccp.c 2014-12-28 06:31:08.166629774 +0100
|
||||
@@ -30,7 +30,7 @@ static unsigned int dest_port = 0;
|
||||
static int raw_sk = -1;
|
||||
static int last_ttl = 0;
|
||||
|
||||
-static u_int8_t buf[1024]; /* enough, enough... */
|
||||
+static uint8_t buf[1024]; /* enough, enough... */
|
||||
static size_t csum_len = 0;
|
||||
static struct dccp_hdr *dh = NULL;
|
||||
static struct dccp_hdr_ext *dhe = NULL;
|
||||
@@ -51,8 +51,8 @@ static int dccp_init (const sockaddr_any
|
||||
int af = dest->sa.sa_family;
|
||||
sockaddr_any src;
|
||||
socklen_t len;
|
||||
- u_int8_t *ptr;
|
||||
- u_int16_t *lenp;
|
||||
+ uint8_t *ptr;
|
||||
+ uint16_t *lenp;
|
||||
|
||||
|
||||
dest_addr = *dest;
|
||||
@@ -117,10 +117,10 @@ static int dccp_init (const sockaddr_any
|
||||
ptr += len;
|
||||
}
|
||||
|
||||
- lenp = (u_int16_t *) ptr;
|
||||
- ptr += sizeof (u_int16_t);
|
||||
- *((u_int16_t *) ptr) = htons ((u_int16_t) IPPROTO_DCCP);
|
||||
- ptr += sizeof (u_int16_t);
|
||||
+ lenp = (uint16_t *) ptr;
|
||||
+ ptr += sizeof (uint16_t);
|
||||
+ *((uint16_t *) ptr) = htons ((uint16_t) IPPROTO_DCCP);
|
||||
+ ptr += sizeof (uint16_t);
|
||||
|
||||
|
||||
/* Construct DCCP header */
|
||||
@@ -153,7 +153,7 @@ static int dccp_init (const sockaddr_any
|
||||
if (csum_len > sizeof (buf))
|
||||
error ("impossible"); /* paranoia */
|
||||
|
||||
- len = ptr - (u_int8_t *) dh;
|
||||
+ len = ptr - (uint8_t *) dh;
|
||||
if (len & 0x03) error ("impossible"); /* as >>2 ... */
|
||||
|
||||
*lenp = htons (len);
|
||||
@@ -232,7 +232,7 @@ static probe *dccp_check_reply (int sk,
|
||||
char *buf, size_t len) {
|
||||
probe *pb;
|
||||
struct dccp_hdr *ndh = (struct dccp_hdr *) buf;
|
||||
- u_int16_t sport, dport;
|
||||
+ uint16_t sport, dport;
|
||||
|
||||
|
||||
if (len < 8) return NULL; /* too short */
|
||||
--- traceroute/mod-icmp.c 2014-11-12 00:55:56.000000000 +0100
|
||||
+++ traceroute/mod-icmp.c 2014-12-28 06:31:08.167629774 +0100
|
||||
@@ -20,8 +20,8 @@
|
||||
|
||||
|
||||
static sockaddr_any dest_addr = {{ 0, }, };
|
||||
-static u_int16_t seq = 1;
|
||||
-static u_int16_t ident = 0;
|
||||
+static uint16_t seq = 1;
|
||||
+static uint16_t ident = 0;
|
||||
|
||||
static char *data;
|
||||
static size_t *length_p;
|
||||
@@ -173,7 +173,7 @@ static probe *icmp_check_reply (int sk,
|
||||
char *buf, size_t len) {
|
||||
int af = dest_addr.sa.sa_family;
|
||||
int type;
|
||||
- u_int16_t recv_id, recv_seq;
|
||||
+ uint16_t recv_id, recv_seq;
|
||||
probe *pb;
|
||||
|
||||
|
||||
--- traceroute/mod-tcp.c 2013-03-27 15:01:15.000000000 +0100
|
||||
+++ traceroute/mod-tcp.c 2014-12-28 06:35:44.165642089 +0100
|
||||
@@ -26,6 +26,37 @@
|
||||
#define IP_MTU 14
|
||||
#endif
|
||||
|
||||
+#ifndef TCPOPT_NOP
|
||||
+# define TCPOPT_NOP 1
|
||||
+#endif
|
||||
+#ifndef TCPOPT_MAXSEG
|
||||
+# define TCPOPT_MAXSEG 2
|
||||
+#endif
|
||||
+#ifndef TCPOPT_WINDOW
|
||||
+# define TCPOPT_WINDOW 3
|
||||
+#endif
|
||||
+#ifndef TCPOPT_SACK_PERMITTED
|
||||
+# define TCPOPT_SACK_PERMITTED 4
|
||||
+#endif
|
||||
+#ifndef TCPOPT_SACK
|
||||
+# define TCPOPT_SACK 5
|
||||
+#endif
|
||||
+#ifndef TCPOPT_TIMESTAMP
|
||||
+# define TCPOPT_TIMESTAMP 8
|
||||
+#endif
|
||||
+
|
||||
+#ifndef TCPOLEN_MAXSEG
|
||||
+# define TCPOLEN_MAXSEG 4
|
||||
+#endif
|
||||
+#ifndef TCPOLEN_WINDOW
|
||||
+# define TCPOLEN_WINDOW 3
|
||||
+#endif
|
||||
+#ifndef TCPOLEN_SACK_PERMITTED
|
||||
+# define TCPOLEN_SACK_PERMITTED 2
|
||||
+#endif
|
||||
+#ifndef TCPOLEN_TIMESTAMP
|
||||
+# define TCPOLEN_TIMESTAMP 10
|
||||
+#endif
|
||||
|
||||
static sockaddr_any dest_addr = {{ 0, }, };
|
||||
static unsigned int dest_port = 0;
|
||||
@@ -33,11 +64,11 @@ static unsigned int dest_port = 0;
|
||||
static int raw_sk = -1;
|
||||
static int last_ttl = 0;
|
||||
|
||||
-static u_int8_t buf[1024]; /* enough, enough... */
|
||||
+static uint8_t buf[1024]; /* enough, enough... */
|
||||
static size_t csum_len = 0;
|
||||
static struct tcphdr *th = NULL;
|
||||
|
||||
-#define TH_FLAGS(TH) (((u_int8_t *) (TH))[13])
|
||||
+#define TH_FLAGS(TH) (((uint8_t *) (TH))[13])
|
||||
#define TH_FIN 0x01
|
||||
#define TH_SYN 0x02
|
||||
#define TH_RST 0x04
|
||||
@@ -164,7 +195,7 @@ static CLIF_option tcp_options[] = {
|
||||
static int check_sysctl (const char *name) {
|
||||
int fd, res;
|
||||
char buf[sizeof (SYSCTL_PREFIX) + strlen (name) + 1];
|
||||
- u_int8_t ch;
|
||||
+ uint8_t ch;
|
||||
|
||||
strcpy (buf, SYSCTL_PREFIX);
|
||||
strcat (buf, name);
|
||||
@@ -191,8 +222,8 @@ static int tcp_init (const sockaddr_any
|
||||
sockaddr_any src;
|
||||
int mtu;
|
||||
socklen_t len;
|
||||
- u_int8_t *ptr;
|
||||
- u_int16_t *lenp;
|
||||
+ uint8_t *ptr;
|
||||
+ uint16_t *lenp;
|
||||
|
||||
|
||||
dest_addr = *dest;
|
||||
@@ -286,10 +317,10 @@ static int tcp_init (const sockaddr_any
|
||||
ptr += len;
|
||||
}
|
||||
|
||||
- lenp = (u_int16_t *) ptr;
|
||||
- ptr += sizeof (u_int16_t);
|
||||
- *((u_int16_t *) ptr) = htons ((u_int16_t) IPPROTO_TCP);
|
||||
- ptr += sizeof (u_int16_t);
|
||||
+ lenp = (uint16_t *) ptr;
|
||||
+ ptr += sizeof (uint16_t);
|
||||
+ *((uint16_t *) ptr) = htons ((uint16_t) IPPROTO_TCP);
|
||||
+ ptr += sizeof (uint16_t);
|
||||
|
||||
|
||||
/* Construct TCP header */
|
||||
@@ -309,13 +340,13 @@ static int tcp_init (const sockaddr_any
|
||||
|
||||
/* Build TCP options */
|
||||
|
||||
- ptr = (u_int8_t *) (th + 1);
|
||||
+ ptr = (uint8_t *) (th + 1);
|
||||
|
||||
if (flags & TH_SYN) {
|
||||
*ptr++ = TCPOPT_MAXSEG; /* 2 */
|
||||
*ptr++ = TCPOLEN_MAXSEG; /* 4 */
|
||||
- *((u_int16_t *) ptr) = htons (mss ? mss : mtu);
|
||||
- ptr += sizeof (u_int16_t);
|
||||
+ *((uint16_t *) ptr) = htons (mss ? mss : mtu);
|
||||
+ ptr += sizeof (uint16_t);
|
||||
}
|
||||
|
||||
if (flags & FL_TSTAMP) {
|
||||
@@ -330,10 +361,10 @@ static int tcp_init (const sockaddr_any
|
||||
*ptr++ = TCPOPT_TIMESTAMP; /* 8 */
|
||||
*ptr++ = TCPOLEN_TIMESTAMP; /* 10 */
|
||||
|
||||
- *((u_int32_t *) ptr) = random_seq (); /* really! */
|
||||
- ptr += sizeof (u_int32_t);
|
||||
- *((u_int32_t *) ptr) = (flags & TH_ACK) ? random_seq () : 0;
|
||||
- ptr += sizeof (u_int32_t);
|
||||
+ *((uint32_t *) ptr) = random_seq (); /* really! */
|
||||
+ ptr += sizeof (uint32_t);
|
||||
+ *((uint32_t *) ptr) = (flags & TH_ACK) ? random_seq () : 0;
|
||||
+ ptr += sizeof (uint32_t);
|
||||
}
|
||||
else if (flags & FL_SACK) {
|
||||
*ptr++ = TCPOPT_NOP; /* 1 */
|
||||
@@ -355,7 +386,7 @@ static int tcp_init (const sockaddr_any
|
||||
if (csum_len > sizeof (buf))
|
||||
error ("impossible"); /* paranoia */
|
||||
|
||||
- len = ptr - (u_int8_t *) th;
|
||||
+ len = ptr - (uint8_t *) th;
|
||||
if (len & 0x03) error ("impossible"); /* as >>2 ... */
|
||||
|
||||
*lenp = htons (len);
|
||||
@@ -436,7 +467,7 @@ static probe *tcp_check_reply (int sk, i
|
||||
char *buf, size_t len) {
|
||||
probe *pb;
|
||||
struct tcphdr *tcp = (struct tcphdr *) buf;
|
||||
- u_int16_t sport, dport;
|
||||
+ uint16_t sport, dport;
|
||||
|
||||
|
||||
if (len < 8) return NULL; /* too short */
|
||||
--- traceroute/mod-udp.c 2013-12-14 15:51:44.000000000 +0100
|
||||
+++ traceroute/mod-udp.c 2014-12-28 06:31:08.172629774 +0100
|
||||
@@ -71,7 +71,7 @@ static int udp_init (const sockaddr_any
|
||||
dest_addr = *dest;
|
||||
|
||||
if (!port_seq) port_seq = DEF_UDP_PORT;
|
||||
- dest_addr.sin.sin_port = htons ((u_int16_t) port_seq);
|
||||
+ dest_addr.sin.sin_port = htons ((uint16_t) port_seq);
|
||||
|
||||
fill_data (packet_len_p);
|
||||
|
||||
@@ -107,7 +107,7 @@ static int udplite_init (const sockaddr_
|
||||
dest_addr = *dest;
|
||||
|
||||
if (!port_seq) port_seq = DEF_UDP_PORT; /* XXX: Hmmm... */
|
||||
- dest_addr.sin.sin_port = htons ((u_int16_t) port_seq);
|
||||
+ dest_addr.sin.sin_port = htons ((uint16_t) port_seq);
|
||||
|
||||
protocol = IPPROTO_UDPLITE;
|
||||
|
||||
--- traceroute/traceroute.c 2014-11-12 04:33:00.000000000 +0100
|
||||
+++ traceroute/traceroute.c 2014-12-28 06:32:30.278633438 +0100
|
||||
@@ -52,6 +52,12 @@
|
||||
#define IPV6_PMTUDISC_PROBE 3
|
||||
#endif
|
||||
|
||||
+#ifndef AI_IDN
|
||||
+#define AI_IDN 0
|
||||
+#endif
|
||||
+#ifndef NI_IDN
|
||||
+#define NI_IDN 0
|
||||
+#endif
|
||||
|
||||
#define MAX_HOPS 255
|
||||
#define MAX_PROBES 10
|
||||
@@ -325,7 +331,7 @@ static void init_ip_options (void) {
|
||||
rth->ip6r_type = ipv6_rthdr_type;
|
||||
rth->ip6r_segleft = num_gateways;
|
||||
|
||||
- *((u_int32_t *) (rth + 1)) = 0;
|
||||
+ *((uint32_t *) (rth + 1)) = 0;
|
||||
|
||||
in6 = (struct in6_addr *) (rtbuf + 8);
|
||||
for (i = 0; i < num_gateways; i++)
|
||||
@@ -606,7 +612,7 @@ int main (int argc, char *argv[]) {
|
||||
htonl (((tos & 0xff) << 20) | (flow_label & 0x000fffff));
|
||||
|
||||
if (src_port) {
|
||||
- src_addr.sin.sin_port = htons ((u_int16_t) src_port);
|
||||
+ src_addr.sin.sin_port = htons ((uint16_t) src_port);
|
||||
src_addr.sa.sa_family = af;
|
||||
}
|
||||
|
||||
--- traceroute/traceroute.h 2013-11-19 15:46:11.000000000 +0100
|
||||
+++ traceroute/traceroute.h 2014-12-28 06:31:08.180629775 +0100
|
||||
@@ -92,7 +92,7 @@ const char *get_as_path (const char *que
|
||||
int raw_can_connect (void);
|
||||
|
||||
unsigned int random_seq (void);
|
||||
-u_int16_t in_csum (const void *ptr, size_t len);
|
||||
+uint16_t in_csum (const void *ptr, size_t len);
|
||||
|
||||
|
||||
void tr_register_module (tr_module *module);
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'traceroute'
|
||||
pkgname=traceroute
|
||||
version=2.0.21
|
||||
revision=1
|
||||
revision=2
|
||||
short_desc="Traces the route taken by packets over an IPv4/IPv6 network"
|
||||
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||
license="GPL-2"
|
||||
|
@ -13,7 +13,7 @@ do_build() {
|
|||
if [ "$CROSS_BUILD" ]; then
|
||||
make LDFLAGS="-L${wrksrc}/libsupp $LDFLAGS" CFLAGS="$CFLAGS" CROSS=${XBPS_CROSS_TRIPLET}- ${makejobs}
|
||||
else
|
||||
make CFLAGS="$CFLAGS" ${makejobs}
|
||||
make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" ${makejobs}
|
||||
fi
|
||||
}
|
||||
do_install() {
|
||||
|
|
Loading…
Reference in a new issue