From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Subject: Re: [PATCH v2 5/5] configure: Add -Wno-psabi
Date: Fri, 12 Jun 2020 07:42:56 +0100 [thread overview]
Message-ID: <874krg4wen.fsf@linaro.org> (raw)
In-Reply-To: <f5f12da1-e2fd-0bf5-1f10-6994cf7f0184@linaro.org>
Richard Henderson <richard.henderson@linaro.org> writes:
> On 6/11/20 10:17 AM, Alex Bennée wrote:
>>
>> Richard Henderson <richard.henderson@linaro.org> writes:
>>
>>> On 6/11/20 9:44 AM, Alex Bennée wrote:
>>>>
>>>> Richard Henderson <richard.henderson@linaro.org> writes:
>>>>
>>>>> On aarch64, gcc 9.3 is generating
>>>>>
>>>>> qemu/exec.c: In function ‘address_space_translate_iommu’:
>>>>> qemu/exec.c:431:28: note: parameter passing for argument of type \
>>>>> ‘MemTxAttrs’ {aka ‘struct MemTxAttrs’} changed in GCC 9.1
>>>>>
>>>>> and many other reptitions. This structure, and the functions
>>>>> amongst which it is passed, are not part of a QEMU public API.
>>>>> Therefore we do not care how the compiler passes the argument,
>>>>> so long as the compiler is self-consistent.
>>>>>
>>>>> Cc: Alex Bennée <alex.bennee@linaro.org>
>>>>> Cc: Peter Maydell <peter.maydell@linaro.org>
>>>>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>>>>> ---
>>>>> TODO: The only portion of QEMU which does have a public api,
>>>>> and so must have a stable abi, is "qemu/plugin.h". We could
>>>>> test this by forcing -Wpsabi or -Werror=psabi in tests/plugin.
>>>>> I can't seem to make that work -- Alex?
>>>>
>>>> modified plugins/Makefile.objs
>>>> @@ -5,6 +5,7 @@
>>>> obj-y += loader.o
>>>> obj-y += core.o
>>>> obj-y += api.o
>>>> +api.o-cflags := -Wpsabi
>>>>
>>>> # Abuse -libs suffix to only link with --dynamic-list/-exported_symbols_list
>>>> # when the final binary includes the plugin object.
>>>>
>>>> Seems to work for me.
>>>
>>> Wrong directory -- that's the part that goes into qemu, which also uses other
>>> qemu internal headers. As opposed to the tests/, which only use the one
>>> "qemu/plugins.h" header (plus libc).
>>
>> It's a sub-make so I just did:
>>
>> modified tests/plugin/Makefile
>> @@ -18,7 +18,7 @@ NAMES += hwprofile
>>
>> SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
>>
>> -QEMU_CFLAGS += -fPIC
>> +QEMU_CFLAGS += -fPIC -Wpsabi
>> QEMU_CFLAGS += -I$(SRC_PATH)/include/qemu
>
> Did you look at the actual flags passed to the actual cc via V=1?
> Neither of these flags is arriving.
I did:
cc -iquote /home/alex/lsrc/qemu.git/builds/all.plugin/. -iquote . -iquote /home/alex/lsrc/qemu.git/tcg/i386 -isystem /home/alex/lsrc/qemu.git/linux-headers -isystem /home/alex/lsrc/qemu.git/builds/all.plugin/linux-headers -iquote . -iquote /home/alex/lsrc/qemu.git -iquote /home/alex/lsrc/qemu.git/accel/tcg -iquote /home/alex/lsrc/qemu.git/include -iquote /home/alex/lsrc/qemu.git/disas/libvixl -I/usr/include/pixman-1 -I/home/alex/lsrc/qemu.git/dtc/libfdt -Werror -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Og -ggdb3 -fvar-tracking-assignments -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/include/p11-kit-1 -DLEGACY_RDMA_REG_MR -DSTRUCT_IOVEC_DEFINED -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/spice-server -I/usr/include/spice-1 -I/usr/include/capstone -fPIC -Wpsabi -I/home/alex/lsrc/qemu.git/include/qemu -MMD -MP -MT hwprofile.o -MF ./hwprofile.d -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g -c -o hwprofile.o /home/alex/lsrc/qemu.git/tests/plugin/hwprofile.c
It's nested between the -I's with -fPIC.
>
> I sent you mail about this yesterday...
>
>
> r~
--
Alex Bennée
prev parent reply other threads:[~2020-06-12 6:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-10 20:39 [PATCH v2 0/5] Vs clang-10 and gcc-9 warnings Richard Henderson
2020-06-10 20:39 ` [PATCH v2 1/5] fpu/softfloat: Silence 'bitwise negation of boolean expression' warning Richard Henderson
2020-06-10 20:39 ` [PATCH v2 2/5] migration: fix xbzrle encoding rate calculation Richard Henderson
2020-06-10 20:39 ` [PATCH v2 3/5] configure: Clean up warning flag lists Richard Henderson
2020-06-11 14:25 ` Eric Blake
2020-06-17 1:29 ` Richard Henderson
2020-06-10 20:39 ` [PATCH v2 4/5] configure: Disable -Wtautological-type-limit-compare Richard Henderson
2020-06-10 20:39 ` [PATCH v2 5/5] configure: Add -Wno-psabi Richard Henderson
2020-06-11 16:44 ` Alex Bennée
2020-06-11 16:57 ` Richard Henderson
2020-06-11 17:17 ` Alex Bennée
2020-06-11 17:49 ` Richard Henderson
2020-06-12 6:42 ` Alex Bennée [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874krg4wen.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).