On 2019-01-14 16:02, Eric Blake wrote: > On 1/14/19 8:53 AM, Thomas Huth wrote: >> On 2019-01-14 15:50, Eric Blake wrote: >>> On 1/14/19 8:31 AM, Daniel P. Berrangé wrote: >>> >>>>> >>>>> Can we suppress the warnings with #pragma instead ? >>>>> That would avoid compiling the .o file with different >>>>> C semantics. >>>> >>>> IIUC this is a built-in warning you can't disable, except by changing >>>> the compilation mode to have gnu89 inline semantics :-( >>> >>> Could we instead fix the warning by one of: >>> >>> Using pragma to declare the header as a system header (used to silence >>> warnings from misbehaving external headers), >> >> How do you do that? > > Using -isystem instead of -I - but that means rewriting the output of > pkg-config.
That does not work for me on RHEL7: The output of "pkg-config --cflags libiscsi" is empty since the headers are in a standard location. And even if I add "-isystem /usr/include" or "-isystem /usr/include/iscsi" manually, the warning does not go away. >>> and/or adding #defines around the inclusion of the header to neutralize >>> the poor warnings, >> >> You mean something like: >> >> #define inline /* nothing */ > > or > https://stackoverflow.com/questions/1867065/how-to-suppress-gcc-warnings-from-library-headers > mentions: > > // save diagnostic state > #pragma GCC diagnostic push > > // turn off the specific warning. Can also use "-Wall" > #pragma GCC diagnostic ignored "-Wunused-but-set-variable" That does not work in this case here, too, since there is no dedicated option to switch this warning on or off. >> The patch is only changing libiscsi_cflags, so it's not affecting the >> entire project, but just the files that use libiscsi. > > Even so, limiting the damage to just the wrapper file that includes the > problematic header rather than changing the command line for the entire > compilation of those files that use libiscsi is even more precise. Then our only option is "#define inline /* nothing */", as far as I can see... Thomas
signature.asc
Description: OpenPGP digital signature