diff options
| author | Michael Forney <mforney@mforney.org> | 2019-10-04 18:34:31 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2019-10-04 18:34:31 -0700 |
| commit | 9b268df2f79e112b98dce51fe9359dbce126711e (patch) | |
| tree | 32baf8d3b28217829ead260202ee3182b72fe318 /pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch | |
| parent | e6df1e7263e94204d4445eb684c3df13e9fc8a1a (diff) | |
libnl: Update to 3.5.0
Diffstat (limited to 'pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch')
| -rw-r--r-- | pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch b/pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch new file mode 100644 index 00000000..c5d1cb9b --- /dev/null +++ b/pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch @@ -0,0 +1,123 @@ +From 5205a990e10f9bf1102c719198f82aba342cbca5 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Sun, 11 Aug 2019 05:05:09 +0000 +Subject: [PATCH] Use static inline functions for min and max + +These generic macros were only ever used with type `int`, and making +them inline functions avoids the use of non-standard statement +expressions. +--- + include/netlink-private/netlink.h | 27 +++++++++++---------------- + lib/attr.c | 2 +- + lib/msg.c | 2 +- + lib/route/cls/ematch_syntax.y | 2 +- + lib/route/link/inet.c | 2 +- + lib/route/link/inet6.c | 2 +- + 6 files changed, 16 insertions(+), 21 deletions(-) + +diff --git a/include/netlink-private/netlink.h b/include/netlink-private/netlink.h +index 5f6e3f7..fca3133 100644 +--- a/include/netlink-private/netlink.h ++++ b/include/netlink-private/netlink.h +@@ -158,22 +158,17 @@ static inline int nl_cb_call(struct nl_cb *cb, enum nl_cb_type type, struct nl_m + #undef __deprecated + #define __deprecated __attribute__ ((deprecated)) + +-#define min(x,y) ({ \ +- __typeof__(x) _x = (x); \ +- __typeof__(y) _y = (y); \ +- (void) (&_x == &_y); \ +- _x < _y ? _x : _y; }) +- +-#define max(x,y) ({ \ +- __typeof__(x) _x = (x); \ +- __typeof__(y) _y = (y); \ +- (void) (&_x == &_y); \ +- _x > _y ? _x : _y; }) +- +-#define min_t(type,x,y) \ +- ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; }) +-#define max_t(type,x,y) \ +- ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; }) ++static inline int ++min(int x, int y) ++{ ++ return x < y ? x : y; ++} ++ ++static inline int ++max(int x, int y) ++{ ++ return x > y ? x : y; ++} + + extern int nl_cache_parse(struct nl_cache_ops *, struct sockaddr_nl *, + struct nlmsghdr *, struct nl_parser_param *); +diff --git a/lib/attr.c b/lib/attr.c +index a4f5852..025627e 100644 +--- a/lib/attr.c ++++ b/lib/attr.c +@@ -358,7 +358,7 @@ int nla_memcpy(void *dest, const struct nlattr *src, int count) + if (!src) + return 0; + +- minlen = min_t(int, count, nla_len(src)); ++ minlen = min(count, nla_len(src)); + memcpy(dest, nla_data(src), minlen); + + return minlen; +diff --git a/lib/msg.c b/lib/msg.c +index c08b3a4..d854df3 100644 +--- a/lib/msg.c ++++ b/lib/msg.c +@@ -155,7 +155,7 @@ struct nlattr *nlmsg_attrdata(const struct nlmsghdr *nlh, int hdrlen) + */ + int nlmsg_attrlen(const struct nlmsghdr *nlh, int hdrlen) + { +- return max_t(int, nlmsg_len(nlh) - NLMSG_ALIGN(hdrlen), 0); ++ return max(nlmsg_len(nlh) - NLMSG_ALIGN(hdrlen), 0); + } + + /** @} */ +diff --git a/lib/route/cls/ematch_syntax.y b/lib/route/cls/ematch_syntax.y +index 82d753d..88665cc 100644 +--- a/lib/route/cls/ematch_syntax.y ++++ b/lib/route/cls/ematch_syntax.y +@@ -411,7 +411,7 @@ pattern: + if (nl_addr_parse($1, AF_UNSPEC, &addr) == 0) { + $$.len = nl_addr_get_len(addr); + +- $$.index = min_t(int, $$.len, nl_addr_get_prefixlen(addr)/8); ++ $$.index = min($$.len, nl_addr_get_prefixlen(addr)/8); + + if (!($$.data = calloc(1, $$.len))) { + nl_addr_put(addr); +diff --git a/lib/route/link/inet.c b/lib/route/link/inet.c +index 6651bc3..e33a3fe 100644 +--- a/lib/route/link/inet.c ++++ b/lib/route/link/inet.c +@@ -110,7 +110,7 @@ static int inet_parse_af(struct rtnl_link *link, struct nlattr *attr, void *data + + if (tb[IFLA_INET_CONF]) { + int i; +- int len = min_t(int, IPV4_DEVCONF_MAX, nla_len(tb[IFLA_INET_CONF]) / 4); ++ int len = min(IPV4_DEVCONF_MAX, nla_len(tb[IFLA_INET_CONF]) / 4); + + for (i = 0; i < len; i++) + id->i_confset[i] = 1; +diff --git a/lib/route/link/inet6.c b/lib/route/link/inet6.c +index f02792c..8a3de01 100644 +--- a/lib/route/link/inet6.c ++++ b/lib/route/link/inet6.c +@@ -199,7 +199,7 @@ static int inet6_parse_protinfo(struct rtnl_link *link, struct nlattr *attr, + map_stat_id = map_stat_id_from_IPSTATS_MIB_v1; + } + +- len = min_t(int, __IPSTATS_MIB_MAX, len); ++ len = min(__IPSTATS_MIB_MAX, len); + for (i = 1; i < len; i++) { + memcpy(&stat, &cnt[i * sizeof(stat)], sizeof(stat)); + rtnl_link_set_stat(link, map_stat_id[i], stat); +-- +2.23.0 + |
