From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DBE2941E80; Sun, 12 Mar 2023 15:02:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6A93040F18; Sun, 12 Mar 2023 15:02:09 +0100 (CET) Received: from forward500a.mail.yandex.net (forward500a.mail.yandex.net [178.154.239.80]) by mails.dpdk.org (Postfix) with ESMTP id 3DFA1406A2 for ; Sun, 12 Mar 2023 15:02:08 +0100 (CET) Received: from vla1-7447ae3f89af.qloud-c.yandex.net (vla1-7447ae3f89af.qloud-c.yandex.net [IPv6:2a02:6b8:c0d:3281:0:640:7447:ae3f]) by forward500a.mail.yandex.net (Yandex) with ESMTP id 85AC85E94A; Sun, 12 Mar 2023 17:02:07 +0300 (MSK) Received: by vla1-7447ae3f89af.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id 42hSOUYbiW21-1V85ZYVT; Sun, 12 Mar 2023 17:02:06 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1678629726; bh=L2k9EhxgVfd3Fth/Eu6N8ZJc6lUfQPtMv1MJJ82+DiQ=; h=From:In-Reply-To:Cc:Date:References:To:Subject:Message-ID; b=p9fQHNI3uszROYKjwVKeqUmEXmamCq/SL4MawvHTQaGIfSlBT0ItckF6eCfbec16S TwGJhiCeZ0oi9suPkJfFR00ameGnOE72e6EUtWR1lAFdeoIB50NfHPqxvnwai62ia/ IcncEoa9/oYRrdWTeFTQLDx3FNn+lD2mFBZRW5fg= Authentication-Results: vla1-7447ae3f89af.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru Message-ID: <948b18da-3e41-c65c-7d47-b49ba6a4d810@yandex.ru> Date: Sun, 12 Mar 2023 14:02:04 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH v4] lib/bpf: Rename bpf function names to avoid potential conflict with libpcap Content-Language: en-US To: "J.J. Martzki" , dev@dpdk.org Cc: stephen@networkplumber.org, thomas@monjalon.net, Ruifeng Wang References: <20230306154216.41154-1-mars14850@gmail.com> <20230312062021.7349-1-mars14850@gmail.com> From: Konstantin Ananyev In-Reply-To: <20230312062021.7349-1-mars14850@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 12/03/2023 06:20, J.J. Martzki пишет: > The library libpcap has their function 'bpf_validate' either so there would > be a multiple definition issue when linking with librte_bpf.a and libpcap.a > statically (Same as http://dpdk.org/patch/52631). So just rename the > function names to avoid such issue. > > Signed-off-by: J.J. Martzki > > --- > v4: > * Update my name. > v3: > * Rewrite the commit message. > v2: > * Rename all functions in bpf_impl.h. > * Adjust the commit message. > --- > lib/bpf/bpf.c | 6 +++--- > lib/bpf/bpf_convert.c | 3 --- > lib/bpf/bpf_impl.h | 10 ++++------ > lib/bpf/bpf_jit_arm64.c | 2 +- > lib/bpf/bpf_jit_x86.c | 2 +- > lib/bpf/bpf_load.c | 4 ++-- > lib/bpf/bpf_validate.c | 2 +- > 7 files changed, 12 insertions(+), 17 deletions(-) > > diff --git a/lib/bpf/bpf.c b/lib/bpf/bpf.c > index 1e1dd42a58..f218a8f2b0 100644 > --- a/lib/bpf/bpf.c > +++ b/lib/bpf/bpf.c > @@ -31,14 +31,14 @@ rte_bpf_get_jit(const struct rte_bpf *bpf, struct rte_bpf_jit *jit) > } > > int > -bpf_jit(struct rte_bpf *bpf) > +rte_bpf_jit(struct rte_bpf *bpf) > { > int32_t rc; > > #if defined(RTE_ARCH_X86_64) > - rc = bpf_jit_x86(bpf); > + rc = rte_bpf_jit_x86(bpf); > #elif defined(RTE_ARCH_ARM64) > - rc = bpf_jit_arm64(bpf); > + rc = rte_bpf_jit_arm64(bpf); > #else > rc = -ENOTSUP; > #endif > diff --git a/lib/bpf/bpf_convert.c b/lib/bpf/bpf_convert.c > index 9563274c9c..d441be6663 100644 > --- a/lib/bpf/bpf_convert.c > +++ b/lib/bpf/bpf_convert.c > @@ -23,11 +23,8 @@ > #include > #include > > -/* Workaround name conflicts with libpcap */ > -#define bpf_validate(f, len) bpf_validate_libpcap(f, len) > #include > #include > -#undef bpf_validate > > #include "bpf_impl.h" > #include "bpf_def.h" > diff --git a/lib/bpf/bpf_impl.h b/lib/bpf/bpf_impl.h > index b4d8e87c6d..e955b74181 100644 > --- a/lib/bpf/bpf_impl.h > +++ b/lib/bpf/bpf_impl.h > @@ -17,12 +17,10 @@ struct rte_bpf { > uint32_t stack_sz; > }; > > -extern int bpf_validate(struct rte_bpf *bpf); > - > -extern int bpf_jit(struct rte_bpf *bpf); > - > -extern int bpf_jit_x86(struct rte_bpf *); > -extern int bpf_jit_arm64(struct rte_bpf *); > +extern int rte_bpf_validate(struct rte_bpf *bpf); > +extern int rte_bpf_jit(struct rte_bpf *bpf); > +extern int rte_bpf_jit_x86(struct rte_bpf *bpf); > +extern int rte_bpf_jit_arm64(struct rte_bpf *bpf); I am still not quite ok to us 'rte_' prefix for internal library functions... Might be at least '_rte_', or '_bpf_'? Another ask - can you put comment here with advise for future add-ons to avoid pure 'bpf_' prefix and why. Konstantin > extern int rte_bpf_logtype; > > diff --git a/lib/bpf/bpf_jit_arm64.c b/lib/bpf/bpf_jit_arm64.c > index db79ff7385..d1ab5f8fbf 100644 > --- a/lib/bpf/bpf_jit_arm64.c > +++ b/lib/bpf/bpf_jit_arm64.c > @@ -1393,7 +1393,7 @@ emit(struct a64_jit_ctx *ctx, struct rte_bpf *bpf) > * Produce a native ISA version of the given BPF code. > */ > int > -bpf_jit_arm64(struct rte_bpf *bpf) > +rte_bpf_jit_arm64(struct rte_bpf *bpf) > { > struct a64_jit_ctx ctx; > size_t size; > diff --git a/lib/bpf/bpf_jit_x86.c b/lib/bpf/bpf_jit_x86.c > index c1a30e0386..182004ac7d 100644 > --- a/lib/bpf/bpf_jit_x86.c > +++ b/lib/bpf/bpf_jit_x86.c > @@ -1490,7 +1490,7 @@ emit(struct bpf_jit_state *st, const struct rte_bpf *bpf) > * produce a native ISA version of the given BPF code. > */ > int > -bpf_jit_x86(struct rte_bpf *bpf) > +rte_bpf_jit_x86(struct rte_bpf *bpf) > { > int32_t rc; > uint32_t i; > diff --git a/lib/bpf/bpf_load.c b/lib/bpf/bpf_load.c > index 1e17df6ce0..2c4bca3586 100644 > --- a/lib/bpf/bpf_load.c > +++ b/lib/bpf/bpf_load.c > @@ -108,9 +108,9 @@ rte_bpf_load(const struct rte_bpf_prm *prm) > return NULL; > } > > - rc = bpf_validate(bpf); > + rc = rte_bpf_validate(bpf); > if (rc == 0) { > - bpf_jit(bpf); > + rte_bpf_jit(bpf); > if (mprotect(bpf, bpf->sz, PROT_READ) != 0) > rc = -ENOMEM; > } > diff --git a/lib/bpf/bpf_validate.c b/lib/bpf/bpf_validate.c > index 61cbb42216..2d3d899966 100644 > --- a/lib/bpf/bpf_validate.c > +++ b/lib/bpf/bpf_validate.c > @@ -2302,7 +2302,7 @@ evaluate(struct bpf_verifier *bvf) > } > > int > -bpf_validate(struct rte_bpf *bpf) > +rte_bpf_validate(struct rte_bpf *bpf) > { > int32_t rc; > struct bpf_verifier bvf;