summaryrefslogtreecommitdiff
path: root/pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-10-04 18:34:31 -0700
committerMichael Forney <mforney@mforney.org>2019-10-04 18:34:31 -0700
commit9b268df2f79e112b98dce51fe9359dbce126711e (patch)
tree32baf8d3b28217829ead260202ee3182b72fe318 /pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch
parente6df1e7263e94204d4445eb684c3df13e9fc8a1a (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.patch123
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
+