]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Bug 21053: sh: Reduce namespace pollution from sys/ucontext.h
authorJames Clarke <jrtc27@jrtc27.com>
Tue, 24 Jan 2017 11:20:06 +0000 (09:20 -0200)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 24 Jan 2017 11:20:06 +0000 (09:20 -0200)
The problem is basically that sys/ucontext.h is defining R0..R15
which happens to conflict with some packages like Firefox when
trying to build on SH.

The very same problem existed on arm back then [1] and it was fixed by
renaming R0..R15 to REG_R0..REG_R15.  This patch imploy a similar
strategy for SH.

Checked on sh4-linux-gnu with run-built-tests=no and I also got reports
that it fixes Firefox build on Debian sh4.

* sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym: Use new REG_R*
constants instead of the old R* ones.
* sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym: Likewise.
* sysdeps/unix/sysv/linux/sh/sys/ucontext.h (NGPREG): Rename...
(NGREG): ... to this, to fit in with other architectures.
(gpregset_t): Use new NGREG macro.
[__USE_GNU]: Remove condition; all architectures other than tile
are unconditional.
(R*): Rename to REG_R*.

ChangeLog
sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym
sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym
sysdeps/unix/sysv/linux/sh/sys/ucontext.h

index 1518c7f9adbff35dd4e650cb998baeb725bc3d67..c7f3a1008b0314755a3a3e695ed5eb2b1937dab0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2017-01-24  James Clarke  <jrtc27@jrtc27.com>
+
+       * sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym: Use new REG_R*
+       constants instead of the old R* ones.
+       * sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym: Likewise.
+       * sysdeps/unix/sysv/linux/sh/sys/ucontext.h (NGPREG): Rename...
+       (NGREG): ... to this, to fit in with other architectures.
+       (gpregset_t): Use new NGREG macro.
+       [__USE_GNU]: Remove condition; all architectures other than tile
+       are unconditional.
+       (R*): Rename to REG_R*.
+
 2017-01-20  DJ Delorie  <dj@redhat.com>
 
        * elf/dl-tunables.c (tunable_set_val_if_valid_range): Split into ...
index 17397c55112c665ae76d19f80f0b4dd8b18e81d4..25f914a93bfeb896c0ce542682e0ccaa9f4632b9 100644 (file)
@@ -13,22 +13,22 @@ SIG_SETMASK
 oLINK          ucontext (uc_link)
 oSS_SP         ucontext (uc_stack.ss_sp)
 oSS_SIZE       ucontext (uc_stack.ss_size)
-oR0            mcontext (gregs[R0])
-oR1            mcontext (gregs[R1])
-oR2            mcontext (gregs[R2])
-oR3            mcontext (gregs[R3])
-oR4            mcontext (gregs[R4])
-oR5            mcontext (gregs[R5])
-oR6            mcontext (gregs[R6])
-oR7            mcontext (gregs[R7])
-oR8            mcontext (gregs[R8])
-oR9            mcontext (gregs[R9])
-oR10           mcontext (gregs[R10])
-oR11           mcontext (gregs[R11])
-oR12           mcontext (gregs[R12])
-oR13           mcontext (gregs[R13])
-oR14           mcontext (gregs[R14])
-oR15           mcontext (gregs[R15])
+oR0            mcontext (gregs[REG_R0])
+oR1            mcontext (gregs[REG_R1])
+oR2            mcontext (gregs[REG_R2])
+oR3            mcontext (gregs[REG_R3])
+oR4            mcontext (gregs[REG_R4])
+oR5            mcontext (gregs[REG_R5])
+oR6            mcontext (gregs[REG_R6])
+oR7            mcontext (gregs[REG_R7])
+oR8            mcontext (gregs[REG_R8])
+oR9            mcontext (gregs[REG_R9])
+oR10           mcontext (gregs[REG_R10])
+oR11           mcontext (gregs[REG_R11])
+oR12           mcontext (gregs[REG_R12])
+oR13           mcontext (gregs[REG_R13])
+oR14           mcontext (gregs[REG_R14])
+oR15           mcontext (gregs[REG_R15])
 oPC            mcontext (pc)
 oPR            mcontext (pr)
 oSR            mcontext (sr)
index 65633fbcf496933eef93ca787f1ccac9727e810f..130f60cd96c984b09c8e165b395ffed2fa89a1d7 100644 (file)
@@ -13,22 +13,22 @@ SIG_SETMASK
 oLINK          ucontext (uc_link)
 oSS_SP         ucontext (uc_stack.ss_sp)
 oSS_SIZE       ucontext (uc_stack.ss_size)
-oR0            mcontext (gregs[R0])
-oR1            mcontext (gregs[R1])
-oR2            mcontext (gregs[R2])
-oR3            mcontext (gregs[R3])
-oR4            mcontext (gregs[R4])
-oR5            mcontext (gregs[R5])
-oR6            mcontext (gregs[R6])
-oR7            mcontext (gregs[R7])
-oR8            mcontext (gregs[R8])
-oR9            mcontext (gregs[R9])
-oR10           mcontext (gregs[R10])
-oR11           mcontext (gregs[R11])
-oR12           mcontext (gregs[R12])
-oR13           mcontext (gregs[R13])
-oR14           mcontext (gregs[R14])
-oR15           mcontext (gregs[R15])
+oR0            mcontext (gregs[REG_R0])
+oR1            mcontext (gregs[REG_R1])
+oR2            mcontext (gregs[REG_R2])
+oR3            mcontext (gregs[REG_R3])
+oR4            mcontext (gregs[REG_R4])
+oR5            mcontext (gregs[REG_R5])
+oR6            mcontext (gregs[REG_R6])
+oR7            mcontext (gregs[REG_R7])
+oR8            mcontext (gregs[REG_R8])
+oR9            mcontext (gregs[REG_R9])
+oR10           mcontext (gregs[REG_R10])
+oR11           mcontext (gregs[REG_R11])
+oR12           mcontext (gregs[REG_R12])
+oR13           mcontext (gregs[REG_R13])
+oR14           mcontext (gregs[REG_R14])
+oR15           mcontext (gregs[REG_R15])
 oPC            mcontext (pc)
 oPR            mcontext (pr)
 oSR            mcontext (sr)
index 3cad36870971a46bd287a05864d547fe83f317df..9fa479c15145fe37680742ec6116d1a2b1d693f4 100644 (file)
 typedef int greg_t;
 
 /* Number of general registers.  */
-#define NGPREG 16
+#define NGREG  16
 
 /* Container for all general registers.  */
-typedef greg_t gregset_t[NGPREG];
+typedef greg_t gregset_t[NGREG];
 
-#ifdef __USE_GNU
 /* Number of each register is the `gregset_t' array.  */
 enum
 {
-  R0 = 0,
-#define R0     R0
-  R1 = 1,
-#define R1     R1
-  R2 = 2,
-#define R2     R2
-  R3 = 3,
-#define R3     R3
-  R4 = 4,
-#define R4     R4
-  R5 = 5,
-#define R5     R5
-  R6 = 6,
-#define R6     R6
-  R7 = 7,
-#define R7     R7
-  R8 = 8,
-#define R8     R8
-  R9 = 9,
-#define R9     R9
-  R10 = 10,
-#define R10    R10
-  R11 = 11,
-#define R11    R11
-  R12 = 12,
-#define R12    R12
-  R13 = 13,
-#define R13    R13
-  R14 = 14,
-#define R14    R14
-  R15 = 15,
-#define R15    R15
+  REG_R0 = 0,
+#define REG_R0 REG_R0
+  REG_R1 = 1,
+#define REG_R1 REG_R1
+  REG_R2 = 2,
+#define REG_R2 REG_R2
+  REG_R3 = 3,
+#define REG_R3 REG_R3
+  REG_R4 = 4,
+#define REG_R4 REG_R4
+  REG_R5 = 5,
+#define REG_R5 REG_R5
+  REG_R6 = 6,
+#define REG_R6 REG_R6
+  REG_R7 = 7,
+#define REG_R7 REG_R7
+  REG_R8 = 8,
+#define REG_R8 REG_R8
+  REG_R9 = 9,
+#define REG_R9 REG_R9
+  REG_R10 = 10,
+#define REG_R10        REG_R10
+  REG_R11 = 11,
+#define REG_R11        REG_R11
+  REG_R12 = 12,
+#define REG_R12        REG_R12
+  REG_R13 = 13,
+#define REG_R13        REG_R13
+  REG_R14 = 14,
+#define REG_R14        REG_R14
+  REG_R15 = 15,
+#define REG_R15        REG_R15
 };
-#endif
 
 typedef int freg_t;