[PATCH v1 10/13] tests/plugins: add -Wno-unknown-warning-option to handle -Wpsabi

Alex Bennée posted 13 patches 5 years, 7 months ago
[PATCH v1 10/13] tests/plugins: add -Wno-unknown-warning-option to handle -Wpsabi
Posted by Alex Bennée 5 years, 7 months ago
Not all compilers support the -Wpsabi (clang-9 in my case).

Fixes: bac8d222a
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/plugin/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/plugin/Makefile b/tests/plugin/Makefile
index 0cb8e35ae407..dcfbd99b15b8 100644
--- a/tests/plugin/Makefile
+++ b/tests/plugin/Makefile
@@ -18,7 +18,7 @@ NAMES += hwprofile
 
 SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
 
-QEMU_CFLAGS += -fPIC -Wpsabi
+QEMU_CFLAGS += -fPIC -Wno-unknown-warning-option -Wpsabi
 QEMU_CFLAGS += -I$(SRC_PATH)/include/qemu
 
 all: $(SONAMES)
-- 
2.20.1


Re: [PATCH v1 10/13] tests/plugins: add -Wno-unknown-warning-option to handle -Wpsabi
Posted by Robert Foley 5 years, 7 months ago
Reviewed-by: Robert Foley <robert.foley@linaro.org>

On Thu, 9 Jul 2020 at 10:13, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> Not all compilers support the -Wpsabi (clang-9 in my case).
>
> Fixes: bac8d222a
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  tests/plugin/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/plugin/Makefile b/tests/plugin/Makefile
> index 0cb8e35ae407..dcfbd99b15b8 100644
> --- a/tests/plugin/Makefile
> +++ b/tests/plugin/Makefile
> @@ -18,7 +18,7 @@ NAMES += hwprofile
>
>  SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
>
> -QEMU_CFLAGS += -fPIC -Wpsabi
> +QEMU_CFLAGS += -fPIC -Wno-unknown-warning-option -Wpsabi
>  QEMU_CFLAGS += -I$(SRC_PATH)/include/qemu
>
>  all: $(SONAMES)
> --
> 2.20.1
>

Re: [PATCH v1 10/13] tests/plugins: add -Wno-unknown-warning-option to handle -Wpsabi
Posted by Richard Henderson 5 years, 7 months ago
On 7/9/20 7:13 AM, Alex Bennée wrote:
> Not all compilers support the -Wpsabi (clang-9 in my case).
> 
> Fixes: bac8d222a
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  tests/plugin/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/plugin/Makefile b/tests/plugin/Makefile
> index 0cb8e35ae407..dcfbd99b15b8 100644
> --- a/tests/plugin/Makefile
> +++ b/tests/plugin/Makefile
> @@ -18,7 +18,7 @@ NAMES += hwprofile
>  
>  SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
>  
> -QEMU_CFLAGS += -fPIC -Wpsabi
> +QEMU_CFLAGS += -fPIC -Wno-unknown-warning-option -Wpsabi

Surely -Wno-unknown-warning-option is in the same boat?  E.g. I don't see any
version of gcc that supports it.

Originally, I tried to grab -Wno-psabi out of the existing QEMU_CFLAGS and
transforming it, but I couldn't make that work.


r~

>  QEMU_CFLAGS += -I$(SRC_PATH)/include/qemu
>  
>  all: $(SONAMES)
> 


Re: [PATCH v1 10/13] tests/plugins: add -Wno-unknown-warning-option to handle -Wpsabi
Posted by Alex Bennée 5 years, 7 months ago
Richard Henderson <richard.henderson@linaro.org> writes:

> On 7/9/20 7:13 AM, Alex Bennée wrote:
>> Not all compilers support the -Wpsabi (clang-9 in my case).
>> 
>> Fixes: bac8d222a
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>>  tests/plugin/Makefile | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/tests/plugin/Makefile b/tests/plugin/Makefile
>> index 0cb8e35ae407..dcfbd99b15b8 100644
>> --- a/tests/plugin/Makefile
>> +++ b/tests/plugin/Makefile
>> @@ -18,7 +18,7 @@ NAMES += hwprofile
>>  
>>  SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
>>  
>> -QEMU_CFLAGS += -fPIC -Wpsabi
>> +QEMU_CFLAGS += -fPIC -Wno-unknown-warning-option -Wpsabi
>
> Surely -Wno-unknown-warning-option is in the same boat?  E.g. I don't see any
> version of gcc that supports it.

GCC doesn't seem to complain about it though.

> Originally, I tried to grab -Wno-psabi out of the existing QEMU_CFLAGS and
> transforming it, but I couldn't make that work.

I though the plugin Makefile was meant to be standalone to demonstrate
how you build stuff out of tree but I guess we include some of the main
make machinery in it. I'll see what I can do.

>
>
> r~
>
>>  QEMU_CFLAGS += -I$(SRC_PATH)/include/qemu
>>  
>>  all: $(SONAMES)
>> 


-- 
Alex Bennée

Re: [PATCH v1 10/13] tests/plugins: add -Wno-unknown-warning-option to handle -Wpsabi
Posted by Thomas Huth 5 years, 7 months ago
On 13/07/2020 18.39, Alex Bennée wrote:
> 
> Richard Henderson <richard.henderson@linaro.org> writes:
> 
>> On 7/9/20 7:13 AM, Alex Bennée wrote:
>>> Not all compilers support the -Wpsabi (clang-9 in my case).
>>>
>>> Fixes: bac8d222a
>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>> ---
>>>  tests/plugin/Makefile | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/tests/plugin/Makefile b/tests/plugin/Makefile
>>> index 0cb8e35ae407..dcfbd99b15b8 100644
>>> --- a/tests/plugin/Makefile
>>> +++ b/tests/plugin/Makefile
>>> @@ -18,7 +18,7 @@ NAMES += hwprofile
>>>  
>>>  SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
>>>  
>>> -QEMU_CFLAGS += -fPIC -Wpsabi
>>> +QEMU_CFLAGS += -fPIC -Wno-unknown-warning-option -Wpsabi
>>
>> Surely -Wno-unknown-warning-option is in the same boat?  E.g. I don't see any
>> version of gcc that supports it.
> 
> GCC doesn't seem to complain about it though.

Both, GCC and Clang do not complain about unknown -Wno-somthing options
as long as there are no other warnings. They only complain for options
that do not have a "no-" after the "-W".

 Thomas


Re: [PATCH v1 10/13] tests/plugins: add -Wno-unknown-warning-option to handle -Wpsabi
Posted by Alex Bennée 5 years, 7 months ago
Thomas Huth <thuth@redhat.com> writes:

> On 13/07/2020 18.39, Alex Bennée wrote:
>> 
>> Richard Henderson <richard.henderson@linaro.org> writes:
>> 
>>> On 7/9/20 7:13 AM, Alex Bennée wrote:
>>>> Not all compilers support the -Wpsabi (clang-9 in my case).
>>>>
>>>> Fixes: bac8d222a
>>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>>> ---
>>>>  tests/plugin/Makefile | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/tests/plugin/Makefile b/tests/plugin/Makefile
>>>> index 0cb8e35ae407..dcfbd99b15b8 100644
>>>> --- a/tests/plugin/Makefile
>>>> +++ b/tests/plugin/Makefile
>>>> @@ -18,7 +18,7 @@ NAMES += hwprofile
>>>>  
>>>>  SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
>>>>  
>>>> -QEMU_CFLAGS += -fPIC -Wpsabi
>>>> +QEMU_CFLAGS += -fPIC -Wno-unknown-warning-option -Wpsabi
>>>
>>> Surely -Wno-unknown-warning-option is in the same boat?  E.g. I don't see any
>>> version of gcc that supports it.
>> 
>> GCC doesn't seem to complain about it though.
>
> Both, GCC and Clang do not complain about unknown -Wno-somthing options
> as long as there are no other warnings. They only complain for options
> that do not have a "no-" after the "-W".

I've done a little minor surgery on the Makefile to both limit the
pollution of the plugin build from QEMU flags and to only enable the
check if we detect the compiler supports it:

--8<---------------cut here---------------start------------->8---
tests/plugins: don't unconditionally add -Wpsabi

Not all compilers support the -Wpsabi (clang-9 in my case). To handle
this gracefully we pare back the shared build machinery so the
Makefile is relatively "standalone". We still take advantage of
config-host.mak as configure has done a bunch of probing for us but
that is it.

Fixes: bac8d222a
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - separate from main build system and check probe

2 files changed, 21 insertions(+), 4 deletions(-)
configure             |  3 +++
tests/plugin/Makefile | 22 ++++++++++++++++++----

modified   configure
@@ -7115,6 +7115,9 @@ echo "GIT_UPDATE=$git_update" >> $config_host_mak
 
 echo "ARCH=$ARCH" >> $config_host_mak
 
+echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak
+echo "GLIB_LDFLAGS=$glib_ldflags" >> $config_host_mak
+
 if test "$default_devices" = "yes" ; then
   echo "CONFIG_MINIKCONF_MODE=--defconfig" >> $config_host_mak
 else
modified   tests/plugin/Makefile
@@ -1,9 +1,16 @@
+# -*- Mode: makefile -*-
+#
+# This Makefile example is fairly independent from the main makefile
+# so users can take and adapt it for their build. We only really
+# include config-host.mak so we don't have to repeat probing for
+# cflags that the main configure has already done for us.
+#
+
 BUILD_DIR := $(CURDIR)/../..
 
 include $(BUILD_DIR)/config-host.mak
-include $(SRC_PATH)/rules.mak
 
-$(call set-vpath, $(SRC_PATH)/tests/plugin)
+VPATH += $(SRC_PATH)/tests/plugin
 
 NAMES :=
 NAMES += bb
@@ -18,11 +25,18 @@ NAMES += hwprofile
 
 SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
 
-QEMU_CFLAGS += -fPIC -Wpsabi
-QEMU_CFLAGS += -I$(SRC_PATH)/include/qemu
+# The main QEMU uses Glib extensively so it's perfectly fine to use it
+# in plugins (which many example do).
+CFLAGS = $(GLIB_CFLAGS)
+CFLAGS += -fPIC
+CFLAGS += $(if $(findstring no-psabi,$(QEMU_CFLAGS)),-Wpsabi)
+CFLAGS += -I$(SRC_PATH)/include/qemu
 
 all: $(SONAMES)
 
+%.o: %.c
+	$(CC) $(CFLAGS) -c -o $@ $<
+
 lib%.so: %.o
 	$(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDLIBS)
 
--8<---------------cut here---------------end--------------->8---


-- 
Alex Bennée