On 2024-08-11 12:31, Brian Inglis wrote:
On 2024-08-07 08:06, Corinna Vinschen wrote:
On Aug 6 19:58, Jon Turney wrote:
On 05/08/2024 11:22, Corinna Vinschen wrote:
On Aug 4 22:48, Jon Turney wrote:
Fix gcc 12 warnings about narrowing conversions of socket ioctl constants
when used as case labels, e.g:
[...]
The only caller, fhandler_socket::ioctl, passes an unsigned int
value to get_ifconf. Given how the value is defined, it would be
more straightforward to convert get_ifconf to
get_ifconf (struct ifconf *ifc, unsigned int what);
wouldn't it?
Yeah, I'm not sure why I didn't do that. I think I got confused about where
this is used from.
LGTM. I will additionally push a patch dropping the useless casts.
Hi folks,
Trying to rebuild got a couple of issues with gcc12 and likely recent updates to
main, as my previous rebuild for /proc/cpuinfo with gcc11 was fine:
- picky g++
CXX net.o
In file included from
/usr/src/newlib-cygwin/winsup/cygwin/include/cygwin/socket.h:47,
from
/usr/src/newlib-cygwin/winsup/cygwin/include/cygwin/if.h:17,
from
/usr/src/newlib-cygwin/winsup/cygwin/include/ifaddrs.h:42,
from /usr/src/newlib-cygwin/winsup/cygwin/net.cc:26:
/usr/src/newlib-cygwin/winsup/cygwin/net.cc: In function ‘int
get_ifconf(ifconf*, int)’:
/usr/src/newlib-cygwin/winsup/cygwin/net.cc:1940:18: error: narrowing conversion
of ‘2152756069’ from ‘long unsigned int’ to ‘int’ [-Wnarrowing]
1940 | case SIOCGIFFLAGS:
| ^~~~~~~~~~~~
... and so on
50cf10dfa485 Cygwin: asm/socket.h: drop outdated casts
so change net.cc get_ifconf (struct ifconf *ifc, int what) to unsigned long, and
where it is also declared in fhandler/socket.cc?
- __utoa (and __itoa) declared in stdlib.h inside #ifndef __CYGWIN__
CC libc/stdlib/libc_a-itoa.o
/usr/src/newlib-cygwin/newlib/libc/stdlib/itoa.c: In function ‘__itoa’:
/usr/src/newlib-cygwin/newlib/libc/stdlib/itoa.c:57:3: warning: implicit
declaration of function ‘__utoa’; did you mean ‘__itoa’?
[-Wimplicit-function-declaration]
57 | __utoa (uvalue, &str[i], base);
| ^~~~~~
| __itoa
31f7cd1e4332 Hide itoa, utoa, __itoa and __utoa in stdlib.h on Cygwin only
$ grep -C2 utoa ../../newlib/libc/include/stdlib.h
#ifndef __CYGWIN__
char * __itoa (int, char *, int);
char * __utoa (unsigned, char *, int);
# if __MISC_VISIBLE
char * itoa (int, char *, int);
char * utoa (unsigned, char *, int);
# endif
#endif
so should this be __INSIDE_CYGWIN__ instead or something else?
Sorry folks,
Did not notice patches 5-6/6 have not yet been applied.
Apply both okay and rebuild proceeding.
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry