Re: [BUG] newlib-4.4.0 fails to build for m68k-elf
Joel Sherrill <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <CAF9ehCXsRX29f7UbYmw51quCLgO9Ht_MTcjukjv=NrnObZeZDQ@mail.gmail.com> |
On Sun, Jan 14, 2024 at 9:47 AM Mikael Pettersson <[email protected]> wrote: > Building newlib-4.4.0 for m68k-unknown-elf fails with > > m68k-unknown-elf-gcc -B/tmp/objdir/m68k-unknown-elf/newlib/ -isystem > /tmp/objdir/m68k-unknown-elf/newlib/targ-include -isystem > /tmp/newlib-4.4.0.20231231/newlib/libc/include > -B/tmp/objdir/m68k-unknown-elf/libgloss/m68k > -L/tmp/objdir/m68k-unknown-elf/libgloss/libnosys > -L/tmp/newlib-4.4.0.20231231/libgloss/m68k -g -O2 -O2 -I. > -I/tmp/newlib-4.4.0.20231231/libgloss/m68k/.. -I./.. -idirafter > /tmp/newlib-4.4.0.20231231/libgloss/m68k/../../include -c -g -O2 > /tmp/newlib-4.4.0.20231231/libgloss/m68k/../read.c > /tmp/newlib-4.4.0.20231231/libgloss/m68k/../read.c:24:1: error: > conflicting types for 'read'; have 'int(int, void *, size_t)' {aka > 'int(int, void *, long unsigned int)'} > 24 | read (int fd, > | ^~~~ > In file included from > /tmp/newlib-4.4.0.20231231/newlib/libc/include/unistd.h:4, > from > /tmp/newlib-4.4.0.20231231/libgloss/m68k/../glue.h:16, > from > /tmp/newlib-4.4.0.20231231/libgloss/m68k/../read.c:15: > /tmp/newlib-4.4.0.20231231/newlib/libc/include/sys/unistd.h:179:25: note: > previous declaration of 'read' with type '_ssize_t(int, void *, size_t)' > {aka 'long int(int, void *, long unsigned int)'} > 179 | _READ_WRITE_RETURN_TYPE read (int __fd, void *__buf, size_t > __nbyte); > | ^~~~ > Per https://pubs.opengroup.org/onlinepubs/009604599/functions/read.html, read() returns ssize_t. It looks like READ_WRITE_RETURN_TYPE should be ssize_t. --joel > make[4]: *** [Makefile:528: read.o] Error 1 > make[4]: Leaving directory '/tmp/objdir/m68k-unknown-elf/libgloss/m68k' > make[3]: *** [Makefile:4954: all-recursive] Error 1 > make[3]: Leaving directory '/tmp/objdir/m68k-unknown-elf/libgloss' > make[2]: *** [Makefile:1225: all] Error 2 > make[2]: Leaving directory '/tmp/objdir/m68k-unknown-elf/libgloss' > make[1]: *** [Makefile:9528: all-target-libgloss] Error 2 > make[1]: Leaving directory '/tmp/objdir' > make: *** [Makefile:879: all] Error 2 > > Toolchain built from binutils-2.41 and gcc-13.2.0. > > newlib-4.3.0 built fine, the issue started with: > > # first new commit: [3d10b04f1ed9bf53c282081c88165951e8c32cec] Fix various > c99/gcc-14 issues in generic libgloss code >