netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nick <vincent@systemli.org>
To: Phil Sutter <phil@nwl.cc>, netfilter-devel@vger.kernel.org
Cc: Jan Engelhardt <jengelh@inai.de>,
	Pablo Neira Ayuso <pablo@netfilter.org>
Subject: Re: [iptables PATCH] libxtables: Unexport init_extensions*() declarations
Date: Fri, 3 Jun 2022 07:08:24 +0200	[thread overview]
Message-ID: <eab33b47-5d3a-f1b8-45e6-d0025d9acf76@systemli.org> (raw)
In-Reply-To: <20220602182412.4630-1-phil@nwl.cc>

Thanks. You can also put my whole Name: Nick Hainke <vincent@systemli.org>.
I will test it again. :) I had a longer discussion with another OpenWrt 
member, why everything is done in OpenWrt as it is. Not sure what will 
happen in future with firewall3.

Bests
Nick

On 6/2/22 20:24, Phil Sutter wrote:
> The functions are used for static builds to initialize extensions after
> libxtables init. Regular library users should not need them, but the
> empty declarations introduced in #else case (and therefore present in
> user's env) may clash with existing symbol names.
>
> Avoid problems and guard the whole block declaring the function
> prototypes and mangling extensions' _init functions by XTABLES_INTERNAL.
>
> Reported-by: Nick <vincent@systemli.org>
> Fixes: 6c689b639cf8e ("Simplify static build extension loading")
> Signed-off-by: Phil Sutter <phil@nwl.cc>
> ---
>   include/xtables.h | 44 ++++++++++++++++++++++----------------------
>   1 file changed, 22 insertions(+), 22 deletions(-)
>
> diff --git a/include/xtables.h b/include/xtables.h
> index c2694b7b28886..f1937f3ea0530 100644
> --- a/include/xtables.h
> +++ b/include/xtables.h
> @@ -585,27 +585,6 @@ static inline void xtables_print_mark_mask(unsigned int mark,
>   	xtables_print_val_mask(mark, mask, NULL);
>   }
>   
> -#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS)
> -#	ifdef _INIT
> -#		undef _init
> -#		define _init _INIT
> -#	endif
> -	extern void init_extensions(void);
> -	extern void init_extensions4(void);
> -	extern void init_extensions6(void);
> -	extern void init_extensionsa(void);
> -	extern void init_extensionsb(void);
> -#else
> -#	define _init __attribute__((constructor)) _INIT
> -#	define EMPTY_FUNC_DEF(x) static inline void x(void) {}
> -	EMPTY_FUNC_DEF(init_extensions)
> -	EMPTY_FUNC_DEF(init_extensions4)
> -	EMPTY_FUNC_DEF(init_extensions6)
> -	EMPTY_FUNC_DEF(init_extensionsa)
> -	EMPTY_FUNC_DEF(init_extensionsb)
> -#	undef EMPTY_FUNC_DEF
> -#endif
> -
>   extern const struct xtables_pprot xtables_chain_protos[];
>   extern uint16_t xtables_parse_protocol(const char *s);
>   
> @@ -663,9 +642,30 @@ void xtables_announce_chain(const char *name);
>   #		define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x)))
>   #	endif
>   
> +#if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS)
> +#	ifdef _INIT
> +#		undef _init
> +#		define _init _INIT
> +#	endif
> +	extern void init_extensions(void);
> +	extern void init_extensions4(void);
> +	extern void init_extensions6(void);
> +	extern void init_extensionsa(void);
> +	extern void init_extensionsb(void);
> +#else
> +#	define _init __attribute__((constructor)) _INIT
> +#	define EMPTY_FUNC_DEF(x) static inline void x(void) {}
> +	EMPTY_FUNC_DEF(init_extensions)
> +	EMPTY_FUNC_DEF(init_extensions4)
> +	EMPTY_FUNC_DEF(init_extensions6)
> +	EMPTY_FUNC_DEF(init_extensionsa)
> +	EMPTY_FUNC_DEF(init_extensionsb)
> +#	undef EMPTY_FUNC_DEF
> +#endif
> +
>   extern void _init(void);
>   
> -#endif
> +#endif /* XTABLES_INTERNAL */
>   
>   #ifdef __cplusplus
>   } /* extern "C" */

  reply	other threads:[~2022-06-03  5:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-02 18:24 [iptables PATCH] libxtables: Unexport init_extensions*() declarations Phil Sutter
2022-06-03  5:08 ` Nick [this message]
2022-06-03 13:10   ` Nick

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eab33b47-5d3a-f1b8-45e6-d0025d9acf76@systemli.org \
    --to=vincent@systemli.org \
    --cc=jengelh@inai.de \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=pablo@netfilter.org \
    --cc=phil@nwl.cc \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).