All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-mingw][PATCH 0/19] Adding support for building QEMU for Windows
@ 2017-01-30  8:41 Nathan Rossi
  2017-01-30  8:41 ` [meta-mingw][PATCH 1/19] mingw-w64-headers: Add 'secure-api' PACKAGECONFIG Nathan Rossi
  2017-01-30  8:44 ` [meta-mingw][PATCH 0/19] Adding support for building QEMU for Windows Nathan Rossi
  0 siblings, 2 replies; 3+ messages in thread
From: Nathan Rossi @ 2017-01-30  8:41 UTC (permalink / raw)
  To: yocto; +Cc: Alistair Francis

This series enables a number of packages and dependencies to be built
for mingw32. The goal is to enable the building and packaging of QEMU
targeting mingw32 with support for SDL/VNC enabled as well as being able
to execute the qemu* machines of oe-core/meta.

The following series fixes a number of issues with compilation of
certain components that are required to build and distribute QEMU. This
series includes:

 * Enabling 'secure-api' for mingw-w64-headers
 * Fix/enable building of shared libraries for gettext
 * Work around to avoid dependency on bash for glib-2.0, clean up of
   some glib-2.0 appends which are resolved in oe-core meta
 * Better packaging of libgcc for easy use on Windows (deploy dll to
   bindir)
 * Updating FILES_* to support locations for mingw32 output (bindir
   contains .dll) for libgcc, expat, libpcre, gettext, glib-2.0, libsdl,
   libgpg-error and libgcrypt
 * Addition of PACKAGECONFIG options to libsdl, and configuring of
   PACKAGECONFIG for libsdl, glib-2.0 and libgcrypt to handle Windows
   only features and or ability to disable features that do not support
   mingw32/Windows
 * Enabling build of libfdt in the dtc recipe, but skipping dtc itself
 * Fixes for configuring libgpg-error and libgcrypt when targeting
   mingw32

The intended build execution is to allow for 'buildtools-tarball' (or
any populate_sdk target with 'nativesdk-qemu' in TOOLCHAIN_HOST_TASK) to
create an output that includes all dependent nativesdk binaries as well
as a nativesdk QEMU binaries. This series does not however address
fixing the environment setup script or self-extracting installer shell
script that is normally provided by buildtools-tarball.

This series with the multiple oe-core/meta series was tested on the
following target Windows platforms: Windows 10 (64-bit), Windows 8.1
(64-bit) and Windows 7 SP1 (64-bit).

The changes were also tested on the following Linux build hosts: Debian
8 (64-bit), Ubuntu 16.04 (64-bit), CentOS 7 (64-bit).

For convenience this series is also available in the git repository:

  https://github.com/nathanrossi/meta-mingw nrossi/mingw-qemu-v2

This series partly depends on a set of series for oe-core/meta. The
following series are required for building of QEMU (but not all parts of
this series specifically), including dll packaging detection and
libgcrypt support:

  https://patchwork.openembedded.org/series/5049/
  https://patchwork.openembedded.org/series/5050/
  https://patchwork.openembedded.org/series/5051/
  https://patchwork.openembedded.org/series/5052/
  https://patchwork.openembedded.org/series/5053/

A branch which has the series above merged has been published to allow
for easy testing, it is available at:

  https://github.com/nathanrossi/openembedded-core testing/mingw-support-2017-01-30

---

Changes v2:
 * Moved a number of patches from oe-core series to this series
 * Updated cover letter to reflect series additional inclusion
 * Bring cover letter info from oe-core/meta series
 * Updated commit messages

Nathan Rossi (19):
  mingw-w64-headers: Add 'secure-api' PACKAGECONFIG
  libgcc: Relocate and package dll's in bindir
  expat: Fix ${PN}-bin handling for .exe files
  libpcre: Handle shipping .exe and .dll files for mingw32
  gettext_0.19.%.bbappend: Fix/enable shared building of gettext
  gettext_0.19.%.bbappend: Handle packaging .dll's for mingw32
  gettext_0.19.%.bbappend: Handle gettext-libintl .dll packaging
  glib-2.0: Prevent a bash dependency via bash-completion
  glib-2.0: Disable libmount support for mingw32 targets
  glib-2.0: Handle packaging .dll and .exe files for mingw32
  glib-2.0: Clean up unnecessary appends that are resolved in oe-core
  dtc: Only build libfdt for mingw32
  libsdl: Windows specific PACKAGECONFIG
  libsdl: Fix ${PN}-bin handling for .exe files
  libgpg-error: Handle packaging .exe files
  libgpg-error_1.25.bbappend: Add patch to fix configure bug for mingw32
  libgcrypt: Handle packaging of .exe and .def files
  libgcrypt: Disable 'capabilities' for mingw32
  libgcrypt_1.7.3.bbappend: Add patch to fix configure bug for mingw32

 recipes-core/dtc/dtc_%.bbappend                    | 16 ++++++
 recipes-core/expat/expat_%.bbappend                |  3 +
 .../fix-gl_cv_prog_as_underscore-test.patch        | 67 ++++++++++++++++++++++
 recipes-core/gettext/gettext_0.19.%.bbappend       | 11 +++-
 recipes-core/glib-2.0/glib-2.0_%.bbappend          | 17 +++++-
 recipes-devtools/gcc/libgcc_%.bbappend             |  8 ++-
 .../mingw-w64/nativesdk-mingw-w64-headers_3.1.0.bb |  4 ++
 recipes-graphics/libsdl/libsdl_%.bbappend          |  9 +++
 ...c-Set-mym4_revision-to-0-if-not-a-git-rep.patch | 46 +++++++++++++++
 recipes-support/libgcrypt/libgcrypt_%.bbappend     | 11 ++++
 recipes-support/libgcrypt/libgcrypt_1.7.3.bbappend |  6 ++
 ...c-Set-mym4_revision-to-0-if-not-a-git-rep.patch | 46 +++++++++++++++
 .../libgpg-error/libgpg-error_%.bbappend           |  3 +
 .../libgpg-error/libgpg-error_1.25.bbappend        |  6 ++
 recipes-support/libpcre/libpcre_%.bbappend         |  6 ++
 15 files changed, 255 insertions(+), 4 deletions(-)
 create mode 100644 recipes-core/dtc/dtc_%.bbappend
 create mode 100644 recipes-core/expat/expat_%.bbappend
 create mode 100644 recipes-core/gettext/gettext/fix-gl_cv_prog_as_underscore-test.patch
 create mode 100644 recipes-graphics/libsdl/libsdl_%.bbappend
 create mode 100644 recipes-support/libgcrypt/files/configure.ac-Set-mym4_revision-to-0-if-not-a-git-rep.patch
 create mode 100644 recipes-support/libgcrypt/libgcrypt_%.bbappend
 create mode 100644 recipes-support/libgcrypt/libgcrypt_1.7.3.bbappend
 create mode 100644 recipes-support/libgpg-error/files/configure.ac-Set-mym4_revision-to-0-if-not-a-git-rep.patch
 create mode 100644 recipes-support/libgpg-error/libgpg-error_%.bbappend
 create mode 100644 recipes-support/libgpg-error/libgpg-error_1.25.bbappend
 create mode 100644 recipes-support/libpcre/libpcre_%.bbappend

-- 
2.11.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [meta-mingw][PATCH 1/19] mingw-w64-headers: Add 'secure-api' PACKAGECONFIG
  2017-01-30  8:41 [meta-mingw][PATCH 0/19] Adding support for building QEMU for Windows Nathan Rossi
@ 2017-01-30  8:41 ` Nathan Rossi
  2017-01-30  8:44 ` [meta-mingw][PATCH 0/19] Adding support for building QEMU for Windows Nathan Rossi
  1 sibling, 0 replies; 3+ messages in thread
From: Nathan Rossi @ 2017-01-30  8:41 UTC (permalink / raw)
  To: yocto; +Cc: Alistair Francis

Add the 'secure-api' PACKAGECONFIG and enable it by default. The
'secure-api' feature enables the secure string functions that are
provided in the MS C Runtime e.g. "strerror_s".

These functions are needed for glib-2.0 compilation.

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
---
 recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_3.1.0.bb | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_3.1.0.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_3.1.0.bb
index 06312d604e..5cd4e34e09 100644
--- a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_3.1.0.bb
+++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_3.1.0.bb
@@ -18,6 +18,10 @@ inherit autotools nativesdk
 INHIBIT_DEFAULT_DEPS = "1"
 DEPENDS = ""
 
+PACKAGECONFIG ??= "secure-api"
+
+PACKAGECONFIG[secure-api] = "--enable-secure-api,--disable-secure-api"
+
 do_configure() {
 	oe_runconf
 }
-- 
2.11.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [meta-mingw][PATCH 0/19] Adding support for building QEMU for Windows
  2017-01-30  8:41 [meta-mingw][PATCH 0/19] Adding support for building QEMU for Windows Nathan Rossi
  2017-01-30  8:41 ` [meta-mingw][PATCH 1/19] mingw-w64-headers: Add 'secure-api' PACKAGECONFIG Nathan Rossi
@ 2017-01-30  8:44 ` Nathan Rossi
  1 sibling, 0 replies; 3+ messages in thread
From: Nathan Rossi @ 2017-01-30  8:44 UTC (permalink / raw)
  To: yocto; +Cc: Alistair Francis

Sorry this should have v2 in the subject. I realized just as the
second patch was sent. I've resent with v2 for clarity.

Regards,
Nathan

On 30 January 2017 at 18:41, Nathan Rossi <nathan@nathanrossi.com> wrote:
> This series enables a number of packages and dependencies to be built
> for mingw32. The goal is to enable the building and packaging of QEMU
> targeting mingw32 with support for SDL/VNC enabled as well as being able
> to execute the qemu* machines of oe-core/meta.
>
> The following series fixes a number of issues with compilation of
> certain components that are required to build and distribute QEMU. This
> series includes:
>
>  * Enabling 'secure-api' for mingw-w64-headers
>  * Fix/enable building of shared libraries for gettext
>  * Work around to avoid dependency on bash for glib-2.0, clean up of
>    some glib-2.0 appends which are resolved in oe-core meta
>  * Better packaging of libgcc for easy use on Windows (deploy dll to
>    bindir)
>  * Updating FILES_* to support locations for mingw32 output (bindir
>    contains .dll) for libgcc, expat, libpcre, gettext, glib-2.0, libsdl,
>    libgpg-error and libgcrypt
>  * Addition of PACKAGECONFIG options to libsdl, and configuring of
>    PACKAGECONFIG for libsdl, glib-2.0 and libgcrypt to handle Windows
>    only features and or ability to disable features that do not support
>    mingw32/Windows
>  * Enabling build of libfdt in the dtc recipe, but skipping dtc itself
>  * Fixes for configuring libgpg-error and libgcrypt when targeting
>    mingw32
>
> The intended build execution is to allow for 'buildtools-tarball' (or
> any populate_sdk target with 'nativesdk-qemu' in TOOLCHAIN_HOST_TASK) to
> create an output that includes all dependent nativesdk binaries as well
> as a nativesdk QEMU binaries. This series does not however address
> fixing the environment setup script or self-extracting installer shell
> script that is normally provided by buildtools-tarball.
>
> This series with the multiple oe-core/meta series was tested on the
> following target Windows platforms: Windows 10 (64-bit), Windows 8.1
> (64-bit) and Windows 7 SP1 (64-bit).
>
> The changes were also tested on the following Linux build hosts: Debian
> 8 (64-bit), Ubuntu 16.04 (64-bit), CentOS 7 (64-bit).
>
> For convenience this series is also available in the git repository:
>
>   https://github.com/nathanrossi/meta-mingw nrossi/mingw-qemu-v2
>
> This series partly depends on a set of series for oe-core/meta. The
> following series are required for building of QEMU (but not all parts of
> this series specifically), including dll packaging detection and
> libgcrypt support:
>
>   https://patchwork.openembedded.org/series/5049/
>   https://patchwork.openembedded.org/series/5050/
>   https://patchwork.openembedded.org/series/5051/
>   https://patchwork.openembedded.org/series/5052/
>   https://patchwork.openembedded.org/series/5053/
>
> A branch which has the series above merged has been published to allow
> for easy testing, it is available at:
>
>   https://github.com/nathanrossi/openembedded-core testing/mingw-support-2017-01-30
>
> ---
>
> Changes v2:
>  * Moved a number of patches from oe-core series to this series
>  * Updated cover letter to reflect series additional inclusion
>  * Bring cover letter info from oe-core/meta series
>  * Updated commit messages
>
> Nathan Rossi (19):
>   mingw-w64-headers: Add 'secure-api' PACKAGECONFIG
>   libgcc: Relocate and package dll's in bindir
>   expat: Fix ${PN}-bin handling for .exe files
>   libpcre: Handle shipping .exe and .dll files for mingw32
>   gettext_0.19.%.bbappend: Fix/enable shared building of gettext
>   gettext_0.19.%.bbappend: Handle packaging .dll's for mingw32
>   gettext_0.19.%.bbappend: Handle gettext-libintl .dll packaging
>   glib-2.0: Prevent a bash dependency via bash-completion
>   glib-2.0: Disable libmount support for mingw32 targets
>   glib-2.0: Handle packaging .dll and .exe files for mingw32
>   glib-2.0: Clean up unnecessary appends that are resolved in oe-core
>   dtc: Only build libfdt for mingw32
>   libsdl: Windows specific PACKAGECONFIG
>   libsdl: Fix ${PN}-bin handling for .exe files
>   libgpg-error: Handle packaging .exe files
>   libgpg-error_1.25.bbappend: Add patch to fix configure bug for mingw32
>   libgcrypt: Handle packaging of .exe and .def files
>   libgcrypt: Disable 'capabilities' for mingw32
>   libgcrypt_1.7.3.bbappend: Add patch to fix configure bug for mingw32
>
>  recipes-core/dtc/dtc_%.bbappend                    | 16 ++++++
>  recipes-core/expat/expat_%.bbappend                |  3 +
>  .../fix-gl_cv_prog_as_underscore-test.patch        | 67 ++++++++++++++++++++++
>  recipes-core/gettext/gettext_0.19.%.bbappend       | 11 +++-
>  recipes-core/glib-2.0/glib-2.0_%.bbappend          | 17 +++++-
>  recipes-devtools/gcc/libgcc_%.bbappend             |  8 ++-
>  .../mingw-w64/nativesdk-mingw-w64-headers_3.1.0.bb |  4 ++
>  recipes-graphics/libsdl/libsdl_%.bbappend          |  9 +++
>  ...c-Set-mym4_revision-to-0-if-not-a-git-rep.patch | 46 +++++++++++++++
>  recipes-support/libgcrypt/libgcrypt_%.bbappend     | 11 ++++
>  recipes-support/libgcrypt/libgcrypt_1.7.3.bbappend |  6 ++
>  ...c-Set-mym4_revision-to-0-if-not-a-git-rep.patch | 46 +++++++++++++++
>  .../libgpg-error/libgpg-error_%.bbappend           |  3 +
>  .../libgpg-error/libgpg-error_1.25.bbappend        |  6 ++
>  recipes-support/libpcre/libpcre_%.bbappend         |  6 ++
>  15 files changed, 255 insertions(+), 4 deletions(-)
>  create mode 100644 recipes-core/dtc/dtc_%.bbappend
>  create mode 100644 recipes-core/expat/expat_%.bbappend
>  create mode 100644 recipes-core/gettext/gettext/fix-gl_cv_prog_as_underscore-test.patch
>  create mode 100644 recipes-graphics/libsdl/libsdl_%.bbappend
>  create mode 100644 recipes-support/libgcrypt/files/configure.ac-Set-mym4_revision-to-0-if-not-a-git-rep.patch
>  create mode 100644 recipes-support/libgcrypt/libgcrypt_%.bbappend
>  create mode 100644 recipes-support/libgcrypt/libgcrypt_1.7.3.bbappend
>  create mode 100644 recipes-support/libgpg-error/files/configure.ac-Set-mym4_revision-to-0-if-not-a-git-rep.patch
>  create mode 100644 recipes-support/libgpg-error/libgpg-error_%.bbappend
>  create mode 100644 recipes-support/libgpg-error/libgpg-error_1.25.bbappend
>  create mode 100644 recipes-support/libpcre/libpcre_%.bbappend
>
> --
> 2.11.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-01-30  8:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-30  8:41 [meta-mingw][PATCH 0/19] Adding support for building QEMU for Windows Nathan Rossi
2017-01-30  8:41 ` [meta-mingw][PATCH 1/19] mingw-w64-headers: Add 'secure-api' PACKAGECONFIG Nathan Rossi
2017-01-30  8:44 ` [meta-mingw][PATCH 0/19] Adding support for building QEMU for Windows Nathan Rossi

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.