# Pending upstream review:
# http://marc.info/?l=netfilter-devel&m=148356910211882&w=2

From 2e1bca85d05c20870cef2fafa7abf21dc9076730 Mon Sep 17 00:00:00 2001
From: Kevin Cernekee <cernekee@chromium.org>
Date: Wed, 4 Jan 2017 14:12:34 -0800
Subject: [PATCH libnetfilter_cttimeout] Use __EXPORTED rather than EXPORT_SYMBOL

clang is sensitive to the ordering of
__attribute__((visibility("default"))) relative to the function
body.  gcc is not.  So if we try to re-declare an existing function
with default visibility, clang prints a warning and generates
a broken .so file in which nfct_timeout_* are not exported to library
callers.

Move the attribute up into the function definition to make clang happy.

Signed-off-by: Kevin Cernekee <cernekee@chromium.org>
---
 doxygen.cfg.in               |  2 +-
 src/internal.h               |  5 ++---
 src/libnetfilter_cttimeout.c | 44 +++++++++++++++++---------------------------
 3 files changed, 20 insertions(+), 31 deletions(-)

diff --git a/doxygen.cfg.in b/doxygen.cfg.in
index 8e5d4495eb41..09c3ce00e422 100644
--- a/doxygen.cfg.in
+++ b/doxygen.cfg.in
@@ -72,7 +72,7 @@ RECURSIVE              = YES
 EXCLUDE                = 
 EXCLUDE_SYMLINKS       = NO
 EXCLUDE_PATTERNS       = */.git/* .*.d
-EXCLUDE_SYMBOLS        = EXPORT_SYMBOL nfct_timeout _container_policy_cb
+EXCLUDE_SYMBOLS        = nfct_timeout _container_policy_cb
 EXAMPLE_PATH           = 
 EXAMPLE_PATTERNS       = 
 EXAMPLE_RECURSIVE      = NO
diff --git a/src/internal.h b/src/internal.h
index 3a88d1a1f7d8..5d781718ddad 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -3,10 +3,9 @@
 
 #include "config.h"
 #ifdef HAVE_VISIBILITY_HIDDEN
-#	define __visible	__attribute__((visibility("default")))
-#	define EXPORT_SYMBOL(x)	typeof(x) (x) __visible
+#	define __EXPORTED	__attribute__((visibility("default")))
 #else
-#	define EXPORT_SYMBOL
+#	define __EXPORTED
 #endif
 
 #endif
diff --git a/src/libnetfilter_cttimeout.c b/src/libnetfilter_cttimeout.c
index 7844a1f9c19a..a0a71851b0eb 100644
--- a/src/libnetfilter_cttimeout.c
+++ b/src/libnetfilter_cttimeout.c
@@ -187,7 +187,7 @@ struct nfct_timeout {
  * In case of success, this function returns a valid pointer, otherwise NULL
  * s returned and errno is appropriately set.
  */
-struct nfct_timeout *nfct_timeout_alloc(void)
+struct nfct_timeout __EXPORTED *nfct_timeout_alloc(void)
 {
 	struct nfct_timeout *t;
 
@@ -197,19 +197,17 @@ struct nfct_timeout *nfct_timeout_alloc(void)
 
 	return t;
 }
-EXPORT_SYMBOL(nfct_timeout_alloc);
 
 /**
  * nfct_timeout_free - release one conntrack timeout object
  * \param t pointer to the conntrack timeout object
  */
-void nfct_timeout_free(struct nfct_timeout *t)
+void __EXPORTED nfct_timeout_free(struct nfct_timeout *t)
 {
 	if (t->timeout)
 		free(t->timeout);
 	free(t);
 }
-EXPORT_SYMBOL(nfct_timeout_free);
 
 /**
  * nfct_timeout_attr_set - set one attribute of the conntrack timeout object
@@ -217,7 +215,7 @@ EXPORT_SYMBOL(nfct_timeout_free);
  * \param type attribute type you want to set
  * \param data pointer to data that will be used to set this attribute
  */
-int
+int __EXPORTED
 nfct_timeout_attr_set(struct nfct_timeout *t, uint32_t type, const void *data)
 {
 	switch(type) {
@@ -236,7 +234,6 @@ nfct_timeout_attr_set(struct nfct_timeout *t, uint32_t type, const void *data)
 	t->attrset |= (1 << type);
 	return 0;
 }
-EXPORT_SYMBOL(nfct_timeout_attr_set);
 
 /**
  * nfct_timeout_attr_set_u8 - set one attribute of the conntrack timeout object
@@ -244,12 +241,11 @@ EXPORT_SYMBOL(nfct_timeout_attr_set);
  * \param type attribute type you want to set
  * \param data pointer to data that will be used to set this attribute
  */
-int
+int __EXPORTED
 nfct_timeout_attr_set_u8(struct nfct_timeout *t, uint32_t type, uint8_t data)
 {
 	return nfct_timeout_attr_set(t, type, &data);
 }
-EXPORT_SYMBOL(nfct_timeout_attr_set_u8);
 
 /**
  * nfct_timeout_attr_set_u16 - set one attribute of the conntrack timeout object
@@ -257,23 +253,21 @@ EXPORT_SYMBOL(nfct_timeout_attr_set_u8);
  * \param type attribute type you want to set
  * \param data pointer to data that will be used to set this attribute
  */
-int
+int __EXPORTED
 nfct_timeout_attr_set_u16(struct nfct_timeout *t, uint32_t type, uint16_t data)
 {
 	return nfct_timeout_attr_set(t, type, &data);
 }
-EXPORT_SYMBOL(nfct_timeout_attr_set_u16);
 
 /**
  * nfct_timeout_attr_unset - unset one attribute of the conntrack timeout object
  * \param t pointer to the conntrack timeout object
  * \param type attribute type you want to set
  */
-void nfct_timeout_attr_unset(struct nfct_timeout *t, uint32_t type)
+void __EXPORTED nfct_timeout_attr_unset(struct nfct_timeout *t, uint32_t type)
 {
 	t->attrset &= ~(1 << type);
 }
-EXPORT_SYMBOL(nfct_timeout_attr_unset);
 
 /**
  * nfct_timeout_policy_attr_set_u32 - set one attribute of the policy
@@ -281,7 +275,7 @@ EXPORT_SYMBOL(nfct_timeout_attr_unset);
  * \param type attribute type you want to set
  * \param data data that will be used to set this attribute
  */
-int
+int __EXPORTED
 nfct_timeout_policy_attr_set_u32(struct nfct_timeout *t,
 				 uint32_t type, uint32_t data)
 {
@@ -319,18 +313,17 @@ nfct_timeout_policy_attr_set_u32(struct nfct_timeout *t,
 
 	return 0;
 }
-EXPORT_SYMBOL(nfct_timeout_policy_attr_set_u32);
 
 /**
  * nfct_timeout_policy_attr_unset - unset one attribute of the policy
  * \param t pointer to the conntrack timeout object
  * \param type attribute type you want to set
  */
-void nfct_timeout_policy_attr_unset(struct nfct_timeout *t, uint32_t type)
+void __EXPORTED
+nfct_timeout_policy_attr_unset(struct nfct_timeout *t, uint32_t type)
 {
 	t->attrset &= ~(1 << type);
 }
-EXPORT_SYMBOL(nfct_timeout_policy_attr_unset);
 
 /**
  * nfct_timeout_policy_attr_to_name - get state name from protocol state number
@@ -340,7 +333,8 @@ EXPORT_SYMBOL(nfct_timeout_policy_attr_unset);
  * This function returns NULL if unsupported protocol or state number is passed.
  * Otherwise, a pointer to valid string is returned.
  */
-const char *nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state)
+const char __EXPORTED *
+nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state)
 {
 	if (timeout_protocol[l4proto].state_to_name == NULL) {
 		printf("no array state name\n");
@@ -354,7 +348,6 @@ const char *nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state)
 
 	return timeout_protocol[l4proto].state_to_name[state];
 }
-EXPORT_SYMBOL(nfct_timeout_policy_attr_to_name);
 
 /**
  * @}
@@ -438,8 +431,9 @@ nfct_timeout_snprintf_default(char *buf, size_t size,
  * This function returns -1 in case that some mandatory attributes are
  * missing. On sucess, it returns 0.
  */
-int nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t,
-			  unsigned int type, unsigned int flags)
+int __EXPORTED
+nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t,
+		      unsigned int type, unsigned int flags)
 {
 	int ret = 0;
 
@@ -454,7 +448,6 @@ int nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t,
 
 	return ret;
 }
-EXPORT_SYMBOL(nfct_timeout_snprintf);
 
 /**
  * @}
@@ -477,7 +470,7 @@ EXPORT_SYMBOL(nfct_timeout_snprintf);
  * - CTNL_MSG_TIMEOUT_GET: get conntrack timeout object.
  * - CTNL_MSG_TIMEOUT_DEL: delete conntrack timeout object.
  */
-struct nlmsghdr *
+struct nlmsghdr __EXPORTED *
 nfct_timeout_nlmsg_build_hdr(char *buf, uint8_t cmd,
 			     uint16_t flags, uint32_t seq)
 {
@@ -496,14 +489,13 @@ nfct_timeout_nlmsg_build_hdr(char *buf, uint8_t cmd,
 
 	return nlh;
 }
-EXPORT_SYMBOL(nfct_timeout_nlmsg_build_hdr);
 
 /**
  * nfct_timeout_nlmsg_build_payload - build payload from ct timeout object
  * \param nlh: netlink message that you want to use to add the payload.
  * \param t: pointer to a conntrack timeout object
  */
-void
+void __EXPORTED
 nfct_timeout_nlmsg_build_payload(struct nlmsghdr *nlh,
 				 const struct nfct_timeout *t)
 {
@@ -532,7 +524,6 @@ nfct_timeout_nlmsg_build_payload(struct nlmsghdr *nlh,
 	}
 
 }
-EXPORT_SYMBOL(nfct_timeout_nlmsg_build_payload);
 
 static int
 timeout_nlmsg_parse_attr_cb(const struct nlattr *attr, void *data)
@@ -629,7 +620,7 @@ timeout_parse_attr_data(struct nfct_timeout *t, const struct nlattr *nest)
  * This function returns -1 in case that some mandatory attributes are
  * missing. On sucess, it returns 0.
  */
-int
+int __EXPORTED
 nfct_timeout_nlmsg_parse_payload(const struct nlmsghdr *nlh,
 				 struct nfct_timeout *t)
 {
@@ -654,7 +645,6 @@ nfct_timeout_nlmsg_parse_payload(const struct nlmsghdr *nlh,
 	}
 	return 0;
 }
-EXPORT_SYMBOL(nfct_timeout_nlmsg_parse_payload);
 
 /**
  * @}
-- 
2.11.0.390.gc69c2f50cf-goog

