> Date: Mon, 06 Jan 2025 19:35:05 +1100
> from: matthew green <m...@eterna23.net>
> 
> my only real wish is that we switch userland at the same time.
> 
> if -std=c11 suffices for everything we need, then that would be
> fine, though i wouldn't object to -std=gnu11 since GCC itself
> always defaults to some gnu variant.

I tried switching userland to -std=c11.  I ran into several issues:

/home/riastradh/netbsd/current/src/lib/libc/ssp/stpncpy_chk.c:46:1: error: no 
previous prototype for '__stpncpy_chk' [-Werror=missing-prototypes]
   46 | __stpncpy_chk(char * __restrict dst, const char * __restrict src, 
size_t len, 
      | ^~~~~~~~~~~~~
...
/home/riastradh/netbsd/current/obj.riscv/tooldir/bin/../lib/gcc/riscv64--netbsd/12.4.0/../../../../riscv64--netbsd/bin/ld:
 /home/riastradh/netbsd/current/src/../obj.riscv/destdir.riscv/lib/libc.so: 
warning: Warning: reference to the libc supplied alloca(3); this most likely 
will not work. Please use the compiler provided version of alloca(3), by 
supplying the appropriate compiler flags (e.g. -std=gnu99).
...
/home/riastradh/netbsd/current/obj.riscv/tooldir/bin/../lib/gcc/riscv64--netbsd/12.4.0/../../../../riscv64--netbsd/bin/ld:
 libamu_pic.a(ualarm.pico): in function `__sigaddset14':
/home/riastradh/netbsd/current/obj.riscv/destdir.riscv/usr/include/signal.h:118:
 multiple definition of `__sigaddset14'; 
libamu_pic.a(xdr_func.pico):/home/riastradh/netbsd/current/obj.riscv/destdir.riscv/usr/include/signal.h:118:
 first defined here

I made progress after the first one by adding

char *__stpncpy_chk(char *, const char *, size_t, size_t);

to include/ssp/string.h but I'm baffled how this could possibly work
because the definition in lib/libc/ssp/stpncpy_chk.c has __restrict
qualifiers, which should surely be rejected given this prototype, no?

Getting userland to build with -std=c11 instead of -std=gnu11 might be
a bit more trouble than I want to deal with right now.

Reply via email to