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" */
next prev parent 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).