meta-mingw patches for master
cover meta-mingw patches for master
The current master deviated enough from krogoth that it needs new meta-mingw patches (and a separate meta-mingw branch) in order to build (cross-compile) anything.
Only the build itself was tested, not the actual functionality of the resulting deployables. Nevertheless, correct functionality is predicated on a successful build.
The patches were tested by building some common/likely mingw targets for both SDKMACHINE=i686-mingw32 and SDKMACHINE=x86_64-mingw32:
TCLIBC="baremetal"
MACHINE ="qemux86"
bitbake gcc-cross-canadian-i586
TCLIBC="baremetal"
MACHINE ="qemuarm"
PACKAGE_CLASSES ="package_ipk"
bitbake gcc-cross-canadian-arm
MACHINE ="qemux86"
bitbake gdb-cross-canadian-i586
MACHINE ="qemux86"
bitbake meta-toolchain
MACHINE ="qemux86"
SDKTAROPTS_append_mingw32 = " -h --hard-dereference"
bitbake core-image-minimal -c populate_sdkPresently all deployables may need to be manually re-packaged for deployment on Windows as the packages are typically in *.tar.xz or .rpm format (possibly containing symbolic links).
Juro Bystricky (3):
mingw-64-runtime_3.1.bb: Adapt to SDK_ARCH -> SDK_SYS chanages for
crosssdk
gcc-crosssdk_%.bbappend: Do not configure with initfini-array enabled. gcc-crosssdk-initial_%.bbappend:Do not configure with initfini-array
enabled
recipes-devtools/gcc/gcc-crosssdk-initial_%.bbappend | 2 ++ recipes-devtools/gcc/gcc-crosssdk_%.bbappend | 3 +++ recipes-devtools/mingw-w64/nativesdk-mingw-w64-runtime_3.1.0.bb | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-)
Signature · 1 line
2.7.4
PATCH 1/3 mingw-64-runtime_3.1.bb: Adapt to SDK_ARCH -> SDK_SYS chanages for crosssdk
With the change of crosssdk to use SDK_SYS instead of SDK_ARCH, we need to update the recipe to match the changes in master.
[YOCTO #9281]
--- recipes-devtools/mingw-w64/nativesdk-mingw-w64-runtime_3.1.0.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
recipes-devtools/mingw-w64/nativesdk-mingw-w64-runtime_3.1.0.bb +1 -1
@@ -24,7 +24,7 @@ PROVIDES += "virtual/nativesdk-${SDK_PREFIX}libc-for-gcc" PROVIDES += "virtual/nativesdk-libintl" STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" -STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}" +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}" PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
Signature · 1 line
2.7.4
PATCH 2/3 gcc-crosssdk_%.bbappend: Do not configure with initfini-array enabled.
In reply to Juro BystrickyDefault configuration for gcc-crosssddk is now to enable initfini-array. However, this works only for Linux so we disable it for mingw32. Otherwise we will eventually encounter build error such as:
multiple definition of `__do_global_dtors'
--- recipes-devtools/gcc/gcc-crosssdk_%.bbappend | 3 +++ 1 file changed, 3 insertions(+)
recipes-devtools/gcc/gcc-crosssdk_%.bbappend +3 -0
@@ -1 +1,4 @@ EXTRA_OECONF_mingw32 := "${@oe_filter_out('--with-linker-hash-style=${LINKER_HASH_STYLE}', '${EXTRA_OECONF}', d)}" +PACKAGECONFIG_CONFARGS ?= "" +EXTRA_OECONF_remove_mingw32 = "--enable-initfini-array" +EXTRA_OECONF_append_mingw32 = " --disable-initfini-array"
Signature · 1 line
2.7.4
Re: [meta-mingw][PATCH 2/3] gcc-crosssdk_%.bbappend: Do not configure with initfini-array enabled.
Quoted 20 lines · Juro Bystricky
Default configuration for gcc-crosssddk is now to enable initfini-array. However, this works only for Linux so we disable it for mingw32. Otherwise we will eventually encounter build error such as:
multiple definition of `__do_global_dtors'
Signed-off-by Juro Bystricky <[email protected]>---
recipes-devtools/gcc/gcc-crosssdk_%.bbappend | 3 +++1 file changed, 3 insertions(+)recipes-devtools/gcc/gcc-crosssdk_%.bbappend +0
-0@@ -1 +1,4 @@
EXTRA_OECONF_mingw32:= "${@oe_filter_out('--with-linker-hash-style=${LINKER_HASH_STYLE}', '${EXTRA_OECONF}', d)}"
recipes-devtools/gcc/gcc-crosssdk_%.bbappend
Quoted 3 lines
recipes-devtools/gcc/gcc-crosssdk_%.bbappend +3
-0+PACKAGECONFIG_CONFARGS ?= "" +EXTRA_OECONF_remove_mingw32 = "--enable-initfini-array" +EXTRA_OECONF_append_mingw32 = " --disable-initfini-array”
I think in OE-Core we should add this via PACKAGECONFIG
Quoted 8 lines
--
2.7.4--
_______________________________________________
yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/yocto
PATCH 3/3 gcc-crosssdk-initial_%.bbappend:Do not configure with initfini-array enabled
In reply to Juro BystrickyDefault configuration for gcc-crosssddk-initial is now to enable initfini-array. However, this works only for Linux so we disable it for mingw32. Otherwise, (with SDKMACHINE=x86_64-mingw32) we will eventually encounter errors such as:
Assembler messages:
Error: invalid instruction suffix for `push'
Error: invalid instruction suffix for `pop'
--- recipes-devtools/gcc/gcc-crosssdk-initial_%.bbappend | 2 ++ 1 file changed, 2 insertions(+)
recipes-devtools/gcc/gcc-crosssdk-initial_%.bbappend +2 -0
@@ -1 +1,3 @@ DEPENDS_append_mingw32 = " nativesdk-mingw-w64-headers" +EXTRA_OECONF_remove_mingw32 = "--enable-initfini-array" +EXTRA_OECONF_append_mingw32 = " --disable-initfini-array"
Signature · 1 line
2.7.4