[PATCH v2 1/3] configure: remove --enable-memory-tagging option
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Wed May 20 20:26:08 GMT 2026
On 20/05/26 10:27, Yury Khrustalev wrote:
> Remove the '--enable-memory-tagging' configure option along with
> all associated variables and macros.
>
> This includes:
> - Removing the 'glibc.mem.tagging' tunable.
> - Removing parts of the configure script that processes the
> '--enable-memory-tagging' configure option.
> - Remove the 'memory-tagging' makefile variable.
> - Remove the USE_MTAG macro definition. Code that is conditionally
> compiled when this macro is defined is not removed at this stage
> and will be dealt with in the following commits.
>
> Also, update documentation accordingly.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> INSTALL | 14 --------------
> config.h.in | 3 ---
> config.make.in | 2 --
> configure | 24 -----------------------
> configure.ac | 15 --------------
> elf/dl-tunables.list | 5 -----
> manual/install.texi | 13 -------------
> manual/tunables.texi | 29 ----------------------------
> sysdeps/aarch64/dl-diagnostics-cpu.c | 2 --
> 9 files changed, 107 deletions(-)
>
> diff --git a/INSTALL b/INSTALL
> index 4174c9661f..b67da640bd 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -154,20 +154,6 @@ passed to 'configure'. For example:
>
> NOTE: '--enable-cet' is only supported on x86_64 and x32.
>
> -'--enable-memory-tagging'
> - Enable memory tagging support if the architecture supports it.
> - When the GNU C Library is built with this option then the resulting
> - library will be able to control the use of tagged memory when
> - hardware support is present by use of the tunable
> - 'glibc.mem.tagging'. This includes the generation of tagged memory
> - when using the 'malloc' APIs.
> -
> - At present only AArch64 platforms with MTE provide this
> - functionality, although the library will still operate (without
> - memory tagging) on older versions of the architecture.
> -
> - The default is to disable support for memory tagging.
> -
> '--disable-profile'
> Don't build libraries with profiling information. You may want to
> use this option if you don't plan to do profiling.
> diff --git a/config.h.in b/config.h.in
> index b53731c393..18e8c822e3 100644
> --- a/config.h.in
> +++ b/config.h.in
> @@ -182,9 +182,6 @@
> /* Define if inlined system calls are available. */
> #undef HAVE_INLINED_SYSCALLS
>
> -/* Define if memory tagging support should be enabled. */
> -#undef USE_MTAG
> -
> /* Package description. */
> #undef PKGVERSION
>
> diff --git a/config.make.in b/config.make.in
> index 856363d0cd..12ccb55e53 100644
> --- a/config.make.in
> +++ b/config.make.in
> @@ -78,8 +78,6 @@ multi-arch = @multi_arch@
>
> mach-interface-list = @mach_interface_list@
>
> -memory-tagging = @memory_tagging@
> -
> # Configuration options.
> build-shared = @shared@
> build-profile = @profile@
> diff --git a/configure b/configure
> index 336a93fbef..90c4b4f858 100755
> --- a/configure
> +++ b/configure
> @@ -703,7 +703,6 @@ INSTALL_PROGRAM
> base_machine
> build_pt_chown
> build_nscd
> -memory_tagging
> enable_werror
> force_install
> bindnow
> @@ -811,7 +810,6 @@ enable_maintainer_mode
> enable_kernel
> enable_werror
> enable_multi_arch
> -enable_memory_tagging
> enable_systemtap
> enable_build_nscd
> enable_nscd
> @@ -1490,8 +1488,6 @@ Optional Features:
> --disable-werror do not build with -Werror
> --enable-multi-arch enable single DSO with optimizations for multiple
> architectures
> - --enable-memory-tagging enable memory tagging if supported by the
> - architecture [default=no]
> --enable-systemtap enable systemtap static probe points [default=no]
> --disable-build-nscd disable building and installing the nscd daemon
> --disable-nscd library functions will not contact the nscd daemon
> @@ -4690,26 +4686,6 @@ esac
> fi
>
>
> -# Check whether --enable-memory-tagging was given.
> -if test ${enable_memory_tagging+y}
> -then :
> - enableval=$enable_memory_tagging; memory_tagging=$enableval
> -else case e in #(
> - e) memory_tagging=no ;;
> -esac
> -fi
> -
> -if test "$memory_tagging" = yes; then
> - # Only enable this on architectures that support it.
> - case $host_cpu in
> - aarch64)
> - printf "%s\n" "#define USE_MTAG 1" >>confdefs.h
> -
> - ;;
> - esac
> -fi
> -
> -
> # Check whether --enable-systemtap was given.
> if test ${enable_systemtap+y}
> then :
> diff --git a/configure.ac b/configure.ac
> index e9138a38b7..2a788c13b7 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -328,21 +328,6 @@ AC_ARG_ENABLE([multi-arch],
> [multi_arch=$enableval],
> [multi_arch=default])
>
> -AC_ARG_ENABLE([memory-tagging],
> - AS_HELP_STRING([--enable-memory-tagging],
> - [enable memory tagging if supported by the architecture @<:@default=no@:>@]),
> - [memory_tagging=$enableval],
> - [memory_tagging=no])
> -if test "$memory_tagging" = yes; then
> - # Only enable this on architectures that support it.
> - case $host_cpu in
> - aarch64)
> - AC_DEFINE(USE_MTAG)
> - ;;
> - esac
> -fi
> -AC_SUBST(memory_tagging)
> -
> AC_ARG_ENABLE([systemtap],
> [AS_HELP_STRING([--enable-systemtap],
> [enable systemtap static probe points @<:@default=no@:>@])],
> diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list
> index 1bbf70d36f..111649f145 100644
> --- a/elf/dl-tunables.list
> +++ b/elf/dl-tunables.list
> @@ -116,11 +116,6 @@ glibc {
> }
>
> mem {
> - tagging {
> - type: INT_32
> - minval: 0
> - maxval: 255
> - }
> decorate_maps {
> type: INT_32
> minval: 0
> diff --git a/manual/install.texi b/manual/install.texi
> index 073cda0530..4094baa259 100644
> --- a/manual/install.texi
> +++ b/manual/install.texi
> @@ -185,19 +185,6 @@ non CET enabled shared library in CET enabled application.
>
> NOTE: @option{--enable-cet} is only supported on x86_64 and x32.
>
> -@item --enable-memory-tagging
> -Enable memory tagging support if the architecture supports it. When
> -@theglibc{} is built with this option then the resulting library will
> -be able to control the use of tagged memory when hardware support is
> -present by use of the tunable @samp{glibc.mem.tagging}. This includes
> -the generation of tagged memory when using the @code{malloc} APIs.
> -
> -At present only AArch64 platforms with MTE provide this functionality,
> -although the library will still operate (without memory tagging) on
> -older versions of the architecture.
> -
> -The default is to disable support for memory tagging.
> -
> @item --disable-profile
> Don't build libraries with profiling information. You may want to use
> this option if you don't plan to do profiling.
> diff --git a/manual/tunables.texi b/manual/tunables.texi
> index 12b515c628..95b7075ae7 100644
> --- a/manual/tunables.texi
> +++ b/manual/tunables.texi
> @@ -40,7 +40,6 @@ glibc.malloc.perturb: 0 (min: 0, max: 255)
> glibc.cpu.x86_shared_cache_size: 0x100000 (min: 0x0, max: 0xffffffffffffffff)
> glibc.pthread.rseq: 1 (min: 0, max: 1)
> glibc.cpu.prefer_map_32bit_exec: 0 (min: 0, max: 1)
> -glibc.mem.tagging: 0 (min: 0, max: 255)
> glibc.malloc.hugetlb: 0x0 (min: 0x0, max: 0xffffffffffffffff)
> glibc.cpu.x86_rep_movsb_threshold: 0x2000 (min: 0x100, max: 0xffffffffffffffff)
> glibc.malloc.mxfast: 0x0 (min: 0x0, max: 0xffffffffffffffff)
> @@ -666,34 +665,6 @@ This tunable namespace supports operations that affect the way @theglibc{}
> and the process manage memory.
> @end deftp
>
> -@deftp Tunable glibc.mem.tagging
> -If the hardware supports memory tagging, this tunable can be used to
> -control the way @theglibc{} uses this feature. At present this is only
> -supported on AArch64 systems with the MTE extension; it is ignored for
> -all other systems.
> -
> -This tunable takes a value between 0 and 255 and acts as a bitmask
> -that enables various capabilities.
> -
> -Bit 0 (the least significant bit) causes the @code{malloc}
> -subsystem to allocate
> -tagged memory, with each allocation being assigned a random tag.
> -
> -Bit 1 enables precise faulting mode for tag violations on systems that
> -support deferred tag violation reporting. This may cause programs
> -to run more slowly.
> -
> -Bit 2 enables either precise or deferred faulting mode for tag violations
> -whichever is preferred by the system.
> -
> -Other bits are currently reserved.
> -
> -@Theglibc{} startup code will automatically enable memory tagging
> -support in the kernel if this tunable has any non-zero value.
> -
> -The default value is @samp{0}, which disables all memory tagging.
> -@end deftp
> -
> @deftp Tunable glibc.mem.decorate_maps
> If the kernel supports naming anonymous virtual memory areas (since
> Linux version 5.17, although not always enabled by some kernel
> diff --git a/sysdeps/aarch64/dl-diagnostics-cpu.c b/sysdeps/aarch64/dl-diagnostics-cpu.c
> index 697868cb25..4bf244ec71 100644
> --- a/sysdeps/aarch64/dl-diagnostics-cpu.c
> +++ b/sysdeps/aarch64/dl-diagnostics-cpu.c
> @@ -45,8 +45,6 @@ _dl_diagnostics_cpu (void)
> print_cpu_features_value ("midr_el1",
> GLRO (dl_aarch64_cpu_features).midr_el1);
> print_cpu_features_value ("mops", GLRO (dl_aarch64_cpu_features).mops);
> - print_cpu_features_value ("mte_state",
> - GLRO (dl_aarch64_cpu_features).mte_state);
> print_cpu_features_value ("sve", GLRO (dl_aarch64_cpu_features).sve);
> print_cpu_features_value ("zva_size",
> GLRO (dl_aarch64_cpu_features).zva_size);
More information about the Libc-alpha
mailing list