* [Qemu-devel] [PATCH 0/1] pc-bios/s390-ccw.img build fix for 2.7
@ 2016-08-15 10:28 Christian Borntraeger
2016-08-15 10:28 ` [Qemu-devel] [PATCH 1/1] pc-bios/s390-ccw.img: Fix build Christian Borntraeger
0 siblings, 1 reply; 7+ messages in thread
From: Christian Borntraeger @ 2016-08-15 10:28 UTC (permalink / raw)
To: cornelia.huck
Cc: pbonzini, marcandre.lureau, qemu-devel, peter.maydell,
Christian Borntraeger
This was done pretty quickly, so some review would be nice.
If OK, I think this should go via Conny for 2.7.
Christian Borntraeger (1):
pc-bios/s390-ccw.img: Fix build
pc-bios/s390-ccw/Makefile | 6 ++++--
pc-bios/s390-ccw/virtio.c | 7 ++++++-
2 files changed, 10 insertions(+), 3 deletions(-)
--
2.5.5
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH 1/1] pc-bios/s390-ccw.img: Fix build
2016-08-15 10:28 [Qemu-devel] [PATCH 0/1] pc-bios/s390-ccw.img build fix for 2.7 Christian Borntraeger
@ 2016-08-15 10:28 ` Christian Borntraeger
2016-08-15 10:57 ` Cornelia Huck
0 siblings, 1 reply; 7+ messages in thread
From: Christian Borntraeger @ 2016-08-15 10:28 UTC (permalink / raw)
To: cornelia.huck
Cc: pbonzini, marcandre.lureau, qemu-devel, peter.maydell,
Christian Borntraeger
Since
commit a9c87304b76d ("build-sys: fix building with make CFLAGS=.. argument")
pc-bios/s390-ccw.img build might fail with
--- snip ---
main.o: In function `virtio_setup':
qemu/pc-bios/s390-ccw/main.c:117: undefined reference to `__stack_chk_fail'
--- snip ---
Changing the CFLAGS to QEMU_CFLAGS does the trick.
We also need to fix a potential aliasing bug as we now compile with
-O2 instead of -O0. This was the warning message:
--- snip ---
/home/cborntra/REPOS/qemu/pc-bios/s390-ccw/virtio.c:64:5: error:
dereferencing type-punned pointer will break strict-aliasing rules
[-Werror=strict-aliasing]
return kvm_hypercall(KVM_S390_VIRTIO_CCW_NOTIFY, *(u32 *)&schid,
--- snip ---
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
pc-bios/s390-ccw/Makefile | 6 ++++--
pc-bios/s390-ccw/virtio.c | 7 ++++++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index 4208cb4..a9dcca4 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -10,8 +10,10 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
.PHONY : all clean build-all
OBJECTS = start.o main.o bootmap.o sclp-ascii.o virtio.o virtio-scsi.o
-CFLAGS += -fPIE -fno-stack-protector -ffreestanding -march=z900
-CFLAGS += -fno-delete-null-pointer-checks -msoft-float
+QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
+QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
+QEMU_CFLAGS += -march=z900 -fPIE
+QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
LDFLAGS += -Wl,-pie -nostdlib
build-all: s390-ccw.img
diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c
index 1d34e8c..9a7681d 100644
--- a/pc-bios/s390-ccw/virtio.c
+++ b/pc-bios/s390-ccw/virtio.c
@@ -61,7 +61,12 @@ static long kvm_hypercall(unsigned long nr, unsigned long param1,
static long virtio_notify(SubChannelId schid, int vq_idx, long cookie)
{
- return kvm_hypercall(KVM_S390_VIRTIO_CCW_NOTIFY, *(u32 *)&schid,
+ union {
+ SubChannelId schid;
+ u32 value;
+ } sch;
+ sch.schid = schid;
+ return kvm_hypercall(KVM_S390_VIRTIO_CCW_NOTIFY, sch.value,
vq_idx, cookie);
}
--
2.5.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 1/1] pc-bios/s390-ccw.img: Fix build
2016-08-15 10:28 ` [Qemu-devel] [PATCH 1/1] pc-bios/s390-ccw.img: Fix build Christian Borntraeger
@ 2016-08-15 10:57 ` Cornelia Huck
2016-08-15 11:03 ` [Qemu-devel] [PATCH v2 " Christian Borntraeger
0 siblings, 1 reply; 7+ messages in thread
From: Cornelia Huck @ 2016-08-15 10:57 UTC (permalink / raw)
To: Christian Borntraeger
Cc: pbonzini, marcandre.lureau, qemu-devel, peter.maydell
On Mon, 15 Aug 2016 12:28:11 +0200
Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> Since
> commit a9c87304b76d ("build-sys: fix building with make CFLAGS=.. argument")
>
> pc-bios/s390-ccw.img build might fail with
>
> --- snip ---
> main.o: In function `virtio_setup':
> qemu/pc-bios/s390-ccw/main.c:117: undefined reference to `__stack_chk_fail'
> --- snip ---
>
> Changing the CFLAGS to QEMU_CFLAGS does the trick.
>
> We also need to fix a potential aliasing bug as we now compile with
> -O2 instead of -O0. This was the warning message:
>
> --- snip ---
> /home/cborntra/REPOS/qemu/pc-bios/s390-ccw/virtio.c:64:5: error:
> dereferencing type-punned pointer will break strict-aliasing rules
> [-Werror=strict-aliasing]
Can we preserve no strict aliasing somehow? I don't really want to
change the bios code at that point if not needed.
> return kvm_hypercall(KVM_S390_VIRTIO_CCW_NOTIFY, *(u32 *)&schid,
> --- snip ---
>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
> pc-bios/s390-ccw/Makefile | 6 ++++--
> pc-bios/s390-ccw/virtio.c | 7 ++++++-
> 2 files changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
> index 4208cb4..a9dcca4 100644
> --- a/pc-bios/s390-ccw/Makefile
> +++ b/pc-bios/s390-ccw/Makefile
> @@ -10,8 +10,10 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
> .PHONY : all clean build-all
>
> OBJECTS = start.o main.o bootmap.o sclp-ascii.o virtio.o virtio-scsi.o
> -CFLAGS += -fPIE -fno-stack-protector -ffreestanding -march=z900
> -CFLAGS += -fno-delete-null-pointer-checks -msoft-float
> +QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
> +QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
> +QEMU_CFLAGS += -march=z900 -fPIE
> +QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
> LDFLAGS += -Wl,-pie -nostdlib
Does not look unreasonable, but as I've lost myself in the makefile
dependencies before, I'd like another review.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH v2 1/1] pc-bios/s390-ccw.img: Fix build
2016-08-15 10:57 ` Cornelia Huck
@ 2016-08-15 11:03 ` Christian Borntraeger
2016-08-16 6:59 ` Cornelia Huck
2016-08-17 10:57 ` Paolo Bonzini
0 siblings, 2 replies; 7+ messages in thread
From: Christian Borntraeger @ 2016-08-15 11:03 UTC (permalink / raw)
To: cornelia.huck
Cc: pbonzini, marcandre.lureau, qemu-devel, peter.maydell,
Christian Borntraeger
Since
commit a9c87304b76d ("build-sys: fix building with make CFLAGS=.. argument")
pc-bios/s390-ccw.img build might fail with
--- snip ---
main.o: In function `virtio_setup':
qemu/pc-bios/s390-ccw/main.c:117: undefined reference to `__stack_chk_fail'
--- snip ---
Changing the CFLAGS to QEMU_CFLAGS does the trick. We also need to
add -fno-strict-aliasing as this was filtered out.
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
V1->V2: use fno-strict-aliasing instead of changing the code
pc-bios/s390-ccw/Makefile | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index 4208cb4..0ab2538 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -10,8 +10,10 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
.PHONY : all clean build-all
OBJECTS = start.o main.o bootmap.o sclp-ascii.o virtio.o virtio-scsi.o
-CFLAGS += -fPIE -fno-stack-protector -ffreestanding -march=z900
-CFLAGS += -fno-delete-null-pointer-checks -msoft-float
+QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
+QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
+QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
+QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
LDFLAGS += -Wl,-pie -nostdlib
build-all: s390-ccw.img
--
2.5.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/1] pc-bios/s390-ccw.img: Fix build
2016-08-15 11:03 ` [Qemu-devel] [PATCH v2 " Christian Borntraeger
@ 2016-08-16 6:59 ` Cornelia Huck
2016-08-17 10:57 ` Paolo Bonzini
1 sibling, 0 replies; 7+ messages in thread
From: Cornelia Huck @ 2016-08-16 6:59 UTC (permalink / raw)
To: Christian Borntraeger
Cc: pbonzini, marcandre.lureau, qemu-devel, peter.maydell
On Mon, 15 Aug 2016 13:03:17 +0200
Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> Since
> commit a9c87304b76d ("build-sys: fix building with make CFLAGS=.. argument")
>
> pc-bios/s390-ccw.img build might fail with
>
> --- snip ---
> main.o: In function `virtio_setup':
> qemu/pc-bios/s390-ccw/main.c:117: undefined reference to `__stack_chk_fail'
> --- snip ---
>
> Changing the CFLAGS to QEMU_CFLAGS does the trick. We also need to
> add -fno-strict-aliasing as this was filtered out.
>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
> V1->V2: use fno-strict-aliasing instead of changing the code
> pc-bios/s390-ccw/Makefile | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
Thanks, applied.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/1] pc-bios/s390-ccw.img: Fix build
2016-08-15 11:03 ` [Qemu-devel] [PATCH v2 " Christian Borntraeger
2016-08-16 6:59 ` Cornelia Huck
@ 2016-08-17 10:57 ` Paolo Bonzini
2016-08-17 11:28 ` Cornelia Huck
1 sibling, 1 reply; 7+ messages in thread
From: Paolo Bonzini @ 2016-08-17 10:57 UTC (permalink / raw)
To: Christian Borntraeger, cornelia.huck
Cc: marcandre.lureau, qemu-devel, peter.maydell
On 15/08/2016 13:03, Christian Borntraeger wrote:
> Since
> commit a9c87304b76d ("build-sys: fix building with make CFLAGS=.. argument")
>
> pc-bios/s390-ccw.img build might fail with
>
> --- snip ---
> main.o: In function `virtio_setup':
> qemu/pc-bios/s390-ccw/main.c:117: undefined reference to `__stack_chk_fail'
> --- snip ---
>
> Changing the CFLAGS to QEMU_CFLAGS does the trick. We also need to
> add -fno-strict-aliasing as this was filtered out.
>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
> V1->V2: use fno-strict-aliasing instead of changing the code
> pc-bios/s390-ccw/Makefile | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
> index 4208cb4..0ab2538 100644
> --- a/pc-bios/s390-ccw/Makefile
> +++ b/pc-bios/s390-ccw/Makefile
> @@ -10,8 +10,10 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
> .PHONY : all clean build-all
>
> OBJECTS = start.o main.o bootmap.o sclp-ascii.o virtio.o virtio-scsi.o
> -CFLAGS += -fPIE -fno-stack-protector -ffreestanding -march=z900
> -CFLAGS += -fno-delete-null-pointer-checks -msoft-float
> +QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
> +QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
> +QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
> +QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
> LDFLAGS += -Wl,-pie -nostdlib
>
> build-all: s390-ccw.img
>
Looks pretty much like pc-bios/optionrom/Makefile with respect to C
compiler flags.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/1] pc-bios/s390-ccw.img: Fix build
2016-08-17 10:57 ` Paolo Bonzini
@ 2016-08-17 11:28 ` Cornelia Huck
0 siblings, 0 replies; 7+ messages in thread
From: Cornelia Huck @ 2016-08-17 11:28 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Christian Borntraeger, marcandre.lureau, qemu-devel, peter.maydell
On Wed, 17 Aug 2016 12:57:47 +0200
Paolo Bonzini <pbonzini@redhat.com> wrote:
> On 15/08/2016 13:03, Christian Borntraeger wrote:
> > Since
> > commit a9c87304b76d ("build-sys: fix building with make CFLAGS=.. argument")
> >
> > pc-bios/s390-ccw.img build might fail with
> >
> > --- snip ---
> > main.o: In function `virtio_setup':
> > qemu/pc-bios/s390-ccw/main.c:117: undefined reference to `__stack_chk_fail'
> > --- snip ---
> >
> > Changing the CFLAGS to QEMU_CFLAGS does the trick. We also need to
> > add -fno-strict-aliasing as this was filtered out.
> >
> > Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> > ---
> > V1->V2: use fno-strict-aliasing instead of changing the code
> > pc-bios/s390-ccw/Makefile | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
> > index 4208cb4..0ab2538 100644
> > --- a/pc-bios/s390-ccw/Makefile
> > +++ b/pc-bios/s390-ccw/Makefile
> > @@ -10,8 +10,10 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
> > .PHONY : all clean build-all
> >
> > OBJECTS = start.o main.o bootmap.o sclp-ascii.o virtio.o virtio-scsi.o
> > -CFLAGS += -fPIE -fno-stack-protector -ffreestanding -march=z900
> > -CFLAGS += -fno-delete-null-pointer-checks -msoft-float
> > +QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
> > +QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
> > +QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
> > +QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
> > LDFLAGS += -Wl,-pie -nostdlib
> >
> > build-all: s390-ccw.img
> >
>
> Looks pretty much like pc-bios/optionrom/Makefile with respect to C
> compiler flags.
>
> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Yes, that's also what I thought, so I already pushed it upstream :)
Still, thanks for the review!
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-08-17 11:29 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-15 10:28 [Qemu-devel] [PATCH 0/1] pc-bios/s390-ccw.img build fix for 2.7 Christian Borntraeger
2016-08-15 10:28 ` [Qemu-devel] [PATCH 1/1] pc-bios/s390-ccw.img: Fix build Christian Borntraeger
2016-08-15 10:57 ` Cornelia Huck
2016-08-15 11:03 ` [Qemu-devel] [PATCH v2 " Christian Borntraeger
2016-08-16 6:59 ` Cornelia Huck
2016-08-17 10:57 ` Paolo Bonzini
2016-08-17 11:28 ` Cornelia Huck
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.