* [Buildroot] [PATCH v1] package/gdb: fix host gdb-11.1 compile with simulator enabled and glibc >= 2.34
@ 2021-11-04 20:33 Peter Seiderer
2021-11-06 10:50 ` Thomas Petazzoni
0 siblings, 1 reply; 3+ messages in thread
From: Peter Seiderer @ 2021-11-04 20:33 UTC (permalink / raw)
To: buildroot
- add upstream patch to avoid host gdb-11.1 compile failure with simulator
enabled and glibc >= 2.34
Fixes:
targ-map.c:412:17: error: initializer element is not constant
412 | { "SIGSTKSZ", SIGSTKSZ, TARGET_SIGSTKSZ },
| ^~~~~~~~
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
...sim-filter-out-SIGSTKSZ-PR-sim-28302.patch | 110 ++++++++++++++++++
1 file changed, 110 insertions(+)
create mode 100644 package/gdb/11.1/0006-sim-filter-out-SIGSTKSZ-PR-sim-28302.patch
diff --git a/package/gdb/11.1/0006-sim-filter-out-SIGSTKSZ-PR-sim-28302.patch b/package/gdb/11.1/0006-sim-filter-out-SIGSTKSZ-PR-sim-28302.patch
new file mode 100644
index 0000000000..d969d98831
--- /dev/null
+++ b/package/gdb/11.1/0006-sim-filter-out-SIGSTKSZ-PR-sim-28302.patch
@@ -0,0 +1,110 @@
+From 7b3df9b8938357c2b0dcf2624e599a76fc4edc02 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 3 Oct 2021 12:02:53 -0400
+Subject: [PATCH] sim: filter out SIGSTKSZ [PR sim/28302]
+
+We map target signals to host signals so we can propagate signals
+between the host & simulated worlds. That means we need to know
+the symbolic names & values of all signals that might be sent.
+
+The tools that generate that list use signal.h and include all
+symbols that start with "SIG" so as to automatically include any
+new symbols that the C library might add. Unfortunately, this
+also picks up "SIGSTKSZ" which is not actually a signal itself,
+but a signal related setting -- it's the size of the stack when
+a signal is handled.
+
+By itself this doesn't super matter as we will never see a signal
+with that same value (since the range of valid signals tend to be
+way less than 1024, and the size of the default signal stack will
+never be that small). But with recent glibc changes that make this
+into a dynamic value instead of a compile-time constant, some users
+see build failures when building the sim.
+
+As suggested by Adam Sampson, update our scripts to ignore this
+symbol to simplify everything and avoid the build failure.
+
+Bug: https://sourceware.org/PR28302
+
+[Upstream: https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=39d53d04357606a15efd400147fa7369d71baf2c]
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+---
+ sim/bfin/linux-targ-map.h | 5 +----
+ sim/common/gennltvals.py | 6 ++++--
+ sim/common/nltvals.def | 1 -
+ 3 files changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/sim/bfin/linux-targ-map.h b/sim/bfin/linux-targ-map.h
+index e9c8c8f..0340ed5 100644
+--- a/sim/bfin/linux-targ-map.h
++++ b/sim/bfin/linux-targ-map.h
+@@ -30,6 +30,7 @@ echo
+ # XXX: nothing uses this ?
+ echo '#include <signal.h>' | \
+ bfin-uclinux-gcc -E -dD -P - | \
++grep -v SIGSTKSZ | \
+ sed -r -n \
+ -e '1istatic CB_TARGET_DEFS_MAP cb_linux_signal_map[] = {' \
+ -e '$i\ \ { 0, -1, -1 }\n};' \
+@@ -1987,10 +1988,6 @@ static CB_TARGET_DEFS_MAP cb_linux_signal_map[] =
+ #ifdef SIG_SETMASK
+ # define TARGET_LINUX_SIG_SETMASK 2
+ { "SIG_SETMASK", SIG_SETMASK, TARGET_LINUX_SIG_SETMASK },
+-#endif
+-#ifdef SIGSTKSZ
+-# define TARGET_LINUX_SIGSTKSZ 8192
+- { "SIGSTKSZ", SIGSTKSZ, TARGET_LINUX_SIGSTKSZ },
+ #endif
+ { 0, -1, -1 }
+ };
+diff --git a/sim/common/gennltvals.py b/sim/common/gennltvals.py
+index b3e558d..bd4d7e9 100755
+--- a/sim/common/gennltvals.py
++++ b/sim/common/gennltvals.py
+@@ -67,6 +67,7 @@ FILE_HEADER = f"""\
+ def gentvals(output: TextIO, cpp: str, srctype: str, srcdir: Path,
+ headers: Iterable[str],
+ pattern: str,
++ filter: str = r'^$',
+ target: str = None):
+ """Extract constants from the specified files using a regular expression.
+
+@@ -94,12 +95,13 @@ def gentvals(output: TextIO, cpp: str, srctype: str, srcdir: Path,
+ srcfile = ''.join(f'#include <{x}>\n' for x in headers)
+ syms = set()
+ define_pattern = re.compile(r'^#\s*define\s+(' + pattern + ')')
++ filter_pattern = re.compile(filter)
+ for header in headers:
+ with open(srcdir / header, 'r', encoding='utf-8') as fp:
+ data = fp.read()
+ for line in data.splitlines():
+ m = define_pattern.match(line)
+- if m:
++ if m and not filter_pattern.search(line):
+ syms.add(m.group(1))
+ for sym in sorted(syms):
+ srcfile += f'#ifdef {sym}\nDEFVAL {{ "{sym}", {sym} }},\n#endif\n'
+@@ -129,7 +131,7 @@ def gen_common(output: TextIO, newlib: Path, cpp: str):
+ ('errno.h', 'sys/errno.h'), 'E[A-Z0-9]*')
+
+ gentvals(output, cpp, 'signal', newlib / 'newlib/libc/include',
+- ('signal.h', 'sys/signal.h'), r'SIG[A-Z0-9]*')
++ ('signal.h', 'sys/signal.h'), r'SIG[A-Z0-9]*', filter=r'SIGSTKSZ')
+
+ gentvals(output, cpp, 'open', newlib / 'newlib/libc/include',
+ ('fcntl.h', 'sys/fcntl.h', 'sys/_default_fcntl.h'), r'O_[A-Z0-9]*')
+diff --git a/sim/common/nltvals.def b/sim/common/nltvals.def
+index 8ae8839..8bc6ae5 100644
+--- a/sim/common/nltvals.def
++++ b/sim/common/nltvals.def
+@@ -116,7 +116,6 @@
+ { "SIGPROF", 27 },
+ { "SIGQUIT", 3 },
+ { "SIGSEGV", 11 },
+- { "SIGSTKSZ", 8192 },
+ { "SIGSTOP", 17 },
+ { "SIGSYS", 12 },
+ { "SIGTERM", 15 },
+--
+2.33.1
+
--
2.33.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH v1] package/gdb: fix host gdb-11.1 compile with simulator enabled and glibc >= 2.34
2021-11-04 20:33 [Buildroot] [PATCH v1] package/gdb: fix host gdb-11.1 compile with simulator enabled and glibc >= 2.34 Peter Seiderer
@ 2021-11-06 10:50 ` Thomas Petazzoni
2021-11-06 11:31 ` Peter Seiderer
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Petazzoni @ 2021-11-06 10:50 UTC (permalink / raw)
To: Peter Seiderer; +Cc: buildroot
On Thu, 4 Nov 2021 21:33:10 +0100
Peter Seiderer <ps.report@gmx.net> wrote:
> - add upstream patch to avoid host gdb-11.1 compile failure with simulator
> enabled and glibc >= 2.34
>
> Fixes:
>
> targ-map.c:412:17: error: initializer element is not constant
> 412 | { "SIGSTKSZ", SIGSTKSZ, TARGET_SIGSTKSZ },
> | ^~~~~~~~
>
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> ...sim-filter-out-SIGSTKSZ-PR-sim-28302.patch | 110 ++++++++++++++++++
> 1 file changed, 110 insertions(+)
> create mode 100644 package/gdb/11.1/0006-sim-filter-out-SIGSTKSZ-PR-sim-28302.patch
Applied to master, thanks. Did you verify that this was only applicable
to gdb 11.x and none of the older versions?
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH v1] package/gdb: fix host gdb-11.1 compile with simulator enabled and glibc >= 2.34
2021-11-06 10:50 ` Thomas Petazzoni
@ 2021-11-06 11:31 ` Peter Seiderer
0 siblings, 0 replies; 3+ messages in thread
From: Peter Seiderer @ 2021-11-06 11:31 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: buildroot
Hello Thomas,
On Sat, 6 Nov 2021 11:50:44 +0100, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
> On Thu, 4 Nov 2021 21:33:10 +0100
> Peter Seiderer <ps.report@gmx.net> wrote:
>
> > - add upstream patch to avoid host gdb-11.1 compile failure with simulator
> > enabled and glibc >= 2.34
> >
> > Fixes:
> >
> > targ-map.c:412:17: error: initializer element is not constant
> > 412 | { "SIGSTKSZ", SIGSTKSZ, TARGET_SIGSTKSZ },
> > | ^~~~~~~~
> >
> > Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> > ---
> > ...sim-filter-out-SIGSTKSZ-PR-sim-28302.patch | 110 ++++++++++++++++++
> > 1 file changed, 110 insertions(+)
> > create mode 100644 package/gdb/11.1/0006-sim-filter-out-SIGSTKSZ-PR-sim-28302.patch
>
> Applied to master, thanks. Did you verify that this was only applicable
> to gdb 11.x and none of the older versions?
Yes, gdb-9.2 and gdb-10.2 seems not affected (but did not check the details why)...
Regards,
Peter
>
> Thanks!
>
> Thomas
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-11-06 11:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-04 20:33 [Buildroot] [PATCH v1] package/gdb: fix host gdb-11.1 compile with simulator enabled and glibc >= 2.34 Peter Seiderer
2021-11-06 10:50 ` Thomas Petazzoni
2021-11-06 11:31 ` Peter Seiderer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.