Redo musl support patch such that it can always be applied Signed-off-by: Khem Raj <[email protected]> --- ...-signature-on-non-glibc-linux-musl-s.patch | 85 ++++++++++++++++ ...1-Simplify-check-for-gethostbyname_r.patch | 96 ------------------- .../{gsoap_2.8.126.bb => gsoap_2.8.134.bb} | 6 +- 3 files changed, 88 insertions(+), 99 deletions(-) create mode 100644 meta-oe/recipes-support/gsoap/gsoap/0001-Provide-strtod_l-signature-on-non-glibc-linux-musl-s.patch delete mode 100644 meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch rename meta-oe/recipes-support/gsoap/{gsoap_2.8.126.bb => gsoap_2.8.134.bb} (87%)
diff --git a/meta-oe/recipes-support/gsoap/gsoap/0001-Provide-strtod_l-signature-on-non-glibc-linux-musl-s.patch b/meta-oe/recipes-support/gsoap/gsoap/0001-Provide-strtod_l-signature-on-non-glibc-linux-musl-s.patch new file mode 100644 index 0000000000..df27a59ee7 --- /dev/null +++ b/meta-oe/recipes-support/gsoap/gsoap/0001-Provide-strtod_l-signature-on-non-glibc-linux-musl-s.patch @@ -0,0 +1,85 @@ +From 2b7a51556185539a0f9baef0f109e0814933d6b3 Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +Date: Sun, 19 May 2024 17:11:20 -0700 +Subject: [PATCH] Provide strtod_l signature on non-glibc linux ( musl ) + systems + +Upstream-Status: Pending +Signed-off-by: Khem Raj <[email protected]> +--- + gsoap/stdsoap2.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/gsoap/stdsoap2.cpp ++++ b/gsoap/stdsoap2.cpp +@@ -74,6 +74,11 @@ A commercial use license is available fr + + #include "stdsoap2.h" + ++#if defined(__linux__) && !defined(__GLIBC__) ++struct __locale_struct; ++double strtod_l(const char *__restrict, char **__restrict, struct __locale_struct *); ++#endif ++ + #if GSOAP_VERSION != GSOAP_LIB_VERSION + # error "GSOAP VERSION MISMATCH IN LIBRARY: PLEASE REINSTALL PACKAGE" + #endif +@@ -5457,7 +5462,7 @@ tcp_gethostbyname(struct soap *soap, con + { + #if (defined(_AIX43) || defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R) + struct hostent_data ht_data; +-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && !defined(__QNX__) && !defined(QNX) && defined(HAVE_GETHOSTBYNAME_R) ++#elif (!defined(__GLIBC__) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && !defined(__QNX__) && !defined(QNX) && defined(HAVE_GETHOSTBYNAME_R) + int r; + char *tmpbuf = soap->tmpbuf; + size_t tmplen = sizeof(soap->tmpbuf); +@@ -5490,7 +5495,7 @@ tcp_gethostbyname(struct soap *soap, con + hostent = NULL; + soap->errnum = h_errno; + } +-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && !defined(__QNX__) && !defined(QNX) && defined(HAVE_GETHOSTBYNAME_R) ++#elif (!defined(__GLIBC__) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && !defined(__QNX__) && !defined(QNX) && defined(HAVE_GETHOSTBYNAME_R) + while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0) + { + if (tmpbuf != soap->tmpbuf) +@@ -23192,7 +23197,7 @@ soap_strerror(struct soap *soap) + { + #ifndef WIN32 + # ifdef HAVE_STRERROR_R +-# if !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600))) ++# if !defined(__GLIBC__) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600))) + err = strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */ + if (err != 0) + soap_strcpy(soap->msgbuf, sizeof(soap->msgbuf), "unknown error"); +--- a/gsoap/stdsoap2.c ++++ b/gsoap/stdsoap2.c +@@ -74,6 +74,11 @@ A commercial use license is available fr + + #include "stdsoap2.h" + ++#if defined(__linux__) && !defined(__GLIBC__) ++struct __locale_struct; ++double strtod_l(const char *__restrict, char **__restrict, struct __locale_struct *); ++#endif ++ + #if GSOAP_VERSION != GSOAP_LIB_VERSION + # error "GSOAP VERSION MISMATCH IN LIBRARY: PLEASE REINSTALL PACKAGE" + #endif +@@ -5490,7 +5495,7 @@ tcp_gethostbyname(struct soap *soap, con + hostent = NULL; + soap->errnum = h_errno; + } +-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && !defined(__QNX__) && !defined(QNX) && defined(HAVE_GETHOSTBYNAME_R) ++#elif (!defined(__GLIBC__) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && !defined(__QNX__) && !defined(QNX) && defined(HAVE_GETHOSTBYNAME_R) + while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0) + { + if (tmpbuf != soap->tmpbuf) +@@ -23192,7 +23197,7 @@ soap_strerror(struct soap *soap) + { + #ifndef WIN32 + # ifdef HAVE_STRERROR_R +-# if !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600))) ++# if !defined(__GLIBC__) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600))) + err = strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */ + if (err != 0) + soap_strcpy(soap->msgbuf, sizeof(soap->msgbuf), "unknown error"); diff --git a/meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch b/meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch deleted file mode 100644 index 6ae02deb24..0000000000 --- a/meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch +++ /dev/null @@ -1,96 +0,0 @@ -From fa923a50790c907725c822b2fc7d63b2da62b4ad Mon Sep 17 00:00:00 2001 -From: Khem Raj <[email protected]> -Date: Sun, 12 Mar 2023 13:34:55 -0700 -Subject: [PATCH] Simplify check for gethostbyname_r() - -This helps build fix with musl. - -Imported from Alpine: https://git.alpinelinux.org/aports/tree/community/gsoap/musl-fixes.patch - -Signed-off-by: Khem Raj <[email protected]> ---- -Upstream-Status: Pending - - gsoap/stdsoap2.c | 6 ++---- - gsoap/stdsoap2.cpp | 10 ++-------- - 2 files changed, 4 insertions(+), 12 deletions(-) - -diff --git a/gsoap/stdsoap2.c b/gsoap/stdsoap2.c -index 654a1e1..fa31d02 100644 ---- a/gsoap/stdsoap2.c -+++ b/gsoap/stdsoap2.c -@@ -5463,7 +5463,7 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent, - hostent = NULL; - soap->errnum = h_errno; - } --#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && defined(HAVE_GETHOSTBYNAME_R) -+#elif defined(HAVE_GETHOSTBYNAME_R) - while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0) - { - if (tmpbuf != soap->tmpbuf) -@@ -5478,8 +5478,6 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent, - if (!tmpbuf) - break; - } --#elif defined(HAVE_GETHOSTBYNAME_R) -- hostent = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &soap->errnum); - #elif defined(VXWORKS) - /* vxWorks compatible */ - /* If the DNS resolver library resolvLib has been configured in the vxWorks -@@ -23112,7 +23110,7 @@ soap_strerror(struct soap *soap) - { - #ifndef WIN32 - # ifdef HAVE_STRERROR_R --# if !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600))) -+# if 1 - err = strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */ - if (err != 0) - soap_strcpy(soap->msgbuf, sizeof(soap->msgbuf), "unknown error"); -diff --git a/gsoap/stdsoap2.cpp b/gsoap/stdsoap2.cpp -index 654a1e1..5fd5fd6 100644 ---- a/gsoap/stdsoap2.cpp -+++ b/gsoap/stdsoap2.cpp -@@ -5430,7 +5430,7 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent, - { - #if (defined(_AIX43) || defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R) - struct hostent_data ht_data; --#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && defined(HAVE_GETHOSTBYNAME_R) -+#elif defined(HAVE_GETHOSTBYNAME_R) - int r; - char *tmpbuf = soap->tmpbuf; - size_t tmplen = sizeof(soap->tmpbuf); -@@ -5463,7 +5463,7 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent, - hostent = NULL; - soap->errnum = h_errno; - } --#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && defined(HAVE_GETHOSTBYNAME_R) -+#elif defined(HAVE_GETHOSTBYNAME_R) - while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0) - { - if (tmpbuf != soap->tmpbuf) -@@ -5478,8 +5478,6 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent, - if (!tmpbuf) - break; - } --#elif defined(HAVE_GETHOSTBYNAME_R) -- hostent = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &soap->errnum); - #elif defined(VXWORKS) - /* vxWorks compatible */ - /* If the DNS resolver library resolvLib has been configured in the vxWorks -@@ -23112,13 +23110,9 @@ soap_strerror(struct soap *soap) - { - #ifndef WIN32 - # ifdef HAVE_STRERROR_R --# if !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600))) - err = strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */ - if (err != 0) - soap_strcpy(soap->msgbuf, sizeof(soap->msgbuf), "unknown error"); --# else -- return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */ --# endif - # else - return strerror(err); - # endif --- -2.39.2 - diff --git a/meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb b/meta-oe/recipes-support/gsoap/gsoap_2.8.134.bb similarity index 87% rename from meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb rename to meta-oe/recipes-support/gsoap/gsoap_2.8.134.bb index 6d8b53d308..5528e87e6c 100644 --- a/meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb +++ b/meta-oe/recipes-support/gsoap/gsoap_2.8.134.bb @@ -5,9 +5,9 @@ LICENSE = "GPL-2.0-with-OpenSSL-exception" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \ file://GPLv2_license.txt;md5=a33672dbe491b6517750a0389063508b" -SRC_URI = "https://prdownloads.sourceforge.net/${BPN}2/${BPN}_${PV}.zip" -SRC_URI:append:libc-musl = " file://0001-Simplify-check-for-gethostbyname_r.patch" -SRC_URI[sha256sum] = "b65190ebf8c2517d6fafbdc2000bc7bc650d921a02f4aa53eb1e3df267592c4a" +SRC_URI = "https://prdownloads.sourceforge.net/${BPN}2/${BPN}_${PV}.zip \ + file://0001-Provide-strtod_l-signature-on-non-glibc-linux-musl-s.patch" +SRC_URI[sha256sum] = "63478e555c0ccde0164f055ff605b02805db0abc6712a04bcb14cb617b047218" inherit autotools -- 2.45.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#110471): https://lists.openembedded.org/g/openembedded-devel/message/110471 Mute This Topic: https://lists.openembedded.org/mt/106228510/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
