Re: [committed 0/2] CRIS: Fix compilation warnings that recent gcc treats as errors

Torbjorn SVENSSON <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
Hello Hans-Peter,

I finally had some time to go back to this topic.

On 2023-12-15 05:24, Hans-Peter Nilsson wrote:
>> Date: Wed, 6 Dec 2023 20:52:48 +0100
>> From: Torbjorn SVENSSON <[email protected]>
>> What problems are there with the _getentropy stubs that I've submitted?
> 
> I hope to get into details later, as indicated by the "film
> at 11".  The problem is fairly visible with a standard
> test-run for cris-elf (with simulator and baseboard
> cris-sim): all libstdc++ tests fail with a linker warning,
> as its configure tests detect a presence of _getentropy but
> its reference trigs the stub warning (the .gnu.warning
> thing).  I *think* it's also visible for a build with
> arm-eabi+arm-sim which made me wonder how you configured and
> tested (you may have stated, I haven't looked).  Adding a
> patch to "prune" the stub-warning in libstdc++ prune.exp
> only exposes runtime errors when _getentropy is actually
> called.  Those errors are not present when _getentropy is
> not detected (and not used).


When I run the tests, I supply all the syscalls functions in my fixture 
to avoid the stubs warnings. This is nothing new to the _getentropy 
function though as the same problem is visible with for example _close.

If I try to link the following minimal C application with the 
arm-none-eabi target, I get the below warnings.

$ cat foo.c
int main() {
     return 0;
}


$ .../bin/arm-none-eabi-g++ -mcpu=cortex-m4 -mfloat-abi=soft -o foo.elf 
foo.c --specs=nosys.specs
.../bin/../lib/gcc/arm-none-eabi/14.0.0/../../../../arm-none-eabi/bin/ld: 
.../bin/../lib/gcc/arm-none-eabi/14.0.0/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(libc_a-closer.o): 
in function `_close_r':
(.text._close_r+0xc): warning: _close is not implemented and will always 
fail
.../bin/../lib/gcc/arm-none-eabi/14.0.0/../../../../arm-none-eabi/bin/ld: 
.../bin/../lib/gcc/arm-none-eabi/14.0.0/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(libc_a-lseekr.o): 
in function `_lseek_r':
(.text._lseek_r+0x10): warning: _lseek is not implemented and will 
always fail
.../bin/../lib/gcc/arm-none-eabi/14.0.0/../../../../arm-none-eabi/bin/ld: 
.../bin/../lib/gcc/arm-none-eabi/14.0.0/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(libc_a-readr.o): 
in function `_read_r':
(.text._read_r+0x10): warning: _read is not implemented and will always fail
.../bin/../lib/gcc/arm-none-eabi/14.0.0/../../../../arm-none-eabi/bin/ld: 
.../bin/../lib/gcc/arm-none-eabi/14.0.0/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(libc_a-writer.o): 
in function `_write_r':
(.text._write_r+0x10): warning: _write is not implemented and will 
always fail


Do you mean that you do not get these stub warnings for the cris-elf target?
If you do get them, in what way is _getentropy different from for 
example _close?

(the above is produced using newlib 7a45daa, GCC d0603dfe9 and binutils 
80d2ef0c4)

Kind regards,
Torbjörn
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.