* [PATCH] sim: filter out SIGSTKSZ [PR sim/28302]
@ 2021-10-03 16:09 Mike Frysinger via Gdb-patches
2022-01-11 15:14 ` Aktemur, Tankut Baris via Gdb-patches
0 siblings, 1 reply; 4+ messages in thread
From: Mike Frysinger via Gdb-patches @ 2021-10-03 16:09 UTC (permalink / raw)
To: gdb-patches
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
---
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 e9c8c8f273b5..0340ed54764e 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 db3ff641d402..955ace343110 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 8ae88397249c..8bc6ae59026d 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.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH] sim: filter out SIGSTKSZ [PR sim/28302]
2021-10-03 16:09 [PATCH] sim: filter out SIGSTKSZ [PR sim/28302] Mike Frysinger via Gdb-patches
@ 2022-01-11 15:14 ` Aktemur, Tankut Baris via Gdb-patches
2022-01-11 17:27 ` Mike Frysinger via Gdb-patches
2022-01-12 5:05 ` Joel Brobecker via Gdb-patches
0 siblings, 2 replies; 4+ messages in thread
From: Aktemur, Tankut Baris via Gdb-patches @ 2022-01-11 15:14 UTC (permalink / raw)
To: Mike Frysinger, Joel Brobecker, gdb-patches
On Sunday, October 3, 2021 6:09 PM, Mike Frysinger wrote:
> 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
This patch fixes a build problem that may be seen with GDB 11. Should
it be cherry-picked to gdb-11-branch to be included for the upcoming
11.2 release?
Thanks
-Baris
Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] sim: filter out SIGSTKSZ [PR sim/28302]
2022-01-11 15:14 ` Aktemur, Tankut Baris via Gdb-patches
@ 2022-01-11 17:27 ` Mike Frysinger via Gdb-patches
2022-01-12 5:05 ` Joel Brobecker via Gdb-patches
1 sibling, 0 replies; 4+ messages in thread
From: Mike Frysinger via Gdb-patches @ 2022-01-11 17:27 UTC (permalink / raw)
To: Aktemur, Tankut Baris; +Cc: gdb-patches, Joel Brobecker
[-- Attachment #1: Type: text/plain, Size: 1605 bytes --]
On 11 Jan 2022 15:14, Aktemur, Tankut Baris wrote:
> On Sunday, October 3, 2021 6:09 PM, Mike Frysinger wrote:
> > 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
>
> This patch fixes a build problem that may be seen with GDB 11. Should
> it be cherry-picked to gdb-11-branch to be included for the upcoming
> 11.2 release?
i don't normally pay much attention to branches. but i can cherry pick
it back if people want it & branch maintainer approves it.
-mike
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] sim: filter out SIGSTKSZ [PR sim/28302]
2022-01-11 15:14 ` Aktemur, Tankut Baris via Gdb-patches
2022-01-11 17:27 ` Mike Frysinger via Gdb-patches
@ 2022-01-12 5:05 ` Joel Brobecker via Gdb-patches
1 sibling, 0 replies; 4+ messages in thread
From: Joel Brobecker via Gdb-patches @ 2022-01-12 5:05 UTC (permalink / raw)
To: Aktemur, Tankut Baris; +Cc: gdb-patches, Joel Brobecker
> > 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
>
> This patch fixes a build problem that may be seen with GDB 11. Should
> it be cherry-picked to gdb-11-branch to be included for the upcoming
> 11.2 release?
Thanks for highlighting this patch. It does seem interesting to
have this patch in the 11.2 release, so go right ahead and backport.
The patch already has a PR number, so this is good. I've changed
the PR to add the target mileston set to 11.2 as required by our
procedures, and re-opened the PR for now.
Thanks,
--
Joel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-01-12 5:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-03 16:09 [PATCH] sim: filter out SIGSTKSZ [PR sim/28302] Mike Frysinger via Gdb-patches
2022-01-11 15:14 ` Aktemur, Tankut Baris via Gdb-patches
2022-01-11 17:27 ` Mike Frysinger via Gdb-patches
2022-01-12 5:05 ` Joel Brobecker via Gdb-patches
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox