ia64: Always define IA64_USE_NEW_STUB as a flag macro
authorFlorian Weimer <fweimer@redhat.com>
Mon, 9 May 2022 16:15:16 +0000 (18:15 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 9 May 2022 16:15:16 +0000 (18:15 +0200)
And keep the previous definition if it exists.  This allows
disabling IA64_USE_NEW_STUB while keeping USE_DL_SYSINFO defined.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
sysdeps/unix/sysv/linux/ia64/brk.c
sysdeps/unix/sysv/linux/ia64/sysdep.h

index 65142ae..d2135b7 100644 (file)
@@ -16,7 +16,6 @@
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
-#include <dl-sysdep.h>
-/* brk is used by statup before TCB is properly set.  */
-#undef USE_DL_SYSINFO
+/* brk is used by startup before TCB is properly set up.  */
+#define IA64_USE_NEW_STUB 0
 #include <sysdeps/unix/sysv/linux/brk.c>
index 193ecee..14adbdf 100644 (file)
 #undef SYS_ify
 #define SYS_ify(syscall_name)  __NR_##syscall_name
 
-#if defined USE_DL_SYSINFO \
-       && (IS_IN (libc) \
-           || IS_IN (libpthread) || IS_IN (librt))
-# define IA64_USE_NEW_STUB
-#else
-# undef IA64_USE_NEW_STUB
+#ifndef IA64_USE_NEW_STUB
+# if defined USE_DL_SYSINFO && IS_IN (libc)
+#  define IA64_USE_NEW_STUB 1
+# else
+#  define IA64_USE_NEW_STUB 0
+# endif
+#endif
+#if IA64_USE_NEW_STUB && !USE_DL_SYSINFO
+# error IA64_USE_NEW_STUB needs USE_DL_SYSINFO
 #endif
 
 #ifdef __ASSEMBLER__
        mov r15=num;                            \
        break __IA64_BREAK_SYSCALL
 
-#ifdef IA64_USE_NEW_STUB
+#if IA64_USE_NEW_STUB
 # ifdef SHARED
 #  define DO_CALL(num)                         \
        .prologue;                              \
    (non-negative) errno on error or the return value on success.
  */
 
-#ifdef IA64_USE_NEW_STUB
+#if IA64_USE_NEW_STUB
 
 # define INTERNAL_SYSCALL_NCS(name, nr, args...)                             \
 ({                                                                           \
 #define ASM_OUTARGS_5  ASM_OUTARGS_4, "=r" (_out4)
 #define ASM_OUTARGS_6  ASM_OUTARGS_5, "=r" (_out5)
 
-#ifdef IA64_USE_NEW_STUB
+#if IA64_USE_NEW_STUB
 #define ASM_ARGS_0
 #define ASM_ARGS_1     ASM_ARGS_0, "4" (_out0)
 #define ASM_ARGS_2     ASM_ARGS_1, "5" (_out1)
   /* Branch registers.  */                                             \
   "b6"
 
-#ifdef IA64_USE_NEW_STUB
+#if IA64_USE_NEW_STUB
 # define ASM_CLOBBERS_6        ASM_CLOBBERS_6_COMMON
 #else
 # define ASM_CLOBBERS_6        ASM_CLOBBERS_6_COMMON , "b7"