Port-m68k archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
sync DFLSSIZ and MAXXSIZ among m68k ports?
I've been trying to build m68k packages on NetBSD/virt68k and
got SIGSEGV on building pkgsrc/devel/ninja-build:
---
File "/usr/pkg/lib/python3.12/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['./ninja']' died with <Signals.SIGSEGV: 11>.
---
According to isaki@'s analysis, this also happen on NetBSD/x68k
and is caused by ninja that try to allocalte 512KB (!) on stack:
---
x68k# make package-install
:
bootstrapping ninja...
wrote build.ninja.
bootstrap complete. rebuilding...
Traceback (most recent call last):
File "/export/pkgsrc/devel/ninja-build/work/ninja-1.12.1/./configure.py", line 702, in <module>
subprocess.check_call(rebuild_args)
File "/usr/pkg/lib/python3.12/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['./ninja']' died with <Signals.SIGSEGV: 11>.
*** Error code 1
Stop.
make[1]: stopped in /export/pkgsrc/devel/ninja-build
:
x68k# cd work/ninja-1.21.1
x68k# gdb ./ninja ./ninja.core
:
Core was generated by `ninja'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0001707a in DepsLog::Load (this=0xffefe760, path=..., state=0xffefe684,
err=0xffefe5a8) at src/deps_log.cc:152
152 LoadStatus DepsLog::Load(const string& path, State* state, string* err) {
(gdb) info reg
d0 0xffefe598 -1055336
d1 0x1e 30
d2 0xffefe598 -1055336
d3 0xffefe760 -1054880
d4 0xffefe578 -1055368
d5 0xffefe5a8 -1055320
d6 0xffefe800 -1054720
d7 0xffefe724 -1054940
a0 0xffefe5b0 0xffefe5b0
a1 0x11 0x11
a2 0xffefe678 0xffefe678
a3 0xffefe580 0xffefe580
a4 0x43e45bc 0x43e45bc <__stack_chk_guard>
a5 0x3e38c 0x3e38c
fp 0xffefe534 0xffefe534
sp 0xffe7e4ac 0xffe7e4ac
ps 0x8 [ N ]
pc 0x1707a 0x1707a
:
(gdb) p $fp - $sp
$1 = 524424
(gdb) q
x68k# less src/deps_log.cc
:
const unsigned kMaxRecordSize = (1 << 19) - 1;
:
LoadStatus DepsLog::Load(const string& path, State* state, string* err) {
METRIC_RECORD(".ninja_deps load");
char buf[kMaxRecordSize + 1];
:
x68k# ulimit -s
512
x68k# ulimit -a
time (-t seconds ) unlimited
file (-f blocks ) unlimited
data (-d kbytes ) 16384
stack (-s kbytes ) 512
coredump (-c blocks ) unlimited
memory (-m kbytes ) 135372
locked memory (-l kbytes ) 45124
thread (-r threads ) 2048
process (-p processes ) 148
nofiles (-n descriptors) 128
vmemory (-v kbytes ) unlimited
sbsize (-b bytes ) unlimited
x68k# uname -srm
NetBSD 10.1_STABLE x68k
---
(I've file an issue to their GitHub:
https://github.com/ninja-build/ninja/issues/2567 )
On the other hand, NetBSD/atari has 2MB stack by default
so ninja-build builds without problems.
Currently various NetBSD/m68k ports have different DFLSSIZE and MAXSSIZE
in <machine/vmparam.h> (maybe due to historical reasons):
---
amiga/include/vmparam.h :#define DFLSSIZ (2*1024*1024) /* initial stack size limit */
amiga/include/vmparam.h :#define MAXSSIZ (32*1024*1024) /* max stack size */
atari/include/vmparam.h :#define DFLSSIZ (2*1024*1024) /* initial stack size limit */
atari/include/vmparam.h :#define MAXSSIZ (256*1024*1024) /* max stack size */
cesfic/include/vmparam.h:#define DFLSSIZ (512*1024) /* initial stack size limit */
cesfic/include/vmparam.h:#define MAXSSIZ MAXDSIZ /* max stack size */
hp300/include/vmparam.h :#define DFLSSIZ (2*1024*1024) /* initial stack size limit */
hp300/include/vmparam.h :#define MAXSSIZ MAXDSIZ /* max stack size */
luna68k/include/vmparam.h:#define DFLSSIZ (512*1024) /* initial stack size limit */
luna68k/include/vmparam.h:#define MAXSSIZ MAXDSIZ /* max stack size */
mac68k/include/vmparam.h:#define DFLSSIZ (2*1024*1024) /* initial stack size limit */
mac68k/include/vmparam.h:#define MAXSSIZ (32*1024*1024) /* max stack size */
mvme68k/include/vmparam.h:#define DFLSSIZ (512*1024) /* initial stack size limit */
mvme68k/include/vmparam.h:#define MAXSSIZ MAXDSIZ /* max stack size */
news68k/include/vmparam.h:#define DFLSSIZ (512*1024) /* initial stack size limit */
news68k/include/vmparam.h:#define MAXSSIZ MAXDSIZ /* max stack size */
next68k/include/vmparam.h:#define DFLSSIZ (512*1024) /* initial stack size limit */
next68k/include/vmparam.h:#define MAXSSIZ MAXDSIZ /* max stack size */
sun3/include/vmparam3.h :#define DFLSSIZ (512*1024) /* initial stack size limit */
sun3/include/vmparam3.h :#define MAXSSIZ MAXDSIZ /* max stack size */
sun3/include/vmparam3x.h:#define DFLSSIZ (2*1024*1024) /* initial stack size limit */
sun3/include/vmparam3x.h:#define MAXSSIZ (32*1024*1024) /* max stack size */
virt68k/include/vmparam.h:#define DFLSSIZ (512*1024) /* initial stack size limit */
virt68k/include/vmparam.h:#define MAXSSIZ MAXDSIZ /* max stack size */
x68k/include/vmparam.h :#define DFLSSIZ (512*1024) /* initial stack size limit */
x68k/include/vmparam.h :#define MAXSSIZ MAXDSIZ /* max stack size */
---
Is it worth to unify these DFLSSIZE (2MB) and MAXSSIZE (32MB)
for at least hp300 pmap derived m68k ports (i.e. except sun3 and sun3x)?
Thanks,
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index