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.

> 
>> 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"

#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <boost/lexical_cast.hpp>

// turn the warnings back on
#pragma GCC diagnostic pop

> 
> ?
> 
> ... sounds quite ugly to me, too.
> 
>> but without changing the compilation mode of the
>> entire project
> 
> 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.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to