Re: -Werror enabled by default on GNU/Hurd
Andrew Burgess via Gdb <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
* Andrea Monaco via Gdb <[email protected]> [2021-12-29 19:06:04 +0100]: > > > with this patch I am now able to build GDB on GNU/Hurd (i686). This > > might help you out. > > Thanks, that solves a warning. But the build still fails with this > output: > > > CXX msg_U.o > cc1: warning: command-line option '-Wno-mismatched-tags' is valid for C++/ObjC++ but not for C > cc1: warning: command-line option '-Wsuggest-override' is valid for C++/ObjC++ but not for C > cc1: warning: command-line option '-Wdeprecated-copy' is valid for C++/ObjC++ but not for C > cc1: warning: command-line option '-Wdeprecated-copy-dtor' is valid for C++/ObjC++ but not for C > cc1: warning: command-line option '-Wredundant-move' is valid for C++/ObjC++ but not for C > cc1: warning: command-line option '-Wstrict-null-sentinel' is valid for C++/ObjC++ but not for C > msg_U.c: In function 'msg_set_init_ports': > msg_U.c:1044:22: error: conversion from 'unsigned int' to 'short unsigned int' changes value from '4294967295' to '65535' [-Werror=overflow] > 1044 | /* msgtl_name = */ MACH_MSG_TYPE_POLYMORPHIC, > | ^~~~~~~~~~~~~~~~~~~~~~~~~ > msg_U.c: In function 'msg_set_dtable': > msg_U.c:1838:22: error: conversion from 'unsigned int' to 'short unsigned int' changes value from '4294967295' to '65535' [-Werror=overflow] > 1838 | /* msgtl_name = */ MACH_MSG_TYPE_POLYMORPHIC, > | ^~~~~~~~~~~~~~~~~~~~~~~~~ > cc1: all warnings being treated as errors > Makefile:1684: recipe for target 'msg_U.o' failed > make: *** [msg_U.o] Error 1 I don't claim to know anything about GNU/Hurd, this was the first time I ever installed it. The file msg_U.c is generated using the mig tool, and the .defs files binutils-gdb/gdb/msg.defs. The .defs file just includes /usr/include/hurd/msg.h. And the makefile fragment that builds the msg_U.c is found in binutils-gdb/gdb/config/i386/i386gnu.mn. I notice in the above, that my version of those two lines is slightly different, like this: /* msgtl_name = */ (unsigned short) MACH_MSG_TYPE_POLYMORPHIC, Which would solve the error you're seeing. Finally, here's the version number information for the mig tool I'm using: $ mig --version i686-gnu-mig (GNU MIG) 1.8+git20200618 Remembering that you probably understand all this far better than me, I wonder if you need to update your version of mig? As a last resort if you patch your generated file, adding the cast that I see, is this enough to finish building GDB? Clearly this isn't a long term solution, but it feels like the above warning is a tooling issue, rather than a problem with the GDB source. Thanks, Andrew