gcc-14 will complain loudly both for calling a function without an in-scope
prototype or when the in scope prototype differs from the known signature.
"main" happens to be one of the functions the compiler knows about. So not
only do we need to prototype it, we need to make sure the prototype matches
what GCC thinks it should be.
This fixes the bfin libgloss port to do the right thing for bfin-elf.
No functional changes here, just fix warnings the compiler noticed.
bfin/syscalls.c:156:13: warning: conflicting types for built-in function ‘memset’
bfin/syscalls.c: In function ‘_unlink’:
bfin/syscalls.c:193:3: warning: passing argument 2 of ‘do_syscall’ discards qualifiers from pointer target type
bfin/syscalls.c:33:1: note: expected ‘void *’ but argument is of type ‘const char *’
bfin/syscalls.c: In function ‘_exit’:
bfin/syscalls.c:104:1: warning: ‘noreturn’ function does return
The current syscalls.c implements getpid/fstat/stat/link/unlink as mere
stubs. So replace them with useful calls to do_syscall now that our sim
can support them.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
The sim lseek() syscall in the Blackfin libgloss code did not pass down
the "whence" argument making lseek() in general kind of useless.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
The sim passes back results via two values, and the error code via a 3rd.
make sure libgloss extracts all three so that things like errno work as
expected. This fixes many gdb tests which look for this sort of thing.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>