aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2022-03-25 15:46:10 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-02-09 10:29:18 -0300
commit0d9d1f3feb3afe4e577c00091ede83a7ccadaa72 (patch)
tree18feaafeff3b3907ecac5ac680c260e25b077d7e
parent19f52e0445fd2e6a126c28c33e3140bd0346464a (diff)
downloadglibc-0d9d1f3feb3afe4e577c00091ede83a7ccadaa72.tar
glibc-0d9d1f3feb3afe4e577c00091ede83a7ccadaa72.tar.gz
glibc-0d9d1f3feb3afe4e577c00091ede83a7ccadaa72.tar.bz2
glibc-0d9d1f3feb3afe4e577c00091ede83a7ccadaa72.zip
elf: Do not cast TLS_DTV_UNALLOCATED to void
The test-as-const-tlsdesc uses _Static_assert to verify the constants generated and clang warns the expression is not an integral constant expression because the cast performs a conversion (and it is no allowed).
-rw-r--r--elf/dl-tls.c2
-rw-r--r--sysdeps/aarch64/tlsdesc.sym2
-rw-r--r--sysdeps/arc/dl-tls.h2
-rw-r--r--sysdeps/generic/dl-dtv.h2
-rw-r--r--sysdeps/loongarch/dl-tls.h3
-rw-r--r--sysdeps/riscv/dl-tls.h2
6 files changed, 6 insertions, 7 deletions
diff --git a/elf/dl-tls.c b/elf/dl-tls.c
index 7b3dd9ab60..020ec60957 100644
--- a/elf/dl-tls.c
+++ b/elf/dl-tls.c
@@ -75,6 +75,8 @@
/* Default for dl_tls_static_optional. */
#define OPTIONAL_TLS 512
+#define TLS_DTV_UNALLOCATED ((void *) TLS_DTV_UNALLOCATED_VALUE)
+
/* Compute the static TLS surplus based on the namespace count and the
TLS space that can be used for optimizations. */
static inline int
diff --git a/sysdeps/aarch64/tlsdesc.sym b/sysdeps/aarch64/tlsdesc.sym
index a06a719779..477585bdcb 100644
--- a/sysdeps/aarch64/tlsdesc.sym
+++ b/sysdeps/aarch64/tlsdesc.sym
@@ -15,4 +15,4 @@ TLSDESC_MODID offsetof(struct tlsdesc_dynamic_arg, tlsinfo.ti_module)
TLSDESC_MODOFF offsetof(struct tlsdesc_dynamic_arg, tlsinfo.ti_offset)
TCBHEAD_DTV offsetof(tcbhead_t, dtv)
DTV_COUNTER offsetof(dtv_t, counter)
-TLS_DTV_UNALLOCATED TLS_DTV_UNALLOCATED
+TLS_DTV_UNALLOCATED TLS_DTV_UNALLOCATED_VALUE
diff --git a/sysdeps/arc/dl-tls.h b/sysdeps/arc/dl-tls.h
index e498fab8fe..70c26a68b3 100644
--- a/sysdeps/arc/dl-tls.h
+++ b/sysdeps/arc/dl-tls.h
@@ -27,4 +27,4 @@ typedef struct
extern void *__tls_get_addr (tls_index *ti);
/* Value used for dtv entries for which the allocation is delayed. */
-#define TLS_DTV_UNALLOCATED ((void *) -1l)
+#define TLS_DTV_UNALLOCATED_VALE -1l
diff --git a/sysdeps/generic/dl-dtv.h b/sysdeps/generic/dl-dtv.h
index a1d8c0915d..f13b4d5c2f 100644
--- a/sysdeps/generic/dl-dtv.h
+++ b/sysdeps/generic/dl-dtv.h
@@ -33,6 +33,6 @@ typedef union dtv
} dtv_t;
/* Value used for dtv entries for which the allocation is delayed. */
-#define TLS_DTV_UNALLOCATED ((void *) -1l)
+#define TLS_DTV_UNALLOCATED_VALUE -1l
#endif /* _DLT_DTV_H */
diff --git a/sysdeps/loongarch/dl-tls.h b/sysdeps/loongarch/dl-tls.h
index 29924b866d..d87a05b95e 100644
--- a/sysdeps/loongarch/dl-tls.h
+++ b/sysdeps/loongarch/dl-tls.h
@@ -41,6 +41,3 @@ extern void *__tls_get_addr (tls_index *ti);
#define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET)
#define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
-
-/* Value used for dtv entries for which the allocation is delayed. */
-#define TLS_DTV_UNALLOCATED ((void *) -1l)
diff --git a/sysdeps/riscv/dl-tls.h b/sysdeps/riscv/dl-tls.h
index 049161f02f..c138c5ce70 100644
--- a/sysdeps/riscv/dl-tls.h
+++ b/sysdeps/riscv/dl-tls.h
@@ -45,4 +45,4 @@ extern void *__tls_get_addr (tls_index *ti);
#define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
/* Value used for dtv entries for which the allocation is delayed. */
-#define TLS_DTV_UNALLOCATED ((void *) -1l)
+#define TLS_DTV_UNALLOCATED_VALUE -1l