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-04-17 16:12:41 -0300
commitd5eaf6b1068e06df0d6f7ece3c32f7c0b8cedf78 (patch)
treec12ca4a97640593b18a7dd83fb7e792bae87a5ea
parente3dd9164a1fdab2ba9130b1a2d32338f052a281c (diff)
downloadglibc-d5eaf6b1068e06df0d6f7ece3c32f7c0b8cedf78.zip
glibc-d5eaf6b1068e06df0d6f7ece3c32f7c0b8cedf78.tar.gz
glibc-d5eaf6b1068e06df0d6f7ece3c32f7c0b8cedf78.tar.bz2
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 7b3dd9a..020ec60 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 a06a719..477585b 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 e498fab..70c26a6 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 a1d8c09..f13b4d5 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 29924b8..d87a05b 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 049161f..c138c5c 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