[ghdl] add siginfo patch
sailer
sailer at fedoraproject.org
Wed Jul 25 19:12:24 UTC 2012
commit 2d999a9e8f2ab4f4630ff7b8f3f85fa1de63cbe6
Author: Thomas Sailer <t.sailer at alumni.ethz.ch>
Date: Wed Jul 25 21:08:32 2012 +0200
add siginfo patch
ghdl-siginfo.patch | 181 ++++++++++++++++++++++++++++++++++++++++++++++++++++
ghdl.spec | 2 +
2 files changed, 183 insertions(+), 0 deletions(-)
---
diff --git a/ghdl-siginfo.patch b/ghdl-siginfo.patch
new file mode 100644
index 0000000..d6eeaaf
--- /dev/null
+++ b/ghdl-siginfo.patch
@@ -0,0 +1,181 @@
+There is one usage in boehm-gc/os_dep.c, but it is only used if
+SUNOS5SIGS is defined, which it is only if one of SUNOS5, DRSNX, HPUX, or
+FREEBSD is defined, which are all not using Linux-based glibc ports.
+
+Likewise, gcc/ada/init.c has a struct __siginfo occurence, but only for
+__FreeBSD__.
+
+config/rs6000/linux-unwind.h uses ``char siginfo[128]'', and
+config/s390/linux-unwind.h also uses a constant.
+
+I tested the following patch for sh-linux-gnu. This only covers one
+configuration, but the change is pretty mechanic anyway and every place
+that used to refer to struct siginfo already must have had <signal.h> in
+its include path, which is the same file that declares siginfo_t.
+
+OK to commit? This should probably also go into any active release
+branches, to keep them buildable once this glibc change ripples through?
+
+libgcc/
+ * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+ siginfo_t instead of struct siginfo.
+ * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+ * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+ * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+ (ia64_handle_unwabi): Likewise.
+ * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+ * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+ * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+ (sh_fallback_frame_state): Likewise.
+ * config/tilepro/linux-unwind.h (tile_fallback_frame_state): Likewise.
+ * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+
+diff --git a/libgcc/config/alpha/linux-unwind.h b/libgcc/config/alpha/linux-unwind.h
+index 4c811dc..f747053 100644
+--- a/libgcc/config/alpha/linux-unwind.h
++++ b/libgcc/config/alpha/linux-unwind.h
+@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
+ else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
+ {
+ struct rt_sigframe {
+- struct siginfo info;
++ siginfo_t info;
+ struct ucontext uc;
+ } *rt_ = context->cfa;
+ sc = &rt_->uc.uc_mcontext;
+diff --git a/libgcc/config/bfin/linux-unwind.h b/libgcc/config/bfin/linux-unwind.h
+index 88c8285..6e8f1ad 100644
+--- a/libgcc/config/bfin/linux-unwind.h
++++ b/libgcc/config/bfin/linux-unwind.h
+@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
+ {
+ struct rt_sigframe {
+ int sig;
+- struct siginfo *pinfo;
++ siginfo_t *pinfo;
+ void *puc;
+ char retcode[8];
+- struct siginfo info;
++ siginfo_t info;
+ struct ucontext uc;
+ } *rt_ = context->cfa;
+
+diff --git a/libgcc/config/i386/linux-unwind.h b/libgcc/config/i386/linux-unwind.h
+index f17a46c..33810c5 100644
+--- a/libgcc/config/i386/linux-unwind.h
++++ b/libgcc/config/i386/linux-unwind.h
+@@ -139,9 +139,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
+ {
+ struct rt_sigframe {
+ int sig;
+- struct siginfo *pinfo;
++ siginfo_t *pinfo;
+ void *puc;
+- struct siginfo info;
++ siginfo_t info;
+ struct ucontext uc;
+ } *rt_ = context->cfa;
+ /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/libgcc/config/ia64/linux-unwind.h b/libgcc/config/ia64/linux-unwind.h
+index 93f762d..baf80ee 100644
+--- a/libgcc/config/ia64/linux-unwind.h
++++ b/libgcc/config/ia64/linux-unwind.h
+@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
+ struct sigframe {
+ char scratch[16];
+ unsigned long sig_number;
+- struct siginfo *info;
++ siginfo_t *info;
+ struct sigcontext *sc;
+ } *frame_ = (struct sigframe *)context->psp;
+ struct sigcontext *sc = frame_->sc;
+@@ -137,7 +137,7 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
+ struct sigframe {
+ char scratch[16];
+ unsigned long sig_number;
+- struct siginfo *info;
++ siginfo_t *info;
+ struct sigcontext *sc;
+ } *frame = (struct sigframe *)context->psp;
+ struct sigcontext *sc = frame->sc;
+diff --git a/libgcc/config/mips/linux-unwind.h b/libgcc/config/mips/linux-unwind.h
+index 02f7cd5..69d96f1 100644
+--- a/libgcc/config/mips/linux-unwind.h
++++ b/libgcc/config/mips/linux-unwind.h
+@@ -75,7 +75,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
+ struct rt_sigframe {
+ u_int32_t ass[4]; /* Argument save space for o32. */
+ u_int32_t trampoline[2];
+- struct siginfo info;
++ siginfo_t info;
+ _sig_ucontext_t uc;
+ } *rt_ = context->cfa;
+ sc = &rt_->uc.uc_mcontext;
+diff --git a/libgcc/config/pa/linux-unwind.h b/libgcc/config/pa/linux-unwind.h
+index a0560e9..dd8f590 100644
+--- a/libgcc/config/pa/linux-unwind.h
++++ b/libgcc/config/pa/linux-unwind.h
+@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
+ int i;
+ struct sigcontext *sc;
+ struct rt_sigframe {
+- struct siginfo info;
++ siginfo_t info;
+ struct ucontext uc;
+ } *frame;
+
+diff --git a/libgcc/config/sh/linux-unwind.h b/libgcc/config/sh/linux-unwind.h
+index 94ed95d..c1e1adb 100644
+--- a/libgcc/config/sh/linux-unwind.h
++++ b/libgcc/config/sh/linux-unwind.h
+@@ -80,9 +80,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
+ && (*(unsigned long *) (pc+11) == 0x6ff0fff0))
+ {
+ struct rt_sigframe {
+- struct siginfo *pinfo;
++ siginfo_t *pinfo;
+ void *puc;
+- struct siginfo info;
++ siginfo_t info;
+ struct ucontext uc;
+ } *rt_ = context->cfa;
+ /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +179,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
+ && (*(unsigned short *) (pc+14) == 0x00ad))))
+ {
+ struct rt_sigframe {
+- struct siginfo info;
++ siginfo_t info;
+ struct ucontext uc;
+ } *rt_ = context->cfa;
+ /* The void * cast is necessary to avoid an aliasing warning.
+diff --git a/libgcc/config/tilepro/linux-unwind.h b/libgcc/config/tilepro/linux-unwind.h
+index 0ed662c..27a6c43 100644
+--- a/libgcc/config/tilepro/linux-unwind.h
++++ b/libgcc/config/tilepro/linux-unwind.h
+@@ -61,7 +61,7 @@ tile_fallback_frame_state (struct _Unwind_Context *context,
+
+ struct rt_sigframe {
+ unsigned char save_area[C_ABI_SAVE_AREA_SIZE];
+- struct siginfo info;
++ siginfo_t info;
+ struct ucontext uc;
+ } *rt_;
+
+diff --git a/libgcc/config/xtensa/linux-unwind.h b/libgcc/config/xtensa/linux-unwind.h
+index 32e9349..dda1f29 100644
+--- a/libgcc/config/xtensa/linux-unwind.h
++++ b/libgcc/config/xtensa/linux-unwind.h
+@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
+ struct sigcontext *sc;
+
+ struct rt_sigframe {
+- struct siginfo info;
++ siginfo_t info;
+ struct ucontext uc;
+ } *rt_;
+
+
+
+Gruesse,
+ Thomas
diff --git a/ghdl.spec b/ghdl.spec
index bf40f7a..cbbd74a 100644
--- a/ghdl.spec
+++ b/ghdl.spec
@@ -29,6 +29,7 @@ Patch105: ghdl-grtadac.patch
Patch106: ghdl-ppc64abort.patch
# https://gna.org/bugs/index.php?13389
Patch107: ieee-mathreal.patch
+Patch108: ghdl-siginfo.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
@@ -137,6 +138,7 @@ popd
%patch104 -p0 -b .libgnat44
%patch105 -p1 -b .grtadac
%patch106 -p0 -b .ppc64abort
+%patch108 -p1 -b .siginfo
%build
%{__rm} -fr obj-%{gcc_target_platform}
More information about the scm-commits
mailing list