From: Carlos Llamas <cmllamas@google.com>
To: Edward Liaw <edliaw@google.com>
Cc: shuah@kernel.org, Nathan Chancellor <nathan@kernel.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
kernel-team@android.com, llvm@lists.linux.dev,
linux-mm@kvack.org
Subject: Re: [PATCH v1 2/2] selftests/mm: Guard defines from shm
Date: Wed, 5 Jun 2024 22:52:24 +0000 [thread overview]
Message-ID: <ZmDsKBrkh43-Zn8H@google.com> (raw)
In-Reply-To: <20240605223637.1374969-3-edliaw@google.com>
On Wed, Jun 05, 2024 at 10:36:35PM +0000, Edward Liaw wrote:
> thuge-gen.c defines SHM_HUGE_* macros that are provided by the uapi
> since 4.14. These macros get redefined when compiling with Android's
> bionic because its sys/shm.h will import the uapi definitions.
>
> However if linux/shm.h is included, with glibc, sys/shm.h will clash on
> some struct definitions:
>
> /usr/include/linux/shm.h:26:8: error: redefinition of ‘struct shmid_ds’
> 26 | struct shmid_ds {
> | ^~~~~~~~
> In file included from /usr/include/x86_64-linux-gnu/bits/shm.h:45,
> from /usr/include/x86_64-linux-gnu/sys/shm.h:30:
> /usr/include/x86_64-linux-gnu/bits/types/struct_shmid_ds.h:24:8: note: originally defined here
> 24 | struct shmid_ds
> | ^~~~~~~~
I also hit this issue while using bionic. I have a thread reporting this
issue here: https://lore.kernel.org/all/Zl4LC9lTNptB2xTJ@google.com/
According to Andi Kleen, glibc and others should add these defines in
their headers. So it make sense to me that we would need indefs to
prevent a redefine macro issue.
>
> For now, guard the SHM_HUGE_* defines with ifndef to prevent
> redefinition warnings on Android bionic.
>
> Signed-off-by: Edward Liaw <edliaw@google.com>
> ---
> tools/testing/selftests/mm/thuge-gen.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/tools/testing/selftests/mm/thuge-gen.c b/tools/testing/selftests/mm/thuge-gen.c
> index 034635317935..d50dc71cac32 100644
> --- a/tools/testing/selftests/mm/thuge-gen.c
> +++ b/tools/testing/selftests/mm/thuge-gen.c
> @@ -34,10 +34,18 @@
> #endif
>
> #define SHM_HUGETLB 04000 /* segment will use huge TLB pages */
> +#ifndef SHM_HUGE_SHIFT
nit: I see this file uses the form "#if !defined()" above for
MAP_HUGETLB. Perhaps it makes sense to use that and keep things
consistent? I'm fine either way.
Reviewed-by: Carlos Llamas <cmllamas@google.com>
> #define SHM_HUGE_SHIFT 26
> +#endif
> +#ifndef SHM_HUGE_MASK
> #define SHM_HUGE_MASK 0x3f
> +#endif
> +#ifndef SHM_HUGE_2MB
> #define SHM_HUGE_2MB (21 << SHM_HUGE_SHIFT)
> +#endif
> +#ifndef SHM_HUGE_1GB
> #define SHM_HUGE_1GB (30 << SHM_HUGE_SHIFT)
> +#endif
>
> #define NUM_PAGESIZES 5
> #define NUM_PAGES 4
> --
> 2.45.1.467.gbab1589fc0-goog
>
next prev parent reply other threads:[~2024-06-05 22:52 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-05 22:36 [PATCH v1 0/2] selftests/mm: thuge-gen defines Edward Liaw
2024-06-05 22:36 ` [PATCH v1 1/2] selftests/mm: Include linux/mman.h Edward Liaw
2024-06-05 22:45 ` Carlos Llamas
2024-06-07 9:44 ` Muhammad Usama Anjum
2024-06-07 10:04 ` Muhammad Usama Anjum
2024-06-05 22:36 ` [PATCH v1 2/2] selftests/mm: Guard defines from shm Edward Liaw
2024-06-05 22:52 ` Carlos Llamas [this message]
2024-06-07 10:03 ` Muhammad Usama Anjum
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=ZmDsKBrkh43-Zn8H@google.com \
--to=cmllamas@google.com \
--cc=akpm@linux-foundation.org \
--cc=edliaw@google.com \
--cc=justinstitt@google.com \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=llvm@lists.linux.dev \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=shuah@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.