On Wed, Mar 11, 2020 at 07:23:41PM -0400, Eduardo Habkost wrote: > glibc and Linux-provided headers are known to generate macro > redefinition warnings when used together. For example: > <linux/mman.h> and <sys/mman.h> duplicate some macro definitions. > > We normally never see those warnings because GCC suppresses > warnings generated by system headers. We carry our own copy of > Linux header files, though, and this makes those warnings not be > suppressed when glibc headers are included before Linux headers > (e.g. if <sys/mman.h> is included before <linux/mman.h>). > > Use -isystem instead of -I for linux-headers. This makes the > compiler treat our linux-headers directory the same way it treats > system-provided Linux headers, and suppress warnings generated by > them. > > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com> > --- > Changes v1 -> v2: > * Use -isystem for $PWD/linux-headers too > Reported-by: "Michael S. Tsirkin" <m...@redhat.com> > --- > Makefile.target | 2 +- > configure | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/Makefile.target b/Makefile.target > index 2d43dc586a..934a9f7431 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -12,7 +12,7 @@ endif > > $(call set-vpath, $(SRC_PATH):$(BUILD_DIR)) > ifdef CONFIG_LINUX > -QEMU_CFLAGS += -I../linux-headers > +QEMU_CFLAGS += -isystem ../linux-headers > endif > QEMU_CFLAGS += -iquote .. -iquote $(SRC_PATH)/target/$(TARGET_BASE_ARCH) > -DNEED_CPU_H > > diff --git a/configure b/configure > index cbf864bff1..bf5bf70600 100755 > --- a/configure > +++ b/configure > @@ -899,7 +899,7 @@ Linux) > linux="yes" > linux_user="yes" > kvm="yes" > - QEMU_INCLUDES="-I\$(SRC_PATH)/linux-headers -I$PWD/linux-headers > $QEMU_INCLUDES" > + QEMU_INCLUDES="-isystem \$(SRC_PATH)/linux-headers -isystem > $PWD/linux-headers $QEMU_INCLUDES" > supported_os="yes" > libudev="yes" > ;; > -- > 2.24.1