pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: pkg/60875 (open-simh: miscompiled by GCC on NetBSD/amd64)
The following reply was made to PR pkg/60875; it has been noted by GNATS.
From: Rin Okuyama <rokuyama.rk%gmail.com@localhost>
To: Rhialto <rhialto%falu.nl@localhost>, gnats-bugs%netbsd.org@localhost
Cc: rhialto%netbsd.org@localhost, pkg-manager%netbsd.org@localhost, pkgsrc-bugs%netbsd.org@localhost,
gnats-admin%netbsd.org@localhost
Subject: Re: pkg/60875 (open-simh: miscompiled by GCC on NetBSD/amd64)
Date: Thu, 15 Oct 2026 20:57:17 +0900
Thank you very much for kind explanation!
On 2026/10/15 4:50, Rhialto wrote:
> I tried to reproduce this in my own environment (NetBSD 11.0 amd64 with
> gcc 12.5.0 from base) but did not succeed. (I attached a different disk
> image which I had at hand, but that should make no difference, since it
> is never read)
>
> This does not prove much, because the upstream code relies on UB
> (undefined behavior) especially in the VAX code. The most obvious one is
> that it assumes that overflow of signed integers works the same as with
> unsigned integers. They are relucant to change the code: a long time ago
> it has been validated with proprietary DEC instruction set validation
> tests, and those are no longer available.
>
> Due to the UB, there is a large number of compiler options to try to
> make it work anyway. It could be that in your compilation some of these
> are missing (due to a different environment). If this is the case,
> fixing that may fix the issue.
>
> I also tried
> https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/11.0_2026Q3/All/open-simh-4.1.0.20260413nb2.tgz
> and it did not reproduce the issue either.
I tried that package, and I also couldn't reproduce the problem.
So, this may be my local settings, but I haven't figured out what
causes the problem...
> I have compile commands like this:
>
> gcc -std=gnu99 -U__STRICT_ANSI__ -fno-strict-overflow
> -finline-functions -fpredictive-commoning -fipa-cp-clone
> -fgcse-after-reload -fno-unsafe-loop-optimizations -O2 -DNDEBUG=1
> -finline-functions -fgcse-after-reload -fpredictive-commoning
> -fipa-cp-clone -fno-unsafe-loop-optimizations -fno-strict-overflow
> -DSIM_BUILD=Unsupported=include+lib -DSIM_COMPILER="GCC Version:
> 12.5.0" -DSIM_BUILD_TOOL=simh-makefile -I . -D_GNU_SOURCE -DHAVE_PCRE_H
> -DHAVE_SEMAPHORE -DHAVE_SYS_IOCTL -DSIM_HAVE_DLOPEN=so -DHAVE_EDITLINE
> -DHAVE_UTIME -DHAVE_LIBPNG -DHAVE_ZLIB -DHAVE_GLOB -DHAVE_SHM_OPEN
> ./VAX/vax_cpu.c ./VAX/vax_cpu1.c ./VAX/vax_fpa.c ./VAX/vax_io.c
> ./VAX/vax_cis.c ./VAX/vax_octa.c ./VAX/vax_cmode.c./VAX/vax_mmu.c
> ./VAX/vax_stddev.c ./VAX/vax_sysdev.c ./VAX/vax_sys.c ./VAX/vax_syscm.c
> ./VAX/vax_syslist.c ./VAX/vax_vc.c ./VAX/vax_lk.c ./VAX/vax_vs.c
> ./VAX/vax_2681.c ./PDP11/pdp11_rl.c ./PDP11/pdp11_rq.c
> ./PDP11/pdp11_ts.c ./PDP11/pdp11_dz.c ./PDP11/pdp11_lp.c
> ./PDP11/pdp11_tq.c ./PDP11/pdp11_xq.c ./PDP11/pdp11_vh.c
> ./PDP11/pdp11_cr.c ./PDP11/pdp11_td.c ./PDP11/pdp11_io_lib.c
> ./PDP11/pdp11_dup.c ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c
> ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c
> ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -DVM_VAX
> -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ./VAX -I ./PDP11
> -DHAVE_PCAP_NETWORK -I/usr/include/pcap/ -DBPF_CONST_STRING
> -DUSE_NETWORK -DHAVE_VDE_NETWORK -DHAVE_TAP_NETWORK -DHAVE_BSDTUNTAP
> -Islirp -Islirp_glue -Islirp_glue/qemu -DHAVE_SLIRP_NETWORK
> -DUSE_SIMH_SLIRP_DEBUG slirp/*.c slirp_glue/*.c -DHAVE_LIBSDL
> -DUSE_SIM_VIDEO `sdl2-config --cflags` `sdl2-config --libs`
> -DUSE_READER_THREAD -DSIM_ASYNCH_IO -o BIN/vax -Wl,-zrelro
> -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib
> -L/usr/lib -Wl,-R/usr/lib -lm -lrt -lpthread -lpcre -L/usr/pkg/lib/
> -ledit -ltermcap -lpng16 -lz -lpcap -lvdeplug -Wl,-R,/usr/pkg/lib/
> -L/usr/pkg/lib/
>
> (You can ignore references to VDE or vdeplug; this refers to wip/vde2)
Compile command completely coincides except for VDE arguments.
> Aside: the config line "load -r ka655x.bin" should not be needed, since
> the same file is built-in. Simh will say "%SIM-INFO: Loading boot code
> from internal ka655x.bin"
I tried both internal and external ka655x.bin, but result does
not changed.
> It may be that adding -Wstrict-overflow=5 shows some useful diagnostic.
Ah, yes, disabling -fno-strict-overflow and adding -Wstrict-overflow=5
result in a lot of compiler warnings...
> If this does not show any missing options, I have no objection if you
> commit the changes you propose.
As I couldn't reproduce the problem with public build of 2026Q3 for
netbsd-11, I hesitate to commit my suggested changes...
I will change this PR to analyzed until when anyone who can reproduce
my problem.
> -Olaf.
Thanks,
rin
Home |
Main Index |
Thread Index |
Old Index