This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]