summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-03-25 11:05:37 +0100
committerFlorian Weimer <fweimer@redhat.com>2021-03-25 11:06:58 +0100
commit6d8fcee694b9581630a7f27fcbf0009fc44d7baa (patch)
tree04bc697d9cf5d6680e7b7f4d3cd08c8ca27e1887
parent3a24ddeab5b7064beaf8165533fbcd2db95d5339 (diff)
downloadglibc-6d8fcee694b9581630a7f27fcbf0009fc44d7baa.tar.gz
glibc-6d8fcee694b9581630a7f27fcbf0009fc44d7baa.tar.xz
glibc-6d8fcee694b9581630a7f27fcbf0009fc44d7baa.zip
locale: Use compat_symbol_reference in _nl_postload_ctype
These symbol usages are not definitions, so compat_symbol_reference is
more appropriate than compat_symbol.  compat_symbol_reference is also
safe to emit multiple times (in case the inline assembly is
duplicated; this is possible because it is nested in a function).
compat_symbol does not necessarily have this property because it is
intended to provide a symbol definition.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
-rw-r--r--locale/lc-ctype.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/locale/lc-ctype.c b/locale/lc-ctype.c
index 1db0605c82..7c97480cbd 100644
--- a/locale/lc-ctype.c
+++ b/locale/lc-ctype.c
@@ -93,12 +93,14 @@ _nl_postload_ctype (void)
      We need those relocations so that a versioned definition with a COPY
      reloc in an executable will override the libc.so definition.  */
 
-compat_symbol (libc, __ctype_b, __ctype_b, GLIBC_2_0);
-compat_symbol (libc, __ctype_tolower, __ctype_tolower, GLIBC_2_0);
-compat_symbol (libc, __ctype_toupper, __ctype_toupper, GLIBC_2_0);
-compat_symbol (libc, __ctype32_b, __ctype32_b, GLIBC_2_0);
-compat_symbol (libc, __ctype32_tolower, __ctype32_tolower, GLIBC_2_2);
-compat_symbol (libc, __ctype32_toupper, __ctype32_toupper, GLIBC_2_2);
+compat_symbol_reference (libc, __ctype_b, __ctype_b, GLIBC_2_0);
+compat_symbol_reference (libc, __ctype_tolower, __ctype_tolower, GLIBC_2_0);
+compat_symbol_reference (libc, __ctype_toupper, __ctype_toupper, GLIBC_2_0);
+compat_symbol_reference (libc, __ctype32_b, __ctype32_b, GLIBC_2_0);
+compat_symbol_reference (libc, __ctype32_tolower, __ctype32_tolower,
+			  GLIBC_2_2);
+compat_symbol_reference (libc, __ctype32_toupper, __ctype32_toupper,
+			 GLIBC_2_2);
 
   __ctype_b = current (uint16_t, CLASS, 128);
   __ctype_toupper = current (int32_t, TOUPPER, 128);