[meta-mingw,1/2] winpthreads: use posix threads library from mingw64

Submitted by Samuli Piippo on Nov. 15, 2018, 9:28 a.m. | Patch ID: 156332

Details

Message ID 20181115092658.29152-1-samuli.piippo@qt.io
State New
Headers show

Commit Message

Samuli Piippo Nov. 15, 2018, 9:28 a.m.
Use the winpthreads library available in the mingw64 and
change the thread model from win32 to posix to get access
to c++11 features.

Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
---
 conf/machine-sdk/include/mingw32-common.inc   |  2 -
 recipes-core/gettext/gettext_0.19.%.bbappend  |  5 +-
 recipes-devtools/gcc/gcc-runtime_%.bbappend   |  2 +-
 recipes-devtools/gcc/libgcc_%.bbappend        |  2 +
 .../nativesdk-mingw-w64-headers_5.0.3.bb      |  5 ++
 .../nativesdk-mingw-w64-winpthreads_5.0.3.bb  | 31 ++++++++++++
 .../pthreads-win32/pthreads-win32_2.9.1.bb    | 47 -------------------
 7 files changed, 40 insertions(+), 54 deletions(-)
 create mode 100644 recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb
 delete mode 100644 recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb

Patch hide | download patch | download mbox

diff --git a/conf/machine-sdk/include/mingw32-common.inc b/conf/machine-sdk/include/mingw32-common.inc
index cd56380..733d092 100644
--- a/conf/machine-sdk/include/mingw32-common.inc
+++ b/conf/machine-sdk/include/mingw32-common.inc
@@ -1,8 +1,6 @@ 
 SDK_OS = "mingw32"
 NATIVESDKLIBC = "libc-mingw"
 
-GCCTHREADS_mingw32 = "win32"
-
 PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc_mingw32 = "nativesdk-mingw-w64-runtime"
 PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial_mingw32 = "nativesdk-mingw-w64-runtime"
 PREFERRED_PROVIDER_virtual/nativesdk-libc = "nativesdk-mingw-w64-runtime"
diff --git a/recipes-core/gettext/gettext_0.19.%.bbappend b/recipes-core/gettext/gettext_0.19.%.bbappend
index b26b734..21749f3 100644
--- a/recipes-core/gettext/gettext_0.19.%.bbappend
+++ b/recipes-core/gettext/gettext_0.19.%.bbappend
@@ -1,7 +1,4 @@ 
-DEPENDS_append_mingw32 = " pthreads-win32"
-LDFLAGS_prepend_mingw32 = " -lpthread "
-
-EXTRA_OECONF_append_mingw32 = " --enable-threads=windows --enable-static"
+EXTRA_OECONF_append_mingw32 = " --enable-static"
 
 FILESEXTRAPATHS_prepend_mingw32 := "${THISDIR}/${BPN}:"
 SRC_URI_append_mingw32 = " \
diff --git a/recipes-devtools/gcc/gcc-runtime_%.bbappend b/recipes-devtools/gcc/gcc-runtime_%.bbappend
index 1641cb9..f14edf1 100644
--- a/recipes-devtools/gcc/gcc-runtime_%.bbappend
+++ b/recipes-devtools/gcc/gcc-runtime_%.bbappend
@@ -11,4 +11,4 @@  RUNTIMETARGET_remove_mingw32 = "libitm"
 # mingw builds
 RUNTIMETARGET_remove_mingw32 = "libmpx"
 
-DEPENDS_append_mingw32 = " pthreads-win32"
+DEPENDS_append_mingw32 = " nativesdk-mingw-w64-winpthreads"
diff --git a/recipes-devtools/gcc/libgcc_%.bbappend b/recipes-devtools/gcc/libgcc_%.bbappend
index 2a95d02..f542cfc 100644
--- a/recipes-devtools/gcc/libgcc_%.bbappend
+++ b/recipes-devtools/gcc/libgcc_%.bbappend
@@ -1,3 +1,5 @@ 
+DEPENDS_append_mingw32 = " nativesdk-mingw-w64-winpthreads"
+
 FILES_${PN}_append_mingw32 = " ${bindir}/libgcc*.dll"
 FILES_${PN}-dev_append_mingw32 = " ${base_libdir}/libgcc*.a"
 
diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb
index e129c32..009e5af 100644
--- a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb
+++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb
@@ -31,4 +31,9 @@  do_compile() {
 	:
 }
 
+do_install_append() {
+    # install correct pthread headers
+    install -m 0644 -t ${D}${includedir} ${S}/../mingw-w64-libraries/winpthreads/include/*.h
+}
+
 FILES_${PN} += "${exec_prefix}/${TARGET_SYS}"
diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb
new file mode 100644
index 0000000..1308760
--- /dev/null
+++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb
@@ -0,0 +1,31 @@ 
+DESCRIPTION = "Winpthreads runtime libraries from MinGW-w64 project"
+LICENSE = "ZPL-2.1"
+LIC_FILES_CHKSUM = "file://../../COPYING;md5=bb936f0e04d8f1e19ad545100cee9654"
+
+COMPATIBLE_HOST = ".*-mingw.*"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v${PV}.tar.bz2"
+SRC_URI[md5sum] = "5524c20312560cc8683b7d8ee292cb8c"
+SRC_URI[sha256sum] = "2a601db99ef579b9be69c775218ad956a24a09d7dabc9ff6c5bd60da9ccc9cb4"
+
+S = "${WORKDIR}/mingw-w64-v${PV}/mingw-w64-libraries/winpthreads"
+B = "${WORKDIR}/build-${TARGET_SYS}"
+
+inherit autotools nativesdk
+
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS = "nativesdk-mingw-w64-runtime virtual/${TARGET_PREFIX}gcc-initial"
+
+do_configure() {
+    oe_runconf
+}
+
+STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}"
+TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
+PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
+
+do_install_append() {
+    # headers are already installed by mingw-w64-headers
+    rm -rf ${D}${includedir}
+}
diff --git a/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb b/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb
deleted file mode 100644
index e4a0f80..0000000
--- a/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb
+++ /dev/null
@@ -1,47 +0,0 @@ 
-DESCRIPTION = "A Win32 implementation of the POSIX standard threads API"
-HOMEPAGE = "http://www.sourceware.org/pthreads-win32"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34"
-
-BBCLASSEXTEND = "nativesdk"
-
-COMPATIBLE_HOST = ".*-mingw.*"
-
-## Replace dots with dashes
-PVdash = "2-9-1"
-
-## cvs -d :pserver:anonymous@sourceware.org:/cvs/pthreads-win32 checkout pthreads
-SRC_URI = "ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-${PVdash}-release.tar.gz"
-SRC_URI[md5sum] = "36ba827d6aa0fa9f9ae740a35626e2e3"
-SRC_URI[sha256sum] = "e6aca7aea8de33d9c8580bcb3a0ea3ec0a7ace4ba3f4e263ac7c7b66bc95fb4d"
-
-## Reference: http://sourceware.org/ml/pthreads-win32/2009/msg00030/w64sup.patch
-#SRC_URI += "file://w64sup.patch"
-
-S = "${WORKDIR}/pthreads-w32-${PVdash}-release"
-
-INHIBIT_DEFAULT_DEPS = "1"
-DEPENDS = "virtual/${SDK_PREFIX}gcc libgcc virtual/libc"
-
-do_configure_prepend() {
-    ## First reset all permissions because all are executable
-    find . -type f -exec chmod 644 {} \;
-    ## Make a copy of config.h
-    cp config.h pthreads_win32_config.h
-}
-
-do_compile() {
-    make -f GNUmakefile CROSS=${SDK_PREFIX} CC="${CC}" RC="${WINDRES}" clean GC
-}
-
-do_install() {
-    install -d -m 0755 ${D}${bindir}
-    install -d -m 0755 ${D}${includedir}
-    install -d -m 0755 ${D}${libdir}
-
-    install -m 0644 ${S}/pthread.h ${S}/sched.h ${S}/semaphore.h ${D}${includedir}/
-
-    install -m 0644 ${S}/libpthreadGC2.a ${D}${libdir}/libpthread.dll.a
-    install -m 0644 ${S}/pthreadGC2.dll ${D}${bindir}/libpthread-2.dll
-    install -m 0644 ${S}/pthreadGC2.dll ${D}${bindir}/pthreadGC2.dll
-}

Comments

Ross Burton Nov. 15, 2018, 5:21 p.m.
I see 1/2 but no 2/2, presumably this missing patch is the PIE one?

Ross
On Thu, 15 Nov 2018 at 16:04, Samuli Piippo <samuli.piippo@qt.io> wrote:
>
> Use the winpthreads library available in the mingw64 and
> change the thread model from win32 to posix to get access
> to c++11 features.
>
> Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
> ---
>  conf/machine-sdk/include/mingw32-common.inc   |  2 -
>  recipes-core/gettext/gettext_0.19.%.bbappend  |  5 +-
>  recipes-devtools/gcc/gcc-runtime_%.bbappend   |  2 +-
>  recipes-devtools/gcc/libgcc_%.bbappend        |  2 +
>  .../nativesdk-mingw-w64-headers_5.0.3.bb      |  5 ++
>  .../nativesdk-mingw-w64-winpthreads_5.0.3.bb  | 31 ++++++++++++
>  .../pthreads-win32/pthreads-win32_2.9.1.bb    | 47 -------------------
>  7 files changed, 40 insertions(+), 54 deletions(-)
>  create mode 100644 recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb
>  delete mode 100644 recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb
>
> diff --git a/conf/machine-sdk/include/mingw32-common.inc b/conf/machine-sdk/include/mingw32-common.inc
> index cd56380..733d092 100644
> --- a/conf/machine-sdk/include/mingw32-common.inc
> +++ b/conf/machine-sdk/include/mingw32-common.inc
> @@ -1,8 +1,6 @@
>  SDK_OS = "mingw32"
>  NATIVESDKLIBC = "libc-mingw"
>
> -GCCTHREADS_mingw32 = "win32"
> -
>  PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc_mingw32 = "nativesdk-mingw-w64-runtime"
>  PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial_mingw32 = "nativesdk-mingw-w64-runtime"
>  PREFERRED_PROVIDER_virtual/nativesdk-libc = "nativesdk-mingw-w64-runtime"
> diff --git a/recipes-core/gettext/gettext_0.19.%.bbappend b/recipes-core/gettext/gettext_0.19.%.bbappend
> index b26b734..21749f3 100644
> --- a/recipes-core/gettext/gettext_0.19.%.bbappend
> +++ b/recipes-core/gettext/gettext_0.19.%.bbappend
> @@ -1,7 +1,4 @@
> -DEPENDS_append_mingw32 = " pthreads-win32"
> -LDFLAGS_prepend_mingw32 = " -lpthread "
> -
> -EXTRA_OECONF_append_mingw32 = " --enable-threads=windows --enable-static"
> +EXTRA_OECONF_append_mingw32 = " --enable-static"
>
>  FILESEXTRAPATHS_prepend_mingw32 := "${THISDIR}/${BPN}:"
>  SRC_URI_append_mingw32 = " \
> diff --git a/recipes-devtools/gcc/gcc-runtime_%.bbappend b/recipes-devtools/gcc/gcc-runtime_%.bbappend
> index 1641cb9..f14edf1 100644
> --- a/recipes-devtools/gcc/gcc-runtime_%.bbappend
> +++ b/recipes-devtools/gcc/gcc-runtime_%.bbappend
> @@ -11,4 +11,4 @@ RUNTIMETARGET_remove_mingw32 = "libitm"
>  # mingw builds
>  RUNTIMETARGET_remove_mingw32 = "libmpx"
>
> -DEPENDS_append_mingw32 = " pthreads-win32"
> +DEPENDS_append_mingw32 = " nativesdk-mingw-w64-winpthreads"
> diff --git a/recipes-devtools/gcc/libgcc_%.bbappend b/recipes-devtools/gcc/libgcc_%.bbappend
> index 2a95d02..f542cfc 100644
> --- a/recipes-devtools/gcc/libgcc_%.bbappend
> +++ b/recipes-devtools/gcc/libgcc_%.bbappend
> @@ -1,3 +1,5 @@
> +DEPENDS_append_mingw32 = " nativesdk-mingw-w64-winpthreads"
> +
>  FILES_${PN}_append_mingw32 = " ${bindir}/libgcc*.dll"
>  FILES_${PN}-dev_append_mingw32 = " ${base_libdir}/libgcc*.a"
>
> diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb
> index e129c32..009e5af 100644
> --- a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb
> +++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb
> @@ -31,4 +31,9 @@ do_compile() {
>         :
>  }
>
> +do_install_append() {
> +    # install correct pthread headers
> +    install -m 0644 -t ${D}${includedir} ${S}/../mingw-w64-libraries/winpthreads/include/*.h
> +}
> +
>  FILES_${PN} += "${exec_prefix}/${TARGET_SYS}"
> diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb
> new file mode 100644
> index 0000000..1308760
> --- /dev/null
> +++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb
> @@ -0,0 +1,31 @@
> +DESCRIPTION = "Winpthreads runtime libraries from MinGW-w64 project"
> +LICENSE = "ZPL-2.1"
> +LIC_FILES_CHKSUM = "file://../../COPYING;md5=bb936f0e04d8f1e19ad545100cee9654"
> +
> +COMPATIBLE_HOST = ".*-mingw.*"
> +
> +SRC_URI = "${SOURCEFORGE_MIRROR}/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v${PV}.tar.bz2"
> +SRC_URI[md5sum] = "5524c20312560cc8683b7d8ee292cb8c"
> +SRC_URI[sha256sum] = "2a601db99ef579b9be69c775218ad956a24a09d7dabc9ff6c5bd60da9ccc9cb4"
> +
> +S = "${WORKDIR}/mingw-w64-v${PV}/mingw-w64-libraries/winpthreads"
> +B = "${WORKDIR}/build-${TARGET_SYS}"
> +
> +inherit autotools nativesdk
> +
> +INHIBIT_DEFAULT_DEPS = "1"
> +DEPENDS = "nativesdk-mingw-w64-runtime virtual/${TARGET_PREFIX}gcc-initial"
> +
> +do_configure() {
> +    oe_runconf
> +}
> +
> +STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
> +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}"
> +TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
> +PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
> +
> +do_install_append() {
> +    # headers are already installed by mingw-w64-headers
> +    rm -rf ${D}${includedir}
> +}
> diff --git a/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb b/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb
> deleted file mode 100644
> index e4a0f80..0000000
> --- a/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -DESCRIPTION = "A Win32 implementation of the POSIX standard threads API"
> -HOMEPAGE = "http://www.sourceware.org/pthreads-win32"
> -LICENSE = "LGPLv2.1"
> -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34"
> -
> -BBCLASSEXTEND = "nativesdk"
> -
> -COMPATIBLE_HOST = ".*-mingw.*"
> -
> -## Replace dots with dashes
> -PVdash = "2-9-1"
> -
> -## cvs -d :pserver:anonymous@sourceware.org:/cvs/pthreads-win32 checkout pthreads
> -SRC_URI = "ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-${PVdash}-release.tar.gz"
> -SRC_URI[md5sum] = "36ba827d6aa0fa9f9ae740a35626e2e3"
> -SRC_URI[sha256sum] = "e6aca7aea8de33d9c8580bcb3a0ea3ec0a7ace4ba3f4e263ac7c7b66bc95fb4d"
> -
> -## Reference: http://sourceware.org/ml/pthreads-win32/2009/msg00030/w64sup.patch
> -#SRC_URI += "file://w64sup.patch"
> -
> -S = "${WORKDIR}/pthreads-w32-${PVdash}-release"
> -
> -INHIBIT_DEFAULT_DEPS = "1"
> -DEPENDS = "virtual/${SDK_PREFIX}gcc libgcc virtual/libc"
> -
> -do_configure_prepend() {
> -    ## First reset all permissions because all are executable
> -    find . -type f -exec chmod 644 {} \;
> -    ## Make a copy of config.h
> -    cp config.h pthreads_win32_config.h
> -}
> -
> -do_compile() {
> -    make -f GNUmakefile CROSS=${SDK_PREFIX} CC="${CC}" RC="${WINDRES}" clean GC
> -}
> -
> -do_install() {
> -    install -d -m 0755 ${D}${bindir}
> -    install -d -m 0755 ${D}${includedir}
> -    install -d -m 0755 ${D}${libdir}
> -
> -    install -m 0644 ${S}/pthread.h ${S}/sched.h ${S}/semaphore.h ${D}${includedir}/
> -
> -    install -m 0644 ${S}/libpthreadGC2.a ${D}${libdir}/libpthread.dll.a
> -    install -m 0644 ${S}/pthreadGC2.dll ${D}${bindir}/libpthread-2.dll
> -    install -m 0644 ${S}/pthreadGC2.dll ${D}${bindir}/pthreadGC2.dll
> -}
> --
> 2.17.1
>
> --
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
Samuli Piippo Nov. 15, 2018, 5:31 p.m.
2/2 is also unrelated, there should 3 patches from me, sent at the same time. Don’t know where they got stuck.

> On 15 Nov 2018, at 19.21, Burton, Ross <ross.burton@intel.com> wrote:

> 

> I see 1/2 but no 2/2, presumably this missing patch is the PIE one?

> 

> Ross

>> On Thu, 15 Nov 2018 at 16:04, Samuli Piippo <samuli.piippo@qt.io> wrote:

>> 

>> Use the winpthreads library available in the mingw64 and

>> change the thread model from win32 to posix to get access

>> to c++11 features.

>> 

>> Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>

>> ---

>> conf/machine-sdk/include/mingw32-common.inc   |  2 -

>> recipes-core/gettext/gettext_0.19.%.bbappend  |  5 +-

>> recipes-devtools/gcc/gcc-runtime_%.bbappend   |  2 +-

>> recipes-devtools/gcc/libgcc_%.bbappend        |  2 +

>> .../nativesdk-mingw-w64-headers_5.0.3.bb      |  5 ++

>> .../nativesdk-mingw-w64-winpthreads_5.0.3.bb  | 31 ++++++++++++

>> .../pthreads-win32/pthreads-win32_2.9.1.bb    | 47 -------------------

>> 7 files changed, 40 insertions(+), 54 deletions(-)

>> create mode 100644 recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb

>> delete mode 100644 recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb

>> 

>> diff --git a/conf/machine-sdk/include/mingw32-common.inc b/conf/machine-sdk/include/mingw32-common.inc

>> index cd56380..733d092 100644

>> --- a/conf/machine-sdk/include/mingw32-common.inc

>> +++ b/conf/machine-sdk/include/mingw32-common.inc

>> @@ -1,8 +1,6 @@

>> SDK_OS = "mingw32"

>> NATIVESDKLIBC = "libc-mingw"

>> 

>> -GCCTHREADS_mingw32 = "win32"

>> -

>> PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc_mingw32 = "nativesdk-mingw-w64-runtime"

>> PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial_mingw32 = "nativesdk-mingw-w64-runtime"

>> PREFERRED_PROVIDER_virtual/nativesdk-libc = "nativesdk-mingw-w64-runtime"

>> diff --git a/recipes-core/gettext/gettext_0.19.%.bbappend b/recipes-core/gettext/gettext_0.19.%.bbappend

>> index b26b734..21749f3 100644

>> --- a/recipes-core/gettext/gettext_0.19.%.bbappend

>> +++ b/recipes-core/gettext/gettext_0.19.%.bbappend

>> @@ -1,7 +1,4 @@

>> -DEPENDS_append_mingw32 = " pthreads-win32"

>> -LDFLAGS_prepend_mingw32 = " -lpthread "

>> -

>> -EXTRA_OECONF_append_mingw32 = " --enable-threads=windows --enable-static"

>> +EXTRA_OECONF_append_mingw32 = " --enable-static"

>> 

>> FILESEXTRAPATHS_prepend_mingw32 := "${THISDIR}/${BPN}:"

>> SRC_URI_append_mingw32 = " \

>> diff --git a/recipes-devtools/gcc/gcc-runtime_%.bbappend b/recipes-devtools/gcc/gcc-runtime_%.bbappend

>> index 1641cb9..f14edf1 100644

>> --- a/recipes-devtools/gcc/gcc-runtime_%.bbappend

>> +++ b/recipes-devtools/gcc/gcc-runtime_%.bbappend

>> @@ -11,4 +11,4 @@ RUNTIMETARGET_remove_mingw32 = "libitm"

>> # mingw builds

>> RUNTIMETARGET_remove_mingw32 = "libmpx"

>> 

>> -DEPENDS_append_mingw32 = " pthreads-win32"

>> +DEPENDS_append_mingw32 = " nativesdk-mingw-w64-winpthreads"

>> diff --git a/recipes-devtools/gcc/libgcc_%.bbappend b/recipes-devtools/gcc/libgcc_%.bbappend

>> index 2a95d02..f542cfc 100644

>> --- a/recipes-devtools/gcc/libgcc_%.bbappend

>> +++ b/recipes-devtools/gcc/libgcc_%.bbappend

>> @@ -1,3 +1,5 @@

>> +DEPENDS_append_mingw32 = " nativesdk-mingw-w64-winpthreads"

>> +

>> FILES_${PN}_append_mingw32 = " ${bindir}/libgcc*.dll"

>> FILES_${PN}-dev_append_mingw32 = " ${base_libdir}/libgcc*.a"

>> 

>> diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb

>> index e129c32..009e5af 100644

>> --- a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb

>> +++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb

>> @@ -31,4 +31,9 @@ do_compile() {

>>        :

>> }

>> 

>> +do_install_append() {

>> +    # install correct pthread headers

>> +    install -m 0644 -t ${D}${includedir} ${S}/../mingw-w64-libraries/winpthreads/include/*.h

>> +}

>> +

>> FILES_${PN} += "${exec_prefix}/${TARGET_SYS}"

>> diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb

>> new file mode 100644

>> index 0000000..1308760

>> --- /dev/null

>> +++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb

>> @@ -0,0 +1,31 @@

>> +DESCRIPTION = "Winpthreads runtime libraries from MinGW-w64 project"

>> +LICENSE = "ZPL-2.1"

>> +LIC_FILES_CHKSUM = "file://../../COPYING;md5=bb936f0e04d8f1e19ad545100cee9654"

>> +

>> +COMPATIBLE_HOST = ".*-mingw.*"

>> +

>> +SRC_URI = "${SOURCEFORGE_MIRROR}/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v${PV}.tar.bz2"

>> +SRC_URI[md5sum] = "5524c20312560cc8683b7d8ee292cb8c"

>> +SRC_URI[sha256sum] = "2a601db99ef579b9be69c775218ad956a24a09d7dabc9ff6c5bd60da9ccc9cb4"

>> +

>> +S = "${WORKDIR}/mingw-w64-v${PV}/mingw-w64-libraries/winpthreads"

>> +B = "${WORKDIR}/build-${TARGET_SYS}"

>> +

>> +inherit autotools nativesdk

>> +

>> +INHIBIT_DEFAULT_DEPS = "1"

>> +DEPENDS = "nativesdk-mingw-w64-runtime virtual/${TARGET_PREFIX}gcc-initial"

>> +

>> +do_configure() {

>> +    oe_runconf

>> +}

>> +

>> +STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"

>> +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}"

>> +TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"

>> +PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"

>> +

>> +do_install_append() {

>> +    # headers are already installed by mingw-w64-headers

>> +    rm -rf ${D}${includedir}

>> +}

>> diff --git a/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb b/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb

>> deleted file mode 100644

>> index e4a0f80..0000000

>> --- a/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb

>> +++ /dev/null

>> @@ -1,47 +0,0 @@

>> -DESCRIPTION = "A Win32 implementation of the POSIX standard threads API"

>> -HOMEPAGE = "http://www.sourceware.org/pthreads-win32"

>> -LICENSE = "LGPLv2.1"

>> -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34"

>> -

>> -BBCLASSEXTEND = "nativesdk"

>> -

>> -COMPATIBLE_HOST = ".*-mingw.*"

>> -

>> -## Replace dots with dashes

>> -PVdash = "2-9-1"

>> -

>> -## cvs -d :pserver:anonymous@sourceware.org:/cvs/pthreads-win32 checkout pthreads

>> -SRC_URI = "ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-${PVdash}-release.tar.gz"

>> -SRC_URI[md5sum] = "36ba827d6aa0fa9f9ae740a35626e2e3"

>> -SRC_URI[sha256sum] = "e6aca7aea8de33d9c8580bcb3a0ea3ec0a7ace4ba3f4e263ac7c7b66bc95fb4d"

>> -

>> -## Reference: http://sourceware.org/ml/pthreads-win32/2009/msg00030/w64sup.patch

>> -#SRC_URI += "file://w64sup.patch"

>> -

>> -S = "${WORKDIR}/pthreads-w32-${PVdash}-release"

>> -

>> -INHIBIT_DEFAULT_DEPS = "1"

>> -DEPENDS = "virtual/${SDK_PREFIX}gcc libgcc virtual/libc"

>> -

>> -do_configure_prepend() {

>> -    ## First reset all permissions because all are executable

>> -    find . -type f -exec chmod 644 {} \;

>> -    ## Make a copy of config.h

>> -    cp config.h pthreads_win32_config.h

>> -}

>> -

>> -do_compile() {

>> -    make -f GNUmakefile CROSS=${SDK_PREFIX} CC="${CC}" RC="${WINDRES}" clean GC

>> -}

>> -

>> -do_install() {

>> -    install -d -m 0755 ${D}${bindir}

>> -    install -d -m 0755 ${D}${includedir}

>> -    install -d -m 0755 ${D}${libdir}

>> -

>> -    install -m 0644 ${S}/pthread.h ${S}/sched.h ${S}/semaphore.h ${D}${includedir}/

>> -

>> -    install -m 0644 ${S}/libpthreadGC2.a ${D}${libdir}/libpthread.dll.a

>> -    install -m 0644 ${S}/pthreadGC2.dll ${D}${bindir}/libpthread-2.dll

>> -    install -m 0644 ${S}/pthreadGC2.dll ${D}${bindir}/pthreadGC2.dll

>> -}

>> --

>> 2.17.1

>> 

>> --

>> _______________________________________________

>> yocto mailing list

>> yocto@yoctoproject.org

>> https://lists.yoctoproject.org/listinfo/yocto
Ross Burton Nov. 15, 2018, 5:33 p.m.
Weird.

Can you push them to a git repo?

Ross
On Thu, 15 Nov 2018 at 17:32, Samuli Piippo <samuli.piippo@qt.io> wrote:
>
>
> 2/2 is also unrelated, there should 3 patches from me, sent at the same time. Don’t know where they got stuck.
>
> > On 15 Nov 2018, at 19.21, Burton, Ross <ross.burton@intel.com> wrote:
> >
> > I see 1/2 but no 2/2, presumably this missing patch is the PIE one?
> >
> > Ross
> >> On Thu, 15 Nov 2018 at 16:04, Samuli Piippo <samuli.piippo@qt.io> wrote:
> >>
> >> Use the winpthreads library available in the mingw64 and
> >> change the thread model from win32 to posix to get access
> >> to c++11 features.
> >>
> >> Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
> >> ---
> >> conf/machine-sdk/include/mingw32-common.inc   |  2 -
> >> recipes-core/gettext/gettext_0.19.%.bbappend  |  5 +-
> >> recipes-devtools/gcc/gcc-runtime_%.bbappend   |  2 +-
> >> recipes-devtools/gcc/libgcc_%.bbappend        |  2 +
> >> .../nativesdk-mingw-w64-headers_5.0.3.bb      |  5 ++
> >> .../nativesdk-mingw-w64-winpthreads_5.0.3.bb  | 31 ++++++++++++
> >> .../pthreads-win32/pthreads-win32_2.9.1.bb    | 47 -------------------
> >> 7 files changed, 40 insertions(+), 54 deletions(-)
> >> create mode 100644 recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb
> >> delete mode 100644 recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb
> >>
> >> diff --git a/conf/machine-sdk/include/mingw32-common.inc b/conf/machine-sdk/include/mingw32-common.inc
> >> index cd56380..733d092 100644
> >> --- a/conf/machine-sdk/include/mingw32-common.inc
> >> +++ b/conf/machine-sdk/include/mingw32-common.inc
> >> @@ -1,8 +1,6 @@
> >> SDK_OS = "mingw32"
> >> NATIVESDKLIBC = "libc-mingw"
> >>
> >> -GCCTHREADS_mingw32 = "win32"
> >> -
> >> PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc_mingw32 = "nativesdk-mingw-w64-runtime"
> >> PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial_mingw32 = "nativesdk-mingw-w64-runtime"
> >> PREFERRED_PROVIDER_virtual/nativesdk-libc = "nativesdk-mingw-w64-runtime"
> >> diff --git a/recipes-core/gettext/gettext_0.19.%.bbappend b/recipes-core/gettext/gettext_0.19.%.bbappend
> >> index b26b734..21749f3 100644
> >> --- a/recipes-core/gettext/gettext_0.19.%.bbappend
> >> +++ b/recipes-core/gettext/gettext_0.19.%.bbappend
> >> @@ -1,7 +1,4 @@
> >> -DEPENDS_append_mingw32 = " pthreads-win32"
> >> -LDFLAGS_prepend_mingw32 = " -lpthread "
> >> -
> >> -EXTRA_OECONF_append_mingw32 = " --enable-threads=windows --enable-static"
> >> +EXTRA_OECONF_append_mingw32 = " --enable-static"
> >>
> >> FILESEXTRAPATHS_prepend_mingw32 := "${THISDIR}/${BPN}:"
> >> SRC_URI_append_mingw32 = " \
> >> diff --git a/recipes-devtools/gcc/gcc-runtime_%.bbappend b/recipes-devtools/gcc/gcc-runtime_%.bbappend
> >> index 1641cb9..f14edf1 100644
> >> --- a/recipes-devtools/gcc/gcc-runtime_%.bbappend
> >> +++ b/recipes-devtools/gcc/gcc-runtime_%.bbappend
> >> @@ -11,4 +11,4 @@ RUNTIMETARGET_remove_mingw32 = "libitm"
> >> # mingw builds
> >> RUNTIMETARGET_remove_mingw32 = "libmpx"
> >>
> >> -DEPENDS_append_mingw32 = " pthreads-win32"
> >> +DEPENDS_append_mingw32 = " nativesdk-mingw-w64-winpthreads"
> >> diff --git a/recipes-devtools/gcc/libgcc_%.bbappend b/recipes-devtools/gcc/libgcc_%.bbappend
> >> index 2a95d02..f542cfc 100644
> >> --- a/recipes-devtools/gcc/libgcc_%.bbappend
> >> +++ b/recipes-devtools/gcc/libgcc_%.bbappend
> >> @@ -1,3 +1,5 @@
> >> +DEPENDS_append_mingw32 = " nativesdk-mingw-w64-winpthreads"
> >> +
> >> FILES_${PN}_append_mingw32 = " ${bindir}/libgcc*.dll"
> >> FILES_${PN}-dev_append_mingw32 = " ${base_libdir}/libgcc*.a"
> >>
> >> diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb
> >> index e129c32..009e5af 100644
> >> --- a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb
> >> +++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb
> >> @@ -31,4 +31,9 @@ do_compile() {
> >>        :
> >> }
> >>
> >> +do_install_append() {
> >> +    # install correct pthread headers
> >> +    install -m 0644 -t ${D}${includedir} ${S}/../mingw-w64-libraries/winpthreads/include/*.h
> >> +}
> >> +
> >> FILES_${PN} += "${exec_prefix}/${TARGET_SYS}"
> >> diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb
> >> new file mode 100644
> >> index 0000000..1308760
> >> --- /dev/null
> >> +++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb
> >> @@ -0,0 +1,31 @@
> >> +DESCRIPTION = "Winpthreads runtime libraries from MinGW-w64 project"
> >> +LICENSE = "ZPL-2.1"
> >> +LIC_FILES_CHKSUM = "file://../../COPYING;md5=bb936f0e04d8f1e19ad545100cee9654"
> >> +
> >> +COMPATIBLE_HOST = ".*-mingw.*"
> >> +
> >> +SRC_URI = "${SOURCEFORGE_MIRROR}/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v${PV}.tar.bz2"
> >> +SRC_URI[md5sum] = "5524c20312560cc8683b7d8ee292cb8c"
> >> +SRC_URI[sha256sum] = "2a601db99ef579b9be69c775218ad956a24a09d7dabc9ff6c5bd60da9ccc9cb4"
> >> +
> >> +S = "${WORKDIR}/mingw-w64-v${PV}/mingw-w64-libraries/winpthreads"
> >> +B = "${WORKDIR}/build-${TARGET_SYS}"
> >> +
> >> +inherit autotools nativesdk
> >> +
> >> +INHIBIT_DEFAULT_DEPS = "1"
> >> +DEPENDS = "nativesdk-mingw-w64-runtime virtual/${TARGET_PREFIX}gcc-initial"
> >> +
> >> +do_configure() {
> >> +    oe_runconf
> >> +}
> >> +
> >> +STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
> >> +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}"
> >> +TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
> >> +PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
> >> +
> >> +do_install_append() {
> >> +    # headers are already installed by mingw-w64-headers
> >> +    rm -rf ${D}${includedir}
> >> +}
> >> diff --git a/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb b/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb
> >> deleted file mode 100644
> >> index e4a0f80..0000000
> >> --- a/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb
> >> +++ /dev/null
> >> @@ -1,47 +0,0 @@
> >> -DESCRIPTION = "A Win32 implementation of the POSIX standard threads API"
> >> -HOMEPAGE = "http://www.sourceware.org/pthreads-win32"
> >> -LICENSE = "LGPLv2.1"
> >> -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34"
> >> -
> >> -BBCLASSEXTEND = "nativesdk"
> >> -
> >> -COMPATIBLE_HOST = ".*-mingw.*"
> >> -
> >> -## Replace dots with dashes
> >> -PVdash = "2-9-1"
> >> -
> >> -## cvs -d :pserver:anonymous@sourceware.org:/cvs/pthreads-win32 checkout pthreads
> >> -SRC_URI = "ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-${PVdash}-release.tar.gz"
> >> -SRC_URI[md5sum] = "36ba827d6aa0fa9f9ae740a35626e2e3"
> >> -SRC_URI[sha256sum] = "e6aca7aea8de33d9c8580bcb3a0ea3ec0a7ace4ba3f4e263ac7c7b66bc95fb4d"
> >> -
> >> -## Reference: http://sourceware.org/ml/pthreads-win32/2009/msg00030/w64sup.patch
> >> -#SRC_URI += "file://w64sup.patch"
> >> -
> >> -S = "${WORKDIR}/pthreads-w32-${PVdash}-release"
> >> -
> >> -INHIBIT_DEFAULT_DEPS = "1"
> >> -DEPENDS = "virtual/${SDK_PREFIX}gcc libgcc virtual/libc"
> >> -
> >> -do_configure_prepend() {
> >> -    ## First reset all permissions because all are executable
> >> -    find . -type f -exec chmod 644 {} \;
> >> -    ## Make a copy of config.h
> >> -    cp config.h pthreads_win32_config.h
> >> -}
> >> -
> >> -do_compile() {
> >> -    make -f GNUmakefile CROSS=${SDK_PREFIX} CC="${CC}" RC="${WINDRES}" clean GC
> >> -}
> >> -
> >> -do_install() {
> >> -    install -d -m 0755 ${D}${bindir}
> >> -    install -d -m 0755 ${D}${includedir}
> >> -    install -d -m 0755 ${D}${libdir}
> >> -
> >> -    install -m 0644 ${S}/pthread.h ${S}/sched.h ${S}/semaphore.h ${D}${includedir}/
> >> -
> >> -    install -m 0644 ${S}/libpthreadGC2.a ${D}${libdir}/libpthread.dll.a
> >> -    install -m 0644 ${S}/pthreadGC2.dll ${D}${bindir}/libpthread-2.dll
> >> -    install -m 0644 ${S}/pthreadGC2.dll ${D}${bindir}/pthreadGC2.dll
> >> -}
> >> --
> >> 2.17.1
> >>
> >> --
> >> _______________________________________________
> >> yocto mailing list
> >> yocto@yoctoproject.org
> >> https://lists.yoctoproject.org/listinfo/yocto
Samuli Piippo Nov. 15, 2018, 5:45 p.m.
Sure, it’ll take me couple of hours though.
Let’s see if the missing emails appear meanwhile.

> On 15 Nov 2018, at 19.33, Burton, Ross <ross.burton@intel.com> wrote:

> 

> Weird.

> 

> Can you push them to a git repo?

> 

> Ross

>> On Thu, 15 Nov 2018 at 17:32, Samuli Piippo <samuli.piippo@qt.io> wrote:

>> 

>> 

>> 2/2 is also unrelated, there should 3 patches from me, sent at the same time. Don’t know where they got stuck.

>> 

>>> On 15 Nov 2018, at 19.21, Burton, Ross <ross.burton@intel.com> wrote:

>>> 

>>> I see 1/2 but no 2/2, presumably this missing patch is the PIE one?

>>> 

>>> Ross

>>>> On Thu, 15 Nov 2018 at 16:04, Samuli Piippo <samuli.piippo@qt.io> wrote:

>>>> 

>>>> Use the winpthreads library available in the mingw64 and

>>>> change the thread model from win32 to posix to get access

>>>> to c++11 features.

>>>> 

>>>> Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>

>>>> ---

>>>> conf/machine-sdk/include/mingw32-common.inc   |  2 -

>>>> recipes-core/gettext/gettext_0.19.%.bbappend  |  5 +-

>>>> recipes-devtools/gcc/gcc-runtime_%.bbappend   |  2 +-

>>>> recipes-devtools/gcc/libgcc_%.bbappend        |  2 +

>>>> .../nativesdk-mingw-w64-headers_5.0.3.bb      |  5 ++

>>>> .../nativesdk-mingw-w64-winpthreads_5.0.3.bb  | 31 ++++++++++++

>>>> .../pthreads-win32/pthreads-win32_2.9.1.bb    | 47 -------------------

>>>> 7 files changed, 40 insertions(+), 54 deletions(-)

>>>> create mode 100644 recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb

>>>> delete mode 100644 recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb

>>>> 

>>>> diff --git a/conf/machine-sdk/include/mingw32-common.inc b/conf/machine-sdk/include/mingw32-common.inc

>>>> index cd56380..733d092 100644

>>>> --- a/conf/machine-sdk/include/mingw32-common.inc

>>>> +++ b/conf/machine-sdk/include/mingw32-common.inc

>>>> @@ -1,8 +1,6 @@

>>>> SDK_OS = "mingw32"

>>>> NATIVESDKLIBC = "libc-mingw"

>>>> 

>>>> -GCCTHREADS_mingw32 = "win32"

>>>> -

>>>> PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc_mingw32 = "nativesdk-mingw-w64-runtime"

>>>> PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial_mingw32 = "nativesdk-mingw-w64-runtime"

>>>> PREFERRED_PROVIDER_virtual/nativesdk-libc = "nativesdk-mingw-w64-runtime"

>>>> diff --git a/recipes-core/gettext/gettext_0.19.%.bbappend b/recipes-core/gettext/gettext_0.19.%.bbappend

>>>> index b26b734..21749f3 100644

>>>> --- a/recipes-core/gettext/gettext_0.19.%.bbappend

>>>> +++ b/recipes-core/gettext/gettext_0.19.%.bbappend

>>>> @@ -1,7 +1,4 @@

>>>> -DEPENDS_append_mingw32 = " pthreads-win32"

>>>> -LDFLAGS_prepend_mingw32 = " -lpthread "

>>>> -

>>>> -EXTRA_OECONF_append_mingw32 = " --enable-threads=windows --enable-static"

>>>> +EXTRA_OECONF_append_mingw32 = " --enable-static"

>>>> 

>>>> FILESEXTRAPATHS_prepend_mingw32 := "${THISDIR}/${BPN}:"

>>>> SRC_URI_append_mingw32 = " \

>>>> diff --git a/recipes-devtools/gcc/gcc-runtime_%.bbappend b/recipes-devtools/gcc/gcc-runtime_%.bbappend

>>>> index 1641cb9..f14edf1 100644

>>>> --- a/recipes-devtools/gcc/gcc-runtime_%.bbappend

>>>> +++ b/recipes-devtools/gcc/gcc-runtime_%.bbappend

>>>> @@ -11,4 +11,4 @@ RUNTIMETARGET_remove_mingw32 = "libitm"

>>>> # mingw builds

>>>> RUNTIMETARGET_remove_mingw32 = "libmpx"

>>>> 

>>>> -DEPENDS_append_mingw32 = " pthreads-win32"

>>>> +DEPENDS_append_mingw32 = " nativesdk-mingw-w64-winpthreads"

>>>> diff --git a/recipes-devtools/gcc/libgcc_%.bbappend b/recipes-devtools/gcc/libgcc_%.bbappend

>>>> index 2a95d02..f542cfc 100644

>>>> --- a/recipes-devtools/gcc/libgcc_%.bbappend

>>>> +++ b/recipes-devtools/gcc/libgcc_%.bbappend

>>>> @@ -1,3 +1,5 @@

>>>> +DEPENDS_append_mingw32 = " nativesdk-mingw-w64-winpthreads"

>>>> +

>>>> FILES_${PN}_append_mingw32 = " ${bindir}/libgcc*.dll"

>>>> FILES_${PN}-dev_append_mingw32 = " ${base_libdir}/libgcc*.a"

>>>> 

>>>> diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb

>>>> index e129c32..009e5af 100644

>>>> --- a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb

>>>> +++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-headers_5.0.3.bb

>>>> @@ -31,4 +31,9 @@ do_compile() {

>>>>       :

>>>> }

>>>> 

>>>> +do_install_append() {

>>>> +    # install correct pthread headers

>>>> +    install -m 0644 -t ${D}${includedir} ${S}/../mingw-w64-libraries/winpthreads/include/*.h

>>>> +}

>>>> +

>>>> FILES_${PN} += "${exec_prefix}/${TARGET_SYS}"

>>>> diff --git a/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb

>>>> new file mode 100644

>>>> index 0000000..1308760

>>>> --- /dev/null

>>>> +++ b/recipes-devtools/mingw-w64/nativesdk-mingw-w64-winpthreads_5.0.3.bb

>>>> @@ -0,0 +1,31 @@

>>>> +DESCRIPTION = "Winpthreads runtime libraries from MinGW-w64 project"

>>>> +LICENSE = "ZPL-2.1"

>>>> +LIC_FILES_CHKSUM = "file://../../COPYING;md5=bb936f0e04d8f1e19ad545100cee9654"

>>>> +

>>>> +COMPATIBLE_HOST = ".*-mingw.*"

>>>> +

>>>> +SRC_URI = "${SOURCEFORGE_MIRROR}/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v${PV}.tar.bz2"

>>>> +SRC_URI[md5sum] = "5524c20312560cc8683b7d8ee292cb8c"

>>>> +SRC_URI[sha256sum] = "2a601db99ef579b9be69c775218ad956a24a09d7dabc9ff6c5bd60da9ccc9cb4"

>>>> +

>>>> +S = "${WORKDIR}/mingw-w64-v${PV}/mingw-w64-libraries/winpthreads"

>>>> +B = "${WORKDIR}/build-${TARGET_SYS}"

>>>> +

>>>> +inherit autotools nativesdk

>>>> +

>>>> +INHIBIT_DEFAULT_DEPS = "1"

>>>> +DEPENDS = "nativesdk-mingw-w64-runtime virtual/${TARGET_PREFIX}gcc-initial"

>>>> +

>>>> +do_configure() {

>>>> +    oe_runconf

>>>> +}

>>>> +

>>>> +STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"

>>>> +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}"

>>>> +TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"

>>>> +PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"

>>>> +

>>>> +do_install_append() {

>>>> +    # headers are already installed by mingw-w64-headers

>>>> +    rm -rf ${D}${includedir}

>>>> +}

>>>> diff --git a/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb b/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb

>>>> deleted file mode 100644

>>>> index e4a0f80..0000000

>>>> --- a/recipes-devtools/pthreads-win32/pthreads-win32_2.9.1.bb

>>>> +++ /dev/null

>>>> @@ -1,47 +0,0 @@

>>>> -DESCRIPTION = "A Win32 implementation of the POSIX standard threads API"

>>>> -HOMEPAGE = "http://www.sourceware.org/pthreads-win32"

>>>> -LICENSE = "LGPLv2.1"

>>>> -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34"

>>>> -

>>>> -BBCLASSEXTEND = "nativesdk"

>>>> -

>>>> -COMPATIBLE_HOST = ".*-mingw.*"

>>>> -

>>>> -## Replace dots with dashes

>>>> -PVdash = "2-9-1"

>>>> -

>>>> -## cvs -d :pserver:anonymous@sourceware.org:/cvs/pthreads-win32 checkout pthreads

>>>> -SRC_URI = "ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-${PVdash}-release.tar.gz"

>>>> -SRC_URI[md5sum] = "36ba827d6aa0fa9f9ae740a35626e2e3"

>>>> -SRC_URI[sha256sum] = "e6aca7aea8de33d9c8580bcb3a0ea3ec0a7ace4ba3f4e263ac7c7b66bc95fb4d"

>>>> -

>>>> -## Reference: http://sourceware.org/ml/pthreads-win32/2009/msg00030/w64sup.patch

>>>> -#SRC_URI += "file://w64sup.patch"

>>>> -

>>>> -S = "${WORKDIR}/pthreads-w32-${PVdash}-release"

>>>> -

>>>> -INHIBIT_DEFAULT_DEPS = "1"

>>>> -DEPENDS = "virtual/${SDK_PREFIX}gcc libgcc virtual/libc"

>>>> -

>>>> -do_configure_prepend() {

>>>> -    ## First reset all permissions because all are executable

>>>> -    find . -type f -exec chmod 644 {} \;

>>>> -    ## Make a copy of config.h

>>>> -    cp config.h pthreads_win32_config.h

>>>> -}

>>>> -

>>>> -do_compile() {

>>>> -    make -f GNUmakefile CROSS=${SDK_PREFIX} CC="${CC}" RC="${WINDRES}" clean GC

>>>> -}

>>>> -

>>>> -do_install() {

>>>> -    install -d -m 0755 ${D}${bindir}

>>>> -    install -d -m 0755 ${D}${includedir}

>>>> -    install -d -m 0755 ${D}${libdir}

>>>> -

>>>> -    install -m 0644 ${S}/pthread.h ${S}/sched.h ${S}/semaphore.h ${D}${includedir}/

>>>> -

>>>> -    install -m 0644 ${S}/libpthreadGC2.a ${D}${libdir}/libpthread.dll.a

>>>> -    install -m 0644 ${S}/pthreadGC2.dll ${D}${bindir}/libpthread-2.dll

>>>> -    install -m 0644 ${S}/pthreadGC2.dll ${D}${bindir}/pthreadGC2.dll

>>>> -}

>>>> --

>>>> 2.17.1

>>>> 

>>>> --

>>>> _______________________________________________

>>>> yocto mailing list

>>>> yocto@yoctoproject.org

>>>> https://lists.yoctoproject.org/listinfo/yocto
Samuli Piippo Nov. 15, 2018, 8:38 p.m.
I don't have access to the contrib git repo, so pushed them here instead: https://github.com/sapiippo/meta-mingw/