From 79fc9c4be007da0eca3aa6c8e4d331b260bb21d7 Mon Sep 17 00:00:00 2001 From: markj Date: Wed, 14 May 2014 19:02:00 +0000 Subject: Bind ip/tcp/udp provider translators and symbols to the same versions as in illumos, rather than using "1.0" everywhere. Some of the translators use D functions that are not present in version 1.0 (e.g. inet_ntoa()) which can result in libdtrace crashing when running scripts that restrict themselves to version 1.0 (e.g. with "-x version=1.0"). MFC after: 1 week --- cddl/lib/libdtrace/ip.d | 60 ++++++++++++++++++++++++------------------------ cddl/lib/libdtrace/tcp.d | 50 ++++++++++++++++++++-------------------- cddl/lib/libdtrace/udp.d | 4 ++-- 3 files changed, 57 insertions(+), 57 deletions(-) (limited to 'cddl/lib') diff --git a/cddl/lib/libdtrace/ip.d b/cddl/lib/libdtrace/ip.d index b886a0a..a1a2996 100644 --- a/cddl/lib/libdtrace/ip.d +++ b/cddl/lib/libdtrace/ip.d @@ -125,53 +125,53 @@ typedef struct ipv6info { ip6_t *ipv6_hdr; /* pointer to raw header */ } ipv6info_t; -#pragma D binding "1.0" IPPROTO_IP +#pragma D binding "1.5" IPPROTO_IP inline short IPPROTO_IP = 0; -#pragma D binding "1.0" IPPROTO_ICMP +#pragma D binding "1.5" IPPROTO_ICMP inline short IPPROTO_ICMP = 1; -#pragma D binding "1.0" IPPROTO_IGMP +#pragma D binding "1.5" IPPROTO_IGMP inline short IPPROTO_IGMP = 2; -#pragma D binding "1.0" IPPROTO_IPV4 +#pragma D binding "1.5" IPPROTO_IPV4 inline short IPPROTO_IPV4 = 4; -#pragma D binding "1.0" IPPROTO_TCP +#pragma D binding "1.5" IPPROTO_TCP inline short IPPROTO_TCP = 6; -#pragma D binding "1.0" IPPROTO_UDP +#pragma D binding "1.5" IPPROTO_UDP inline short IPPROTO_UDP = 17; -#pragma D binding "1.0" IPPROTO_IPV6 +#pragma D binding "1.5" IPPROTO_IPV6 inline short IPPROTO_IPV6 = 41; -#pragma D binding "1.0" IPPROTO_ROUTING +#pragma D binding "1.5" IPPROTO_ROUTING inline short IPPROTO_ROUTING = 43; -#pragma D binding "1.0" IPPROTO_FRAGMENT +#pragma D binding "1.5" IPPROTO_FRAGMENT inline short IPPROTO_FRAGMENT = 44; -#pragma D binding "1.0" IPPROTO_RSVP +#pragma D binding "1.5" IPPROTO_RSVP inline short IPPROTO_RSVP = 46; -#pragma D binding "1.0" IPPROTO_GRE +#pragma D binding "1.5" IPPROTO_GRE inline short IPPROTO_GRE = 47; -#pragma D binding "1.0" IPPROTO_ESP +#pragma D binding "1.5" IPPROTO_ESP inline short IPPROTO_ESP = 50; -#pragma D binding "1.0" IPPROTO_AH +#pragma D binding "1.5" IPPROTO_AH inline short IPPROTO_AH = 51; -#pragma D binding "1.0" IPPROTO_MOBILE +#pragma D binding "1.5" IPPROTO_MOBILE inline short IPPROTO_MOBILE = 55; -#pragma D binding "1.0" IPPROTO_ICMPV6 +#pragma D binding "1.5" IPPROTO_ICMPV6 inline short IPPROTO_ICMPV6 = 58; -#pragma D binding "1.0" IPPROTO_DSTOPTS +#pragma D binding "1.5" IPPROTO_DSTOPTS inline short IPPROTO_DSTOPTS = 60; -#pragma D binding "1.0" IPPROTO_ETHERIP +#pragma D binding "1.5" IPPROTO_ETHERIP inline short IPPROTO_ETHERIP = 97; -#pragma D binding "1.0" IPPROTO_PIM +#pragma D binding "1.5" IPPROTO_PIM inline short IPPROTO_PIM = 103; -#pragma D binding "1.0" IPPROTO_IPCOMP +#pragma D binding "1.5" IPPROTO_IPCOMP inline short IPPROTO_IPCOMP = 108; -#pragma D binding "1.0" IPPROTO_SCTP +#pragma D binding "1.5" IPPROTO_SCTP inline short IPPROTO_SCTP = 132; -#pragma D binding "1.0" IPPROTO_RAW +#pragma D binding "1.5" IPPROTO_RAW inline short IPPROTO_RAW = 255; inline uint8_t INP_IPV4 = 0x01; inline uint8_t INP_IPV6 = 0x02; -#pragma D binding "1.0" protocols +#pragma D binding "1.5" protocols inline string protocols[int proto] = proto == IPPROTO_IP ? "IP" : proto == IPPROTO_ICMP ? "ICMP" : @@ -200,12 +200,12 @@ inline string protocols[int proto] = * This field is always NULL according to the current definition of the ip * probes. */ -#pragma D binding "1.0" translator +#pragma D binding "1.5" translator translator pktinfo_t < void *p > { pkt_addr = NULL; }; -#pragma D binding "1.0" translator +#pragma D binding "1.5" translator translator csinfo_t < void *p > { cs_addr = NULL; cs_cid = (uint64_t)p; @@ -213,7 +213,7 @@ translator csinfo_t < void *p > { cs_zoneid = 0; }; -#pragma D binding "1.0" translator +#pragma D binding "1.6.3" translator translator csinfo_t < struct inpcb *p > { cs_addr = NULL; cs_cid = (uint64_t)p; @@ -221,7 +221,7 @@ translator csinfo_t < struct inpcb *p > { cs_zoneid = 0; }; -#pragma D binding "1.0" translator +#pragma D binding "1.5" translator translator ipinfo_t < uint8_t *p > { ip_ver = p == NULL ? 0 : ((struct ip *)p)->ip_v; ip_plength = p == NULL ? 0 : @@ -238,17 +238,17 @@ translator ipinfo_t < uint8_t *p > { inet_ntoa6(&((struct ip6_hdr *)p)->ip6_dst); }; -#pragma D binding "1.0" IFF_LOOPBACK +#pragma D binding "1.5" IFF_LOOPBACK inline int IFF_LOOPBACK = 0x8; -#pragma D binding "1.0" translator +#pragma D binding "1.5" translator translator ifinfo_t < struct ifnet *p > { if_name = p->if_xname; if_local = (p->if_flags & IFF_LOOPBACK) == 0 ? 0 : 1; if_addr = (uintptr_t)p; }; -#pragma D binding "1.0" translator +#pragma D binding "1.5" translator translator ipv4info_t < struct ip *p > { ipv4_ver = p == NULL ? 0 : p->ip_v; ipv4_ihl = p == NULL ? 0 : p->ip_hl; @@ -268,7 +268,7 @@ translator ipv4info_t < struct ip *p > { ipv4_hdr = (ipha_t *)p; }; -#pragma D binding "1.0" translator +#pragma D binding "1.5" translator translator ipv6info_t < struct ip6_hdr *p > { ipv6_ver = p == NULL ? 0 : (ntohl(p->ip6_ctlun.ip6_un1.ip6_un1_flow) & 0xf0000000) >> 28; ipv6_tclass = p == NULL ? 0 : (ntohl(p->ip6_ctlun.ip6_un1.ip6_un1_flow) & 0x0ff00000) >> 20; diff --git a/cddl/lib/libdtrace/tcp.d b/cddl/lib/libdtrace/tcp.d index 4204507..7695e22 100644 --- a/cddl/lib/libdtrace/tcp.d +++ b/cddl/lib/libdtrace/tcp.d @@ -31,49 +31,49 @@ /* * Convert a TCP state value to a string. */ -#pragma D binding "1.0" TCPS_CLOSED +#pragma D binding "1.6.3" TCPS_CLOSED inline int TCPS_CLOSED = 0; -#pragma D binding "1.0" TCPS_LISTEN +#pragma D binding "1.6.3" TCPS_LISTEN inline int TCPS_LISTEN = 1; -#pragma D binding "1.0" TCPS_SYN_SENT +#pragma D binding "1.6.3" TCPS_SYN_SENT inline int TCPS_SYN_SENT = 2; -#pragma D binding "1.0" TCPS_SYN_RECEIVED +#pragma D binding "1.6.3" TCPS_SYN_RECEIVED inline int TCPS_SYN_RECEIVED = 3; -#pragma D binding "1.0" TCPS_ESTABLISHED +#pragma D binding "1.6.3" TCPS_ESTABLISHED inline int TCPS_ESTABLISHED = 4; -#pragma D binding "1.0" TCPS_CLOSE_WAIT +#pragma D binding "1.6.3" TCPS_CLOSE_WAIT inline int TCPS_CLOSE_WAIT = 5; -#pragma D binding "1.0" TCPS_FIN_WAIT_1 +#pragma D binding "1.6.3" TCPS_FIN_WAIT_1 inline int TCPS_FIN_WAIT_1 = 6; -#pragma D binding "1.0" TCPS_CLOSING +#pragma D binding "1.6.3" TCPS_CLOSING inline int TCPS_CLOSING = 7; -#pragma D binding "1.0" TCPS_LAST_ACK +#pragma D binding "1.6.3" TCPS_LAST_ACK inline int TCPS_LAST_ACK = 8; -#pragma D binding "1.0" TCPS_FIN_WAIT_2 +#pragma D binding "1.6.3" TCPS_FIN_WAIT_2 inline int TCPS_FIN_WAIT_2 = 9; -#pragma D binding "1.0" TCPS_TIME_WAIT +#pragma D binding "1.6.3" TCPS_TIME_WAIT inline int TCPS_TIME_WAIT = 10; /* TCP segment flags. */ -#pragma D binding "1.0" TH_FIN +#pragma D binding "1.6.3" TH_FIN inline uint8_t TH_FIN = 0x01; -#pragma D binding "1.0" TH_SYN +#pragma D binding "1.6.3" TH_SYN inline uint8_t TH_SYN = 0x02; -#pragma D binding "1.0" TH_RST +#pragma D binding "1.6.3" TH_RST inline uint8_t TH_RST = 0x04; -#pragma D binding "1.0" TH_PUSH +#pragma D binding "1.6.3" TH_PUSH inline uint8_t TH_PUSH = 0x08; -#pragma D binding "1.0" TH_ACK +#pragma D binding "1.6.3" TH_ACK inline uint8_t TH_ACK = 0x10; -#pragma D binding "1.0" TH_URG +#pragma D binding "1.6.3" TH_URG inline uint8_t TH_URG = 0x20; -#pragma D binding "1.0" TH_ECE +#pragma D binding "1.6.3" TH_ECE inline uint8_t TH_ECE = 0x40; -#pragma D binding "1.0" TH_CWR +#pragma D binding "1.6.3" TH_CWR inline uint8_t TH_CWR = 0x80; /* TCP connection state strings. */ -#pragma D binding "1.0" tcp_state_string +#pragma D binding "1.6.3" tcp_state_string inline string tcp_state_string[int32_t state] = state == TCPS_CLOSED ? "state-closed" : state == TCPS_LISTEN ? "state-listen" : @@ -160,7 +160,7 @@ typedef struct tcpinfoh { struct tcphdr *tcp_hdr; /* raw TCP header */ } tcpinfoh_t; -#pragma D binding "1.0" translator +#pragma D binding "1.6.3" translator translator csinfo_t < struct tcpcb *p > { cs_addr = NULL; cs_cid = (uint64_t)(p == NULL ? 0 : p->t_inpcb); @@ -168,7 +168,7 @@ translator csinfo_t < struct tcpcb *p > { cs_zoneid = 0; }; -#pragma D binding "1.0" translator +#pragma D binding "1.6.3" translator translator tcpsinfo_t < struct tcpcb *p > { tcps_addr = (uintptr_t)p; tcps_local = -1; /* XXX */ @@ -202,7 +202,7 @@ translator tcpsinfo_t < struct tcpcb *p > { tcps_retransmit = p == NULL ? -1 : p->t_rxtshift > 0 ? 1 : 0; }; -#pragma D binding "1.0" translator +#pragma D binding "1.6.3" translator translator tcpinfo_t < struct tcphdr *p > { tcp_sport = p == NULL ? 0 : ntohs(p->th_sport); tcp_dport = p == NULL ? 0 : ntohs(p->th_dport); @@ -221,7 +221,7 @@ translator tcpinfo_t < struct tcphdr *p > { * number, acknowledgement number, window size and urgent pointer are already * in host order and thus don't need to be converted. */ -#pragma D binding "1.0" translator +#pragma D binding "1.6.3" translator translator tcpinfoh_t < struct tcphdr *p > { tcp_sport = p == NULL ? 0 : ntohs(p->th_sport); tcp_dport = p == NULL ? 0 : ntohs(p->th_dport); @@ -235,7 +235,7 @@ translator tcpinfoh_t < struct tcphdr *p > { tcp_hdr = (struct tcphdr *)p; }; -#pragma D binding "1.0" translator +#pragma D binding "1.6.3" translator translator tcplsinfo_t < int s > { tcps_state = s; }; diff --git a/cddl/lib/libdtrace/udp.d b/cddl/lib/libdtrace/udp.d index 5ad625d..21538eb 100644 --- a/cddl/lib/libdtrace/udp.d +++ b/cddl/lib/libdtrace/udp.d @@ -50,7 +50,7 @@ typedef struct udpinfo { struct udphdr *udp_hdr; /* raw UDP header */ } udpinfo_t; -#pragma D binding "1.0" translator +#pragma D binding "1.6.3" translator translator udpsinfo_t < struct inpcb *p > { udps_addr = (uintptr_t)p; udps_lport = p == NULL ? 0 : ntohs(p->inp_inc.inc_ie.ie_lport); @@ -65,7 +65,7 @@ translator udpsinfo_t < struct inpcb *p > { inet_ntoa6(&p->inp_inc.inc_ie.ie_dependfaddr.ie6_foreign); }; -#pragma D binding "1.0" translator +#pragma D binding "1.6.3" translator translator udpinfo_t < struct udphdr *p > { udp_sport = p == NULL ? 0 : ntohs(p->uh_sport); udp_dport = p == NULL ? 0 : ntohs(p->uh_dport); -- cgit v1.1 From 9e29b5f65069140228be54ba30dab6ace4548361 Mon Sep 17 00:00:00 2001 From: delphij Date: Thu, 22 May 2014 00:01:31 +0000 Subject: Explicitly link libzfs against libavl as it is done in OpenSolaris (4543:12bb2876a62e). Without this, some third party applications may break because the lack of AVL related symbols. FreeBSD base system are not affected because the FreeBSD ZFS command line tools were all linked against libavl and thus hide the underlying issue. PR: java/183081 Tested by: jkim MFC after: 3 days --- cddl/lib/libzfs/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'cddl/lib') diff --git a/cddl/lib/libzfs/Makefile b/cddl/lib/libzfs/Makefile index 16660ac..4010ac1 100644 --- a/cddl/lib/libzfs/Makefile +++ b/cddl/lib/libzfs/Makefile @@ -7,8 +7,8 @@ LIB= zfs DPADD= ${LIBMD} ${LIBPTHREAD} ${LIBUMEM} ${LIBUTIL} ${LIBM} ${LIBNVPAIR} \ - ${LIBZFS_CORE} -LDADD= -lmd -lpthread -lumem -lutil -lm -lnvpair -lzfs_core + ${LIBAVL} ${LIBZFS_CORE} +LDADD= -lmd -lpthread -lumem -lutil -lm -lnvpair -lavl -lzfs_core SRCS= deviceid.c \ fsshare.c \ -- cgit v1.1 From b14d31acfe746e87bae81feaeeb78f15dc35ed86 Mon Sep 17 00:00:00 2001 From: rpaulo Date: Thu, 26 Jun 2014 22:38:06 +0000 Subject: Add stubs for CTF functions which are not yet implemented. MFC after: 2 weeks --- cddl/lib/libdtrace/libproc_compat.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'cddl/lib') diff --git a/cddl/lib/libdtrace/libproc_compat.h b/cddl/lib/libdtrace/libproc_compat.h index d796f34..7e54ada 100644 --- a/cddl/lib/libdtrace/libproc_compat.h +++ b/cddl/lib/libdtrace/libproc_compat.h @@ -45,8 +45,10 @@ #define Pgrab_error strerror #define Plmid_to_map(p, l, o) proc_obj2map((p), (o)) #define Plookup_by_addr proc_addr2sym +#define Pname_to_ctf(p, obj) NULL #define Pname_to_map proc_name2map #define Pobject_iter proc_iter_objs +#define Pobject_iter_resolved(p, f, arg) 1 #define Pobjname proc_objname #define Pread proc_read #define Prd_agent proc_rdagent -- cgit v1.1 From 9f28abd980752efcf77578cd494f1015083c2a2b Mon Sep 17 00:00:00 2001 From: marcel Date: Mon, 7 Jul 2014 00:27:09 +0000 Subject: Remove ia64. This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h Discussed at: BSDcan --- cddl/lib/libzpool/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cddl/lib') diff --git a/cddl/lib/libzpool/Makefile b/cddl/lib/libzpool/Makefile index 7d4528f..8f60a20 100644 --- a/cddl/lib/libzpool/Makefile +++ b/cddl/lib/libzpool/Makefile @@ -14,7 +14,7 @@ .if exists(${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}/opensolaris_atomic.S) .PATH: ${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH} ATOMIC_SRCS= opensolaris_atomic.S -.if ${MACHINE_ARCH} != "ia64" && ${MACHINE_ARCH} != "sparc64" +.if ${MACHINE_ARCH} != "sparc64" ACFLAGS+= -Wa,--noexecstack .endif .else -- cgit v1.1