This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Remove miscellaneous bounded-pointers relics in C code
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Thu, 14 Feb 2013 21:31:34 +0000
- Subject: Remove miscellaneous bounded-pointers relics in C code
Continuing the removal of the bitrotten bounded-pointers code, this
patch removes miscellaneous relics of bounded-pointers support in C
sources. After this patch, I think the remaining pieces are assembly
sources (including bp-sym.h and bp-asm.h), build system and the
proliferation of different letters used for special cases in
syscalls.list, the distinctions between which were only relevant for
bounded-pointer-checking thunks.
Tested x86_64.
2013-02-14 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* config.h.in [USE_REGPARMS && !PROF && !__BOUNDED_POINTERS__]:
Remove __BOUNDED_POINTERS__ from condition.
* elf/dl-runtime.c [!PROF && !__BOUNDED_POINTERS__]: Likewise.
* string/bits/string2.h [!__NO_STRING_INLINES &&
!__BOUNDED_POINTERS__]: Likewise.
* sysdeps/i386/dl-machine.h [!PROF && !__BOUNDED_POINTERS__]:
Likewise.
* sysdeps/unix/sysv/linux/shmat.c (shmat) [__BOUNDED_POINTERS__]:
Remove conditional code.
* sysdeps/x86/bits/string.h [!__NO_STRING_INLINES &&
__USE_STRING_INLINES && __GNUC__ && __GNUC__ >= 2 &&
!__BOUNDED_POINTERS__]: Remove __BOUNDED_POINTERS__ from
condition.
ports/ChangeLog.am33:
2013-02-14 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/am33/dl-machine.h [!PROF && !__BOUNDED_POINTERS__]:
Remove __BOUNDED_POINTERS__ from condition.
diff --git a/config.h.in b/config.h.in
index f3fe6b8..8c2479e 100644
--- a/config.h.in
+++ b/config.h.in
@@ -115,7 +115,7 @@
/* Defined to some form of __attribute__ ((...)) if the compiler supports
a different, more efficient calling convention. */
-#if defined USE_REGPARMS && !defined PROF && !defined __BOUNDED_POINTERS__
+#if defined USE_REGPARMS && !defined PROF
# define internal_function __attribute__ ((regparm (3), stdcall))
#endif
diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c
index 3ca02f5..8284748 100644
--- a/elf/dl-runtime.c
+++ b/elf/dl-runtime.c
@@ -148,7 +148,7 @@ _dl_fixup (
return elf_machine_fixup_plt (l, result, reloc, rel_addr, value);
}
-#if !defined PROF && !__BOUNDED_POINTERS__
+#ifndef PROF
DL_FIXUP_VALUE_TYPE
__attribute ((noinline)) ARCH_FIXUP_ATTRIBUTE
_dl_profile_fixup (
diff --git a/ports/sysdeps/am33/dl-machine.h b/ports/sysdeps/am33/dl-machine.h
index f22fee8..924319d 100644
--- a/ports/sysdeps/am33/dl-machine.h
+++ b/ports/sysdeps/am33/dl-machine.h
@@ -55,7 +55,7 @@ elf_machine_load_address (void)
return off + gotaddr - gotval;
}
-#if !defined PROF && !__BOUNDED_POINTERS__
+#ifndef PROF
/* We add a declaration of this function here so that in dl-runtime.c
the ELF_MACHINE_RUNTIME_TRAMPOLINE macro really can pass the parameters
in registers.
@@ -114,7 +114,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
/* This code is used in dl-runtime.c to call the `fixup' function
and then redirect to the address it returns. */
-#if !defined PROF && !__BOUNDED_POINTERS__
+#ifndef PROF
# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
.text\n\
.globl _dl_runtime_resolve\n\
diff --git a/string/bits/string2.h b/string/bits/string2.h
index 8b6a36f..94f5ee9 100644
--- a/string/bits/string2.h
+++ b/string/bits/string2.h
@@ -21,7 +21,7 @@
# error "Never use <bits/string2.h> directly; include <string.h> instead."
#endif
-#if !defined __NO_STRING_INLINES && !defined __BOUNDED_POINTERS__
+#ifndef __NO_STRING_INLINES
/* Unlike the definitions in the header <bits/string.h> the
definitions contained here are not optimized down to assembler
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
index 1f2cb60..0b4c467 100644
--- a/sysdeps/i386/dl-machine.h
+++ b/sysdeps/i386/dl-machine.h
@@ -144,7 +144,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
#ifdef IN_DL_RUNTIME
-# if !defined PROF && !__BOUNDED_POINTERS__
+# ifndef PROF
/* We add a declaration of this function here so that in dl-runtime.c
the ELF_MACHINE_RUNTIME_TRAMPOLINE macro really can pass the parameters
in registers.
diff --git a/sysdeps/unix/sysv/linux/shmat.c b/sysdeps/unix/sysv/linux/shmat.c
index 45f0dea..bac1b29 100644
--- a/sysdeps/unix/sysv/linux/shmat.c
+++ b/sysdeps/unix/sysv/linux/shmat.c
@@ -38,15 +38,6 @@ shmat (shmid, shmaddr, shmflg)
unsigned long resultvar;
void *raddr;
-#if __BOUNDED_POINTERS__
- size_t length = ~0;
- struct shmid_ds shmds;
- /* It's unfortunate that we need to make another system call to get
- the shared memory segment length... */
- if (shmctl (shmid, IPC_STAT, &shmds) == 0)
- length = shmds.shm_segsz;
-#endif
-
resultvar = INTERNAL_SYSCALL (ipc, err, 5, IPCOP_shmat,
shmid, shmflg,
(long int) &raddr,
diff --git a/sysdeps/x86/bits/string.h b/sysdeps/x86/bits/string.h
index 41d2041..24b64ec 100644
--- a/sysdeps/x86/bits/string.h
+++ b/sysdeps/x86/bits/string.h
@@ -36,7 +36,7 @@
/* We only provide optimizations if the user selects them and if
GNU CC is used. */
# if !defined __NO_STRING_INLINES && defined __USE_STRING_INLINES \
- && defined __GNUC__ && __GNUC__ >= 2 && !__BOUNDED_POINTERS__
+ && defined __GNUC__ && __GNUC__ >= 2
# ifndef __STRING_INLINE
# ifndef __extern_inline
--
Joseph S. Myers
joseph@codesourcery.com