Message ID | 2b5ab039-8495-b55f-03f1-ecfd996907a9@zapateado.de |
---|---|
State | New |
Headers | show |
Series | configure/optionrom: Fix MSYS2 multiboot.bin issue | expand |
On 15/09/2021 11:56, Helge Konetzka wrote: > This patch enables native builds on MSYS2 with symlinks disabled. > > > Signed-off-by: Helge Konetzka <hk@zapateado.de> > --- > > Without this patch these builds fail with: > > make[1]: *** No rule to make target 'multiboot.bin', needed by 'all'. Stop. > make: *** [Makefile:189: pc-bios/optionrom/all] Error 2 > make: *** Waiting for unfinished jobs.... > ... > ==> ERROR: A failure occurred in build(). > Aborting... > > Builds fail because make cannot determine correct TOPSRC_DIR/SRC_DIR based on copied > instead of linked Makefile > > After applying this patch to current master I succeeded in building natively on Linux > and Windows/MSYS2 with symlinks disabled and enabled (winsymlinks:nativestrict, bash > executed as Administrator). > > configure | 4 ++++ > pc-bios/optionrom/Makefile | 5 ++--- > 2 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/configure b/configure > index da2501489f..a12bc8edbf 100755 > --- a/configure > +++ b/configure > @@ -5090,6 +5090,10 @@ for rom in seabios; do > echo "RANLIB=$ranlib" >> $config_mak > done > > +config_mak=pc-bios/optionrom/config.mak > +echo "# Automatically generated by configure - do not modify" > $config_mak > +echo "TOPSRC_DIR=$source_path" >> $config_mak > + > if test "$skip_meson" = no; then > cross="config-meson.cross.new" > meson_quote() { > diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile > index 30771f8d17..3482508a86 100644 > --- a/pc-bios/optionrom/Makefile > +++ b/pc-bios/optionrom/Makefile > @@ -1,6 +1,5 @@ > -CURRENT_MAKEFILE := $(realpath $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) > -SRC_DIR := $(dir $(CURRENT_MAKEFILE)) > -TOPSRC_DIR := $(SRC_DIR)/../.. > +include config.mak > +SRC_DIR := $(TOPSRC_DIR)/pc-bios/optionrom > VPATH = $(SRC_DIR) > > all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin (Added Marc-André on CC) Thanks for the patch! IMO this is a better solution since then there are no special requirements for Windows compared with POSIX-type builds. Marc-André, could you have a look at this? In short, commit bf708f3c4a ("optionrom: simplify Makefile") in its current form requires either a) copying and renaming compiler binaries and passing --cross-prefix into configure (see https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2) or b) enabling symlinks in Windows developer mode as per https://www.mail-archive.com/qemu-devel@nongnu.org/msg750968.html for native Windows builds. ATB, Mark.
ping https://lore.kernel.org/qemu-devel/2b5ab039-8495-b55f-03f1-ecfd996907a9@zapateado.de/T/#u https://patchew.org/QEMU/2b5ab039-8495-b55f-03f1-ecfd996907a9@zapateado.de/ Am 15.09.21 um 12:56 schrieb Helge Konetzka: > This patch enables native builds on MSYS2 with symlinks disabled. > > > Signed-off-by: Helge Konetzka <hk@zapateado.de> > --- > > Without this patch these builds fail with: > > make[1]: *** No rule to make target 'multiboot.bin', needed by 'all'. Stop. > make: *** [Makefile:189: pc-bios/optionrom/all] Error 2 > make: *** Waiting for unfinished jobs.... > ... > ==> ERROR: A failure occurred in build(). > Aborting... > > Builds fail because make cannot determine correct TOPSRC_DIR/SRC_DIR > based on copied instead of linked Makefile > > After applying this patch to current master I succeeded in building > natively on Linux and Windows/MSYS2 with symlinks disabled and enabled > (winsymlinks:nativestrict, bash executed as Administrator). > > configure | 4 ++++ > pc-bios/optionrom/Makefile | 5 ++--- > 2 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/configure b/configure > index da2501489f..a12bc8edbf 100755 > --- a/configure > +++ b/configure > @@ -5090,6 +5090,10 @@ for rom in seabios; do > echo "RANLIB=$ranlib" >> $config_mak > done > > +config_mak=pc-bios/optionrom/config.mak > +echo "# Automatically generated by configure - do not modify" > > $config_mak > +echo "TOPSRC_DIR=$source_path" >> $config_mak > + > if test "$skip_meson" = no; then > cross="config-meson.cross.new" > meson_quote() { > diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile > index 30771f8d17..3482508a86 100644 > --- a/pc-bios/optionrom/Makefile > +++ b/pc-bios/optionrom/Makefile > @@ -1,6 +1,5 @@ > -CURRENT_MAKEFILE := $(realpath $(word $(words > $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) > -SRC_DIR := $(dir $(CURRENT_MAKEFILE)) > -TOPSRC_DIR := $(SRC_DIR)/../.. > +include config.mak > +SRC_DIR := $(TOPSRC_DIR)/pc-bios/optionrom > VPATH = $(SRC_DIR) > > all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
ping https://lore.kernel.org/qemu-devel/2b5ab039-8495-b55f-03f1-ecfd996907a9@zapateado.de/T/#u https://patchew.org/QEMU/2b5ab039-8495-b55f-03f1-ecfd996907a9@zapateado.de/ Am 15.09.21 um 12:56 schrieb Helge Konetzka: > This patch enables native builds on MSYS2 with symlinks disabled. > > > Signed-off-by: Helge Konetzka <hk@zapateado.de> > --- > > Without this patch these builds fail with: > > make[1]: *** No rule to make target 'multiboot.bin', needed by 'all'. Stop. > make: *** [Makefile:189: pc-bios/optionrom/all] Error 2 > make: *** Waiting for unfinished jobs.... > ... > ==> ERROR: A failure occurred in build(). > Aborting... > > Builds fail because make cannot determine correct TOPSRC_DIR/SRC_DIR > based on copied instead of linked Makefile > > After applying this patch to current master I succeeded in building > natively on Linux and Windows/MSYS2 with symlinks disabled and enabled > (winsymlinks:nativestrict, bash executed as Administrator). > > configure | 4 ++++ > pc-bios/optionrom/Makefile | 5 ++--- > 2 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/configure b/configure > index da2501489f..a12bc8edbf 100755 > --- a/configure > +++ b/configure > @@ -5090,6 +5090,10 @@ for rom in seabios; do > echo "RANLIB=$ranlib" >> $config_mak > done > > +config_mak=pc-bios/optionrom/config.mak > +echo "# Automatically generated by configure - do not modify" > > $config_mak > +echo "TOPSRC_DIR=$source_path" >> $config_mak > + > if test "$skip_meson" = no; then > cross="config-meson.cross.new" > meson_quote() { > diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile > index 30771f8d17..3482508a86 100644 > --- a/pc-bios/optionrom/Makefile > +++ b/pc-bios/optionrom/Makefile > @@ -1,6 +1,5 @@ > -CURRENT_MAKEFILE := $(realpath $(word $(words > $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) > -SRC_DIR := $(dir $(CURRENT_MAKEFILE)) > -TOPSRC_DIR := $(SRC_DIR)/../.. > +include config.mak > +SRC_DIR := $(TOPSRC_DIR)/pc-bios/optionrom > VPATH = $(SRC_DIR) > > all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
On 15/09/21 12:56, Helge Konetzka wrote: > This patch enables native builds on MSYS2 with symlinks disabled. > > > Signed-off-by: Helge Konetzka <hk@zapateado.de> > --- > > Without this patch these builds fail with: > > make[1]: *** No rule to make target 'multiboot.bin', needed by 'all'. Stop. > make: *** [Makefile:189: pc-bios/optionrom/all] Error 2 > make: *** Waiting for unfinished jobs.... > ... > ==> ERROR: A failure occurred in build(). > Aborting... > > Builds fail because make cannot determine correct TOPSRC_DIR/SRC_DIR > based on copied instead of linked Makefile > > After applying this patch to current master I succeeded in building > natively on Linux and Windows/MSYS2 with symlinks disabled and enabled > (winsymlinks:nativestrict, bash executed as Administrator). > > configure | 4 ++++ > pc-bios/optionrom/Makefile | 5 ++--- > 2 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/configure b/configure > index da2501489f..a12bc8edbf 100755 > --- a/configure > +++ b/configure > @@ -5090,6 +5090,10 @@ for rom in seabios; do > echo "RANLIB=$ranlib" >> $config_mak > done > > +config_mak=pc-bios/optionrom/config.mak > +echo "# Automatically generated by configure - do not modify" > > $config_mak > +echo "TOPSRC_DIR=$source_path" >> $config_mak > + > if test "$skip_meson" = no; then > cross="config-meson.cross.new" > meson_quote() { > diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile > index 30771f8d17..3482508a86 100644 > --- a/pc-bios/optionrom/Makefile > +++ b/pc-bios/optionrom/Makefile > @@ -1,6 +1,5 @@ > -CURRENT_MAKEFILE := $(realpath $(word $(words > $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) > -SRC_DIR := $(dir $(CURRENT_MAKEFILE)) > -TOPSRC_DIR := $(SRC_DIR)/../.. > +include config.mak > +SRC_DIR := $(TOPSRC_DIR)/pc-bios/optionrom > VPATH = $(SRC_DIR) > > all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin Queued, thanks. Sorry for the delay! Paolo
diff --git a/configure b/configure index da2501489f..a12bc8edbf 100755 --- a/configure +++ b/configure @@ -5090,6 +5090,10 @@ for rom in seabios; do echo "RANLIB=$ranlib" >> $config_mak done +config_mak=pc-bios/optionrom/config.mak +echo "# Automatically generated by configure - do not modify" > $config_mak +echo "TOPSRC_DIR=$source_path" >> $config_mak + if test "$skip_meson" = no; then cross="config-meson.cross.new" meson_quote() { diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile index 30771f8d17..3482508a86 100644 --- a/pc-bios/optionrom/Makefile +++ b/pc-bios/optionrom/Makefile @@ -1,6 +1,5 @@ -CURRENT_MAKEFILE := $(realpath $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) -SRC_DIR := $(dir $(CURRENT_MAKEFILE)) -TOPSRC_DIR := $(SRC_DIR)/../.. +include config.mak +SRC_DIR := $(TOPSRC_DIR)/pc-bios/optionrom VPATH = $(SRC_DIR)
This patch enables native builds on MSYS2 with symlinks disabled. Signed-off-by: Helge Konetzka <hk@zapateado.de> --- Without this patch these builds fail with: make[1]: *** No rule to make target 'multiboot.bin', needed by 'all'. Stop. make: *** [Makefile:189: pc-bios/optionrom/all] Error 2 make: *** Waiting for unfinished jobs.... ... ==> ERROR: A failure occurred in build(). Aborting... Builds fail because make cannot determine correct TOPSRC_DIR/SRC_DIR based on copied instead of linked Makefile After applying this patch to current master I succeeded in building natively on Linux and Windows/MSYS2 with symlinks disabled and enabled (winsymlinks:nativestrict, bash executed as Administrator). configure | 4 ++++ pc-bios/optionrom/Makefile | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin