diff --git a/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch b/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch new file mode 100644 index 0000000000..13a9e3b884 --- /dev/null +++ b/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch @@ -0,0 +1,54 @@ +From 1735a78561dbe139fd138caef2d44d81f5494fe7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 4 Apr 2023 12:28:11 -0700 +Subject: [PATCH] Make function checks more robust within shared libs + +Previous attempt to error at link like was with + +https://github.com/toddr/IO-Tty/commit/1747cdf9f98cfd3aada9bf6c09f9d46297e18a5e + +this however causes issues with newer clang where it detects +the assignment as -Wint-conversion warning which is treated at error +and builds with clang fail. So this is an attempt to instruct +linker explicitly to error out if the symbol is not found during link +time when building a shared library, this fixes both the problems +as reported in + +https://github.com/toddr/IO-Tty/issues/23 + +as well as + +https://github.com/toddr/IO-Tty/pull/33#issuecomment-1260147256 + +Upstream-Status: Submitted [https://github.com/toddr/IO-Tty/pull/33] +Signed-off-by: Khem Raj +--- + Makefile.PL | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/Makefile.PL b/Makefile.PL +index eaf47e0..2e8338d 100644 +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -163,7 +163,8 @@ main () + #if defined (__stub_$f) || defined (__stub___$f) + choke me + #else +-f = $f (); ++f = $f; ++f(); + #endif + + ; +@@ -173,7 +174,7 @@ ESQ + + close(TST); + print "Looking for $f()" . "." x (13-length($f)) . " "; +- if (system("$cfg{'cc'} $flags $funcs{$f} functest_$f.c > functest_$f.log 2>&1")) { ++ if (system("$cfg{'cc'} $flags -Wl,--no-undefined $funcs{$f} functest_$f.c > functest_$f.log 2>&1")) { + print "not found.\n"; + } else { + $define{"-DHAVE_\U$f"} = undef; +-- +2.40.0 + diff --git a/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch b/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch deleted file mode 100644 index 07c7690fb8..0000000000 --- a/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch +++ /dev/null @@ -1,45 +0,0 @@ -From fae771aefc593a0ef798bc0c1e21b0524eb85e2d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 31 Aug 2022 20:32:35 -0700 -Subject: [PATCH] Tty.xs: Do not mark strlcpy as static - -Some libcs e.g. musl do not provide implementation of strlcpy but they -do provide the signature in string.h, if we mark it static here then it -conflicts with the libc define and compiler may warn/error - -Fixes -Tty.xs:190:1: error: static declaration of 'strlcpy' follows non-static declaration -strlcpy( ^ -/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/libio-pty-perl/1.16-r0/recipe-sysroot/usr/include/string.h:86:8: note: previous declaration is here -size_t strlcpy (char *, const char *, size_t); ^ - -Upstream-Status: Submitted [https://github.com/toddr/IO-Tty/pull/33] -Signed-off-by: Khem Raj ---- - Tty.xs | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/Tty.xs b/Tty.xs -index aa638f4..4bab39d 100644 ---- a/Tty.xs -+++ b/Tty.xs -@@ -186,11 +186,11 @@ mysignal(int sig, mysig_t act) - * will be copied. Always NUL terminates (unless siz == 0). - * Returns strlen(src); if retval >= siz, truncation occurred. - */ --static size_t --strlcpy(dst, src, siz) -- char *dst; -- const char *src; -- size_t siz; -+size_t -+strlcpy( -+ char *dst, -+ const char *src, -+ size_t siz) - { - register char *d = dst; - register const char *s = src; --- -2.37.3 - diff --git a/meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb b/meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb index 684788f199..e5c1ec1c82 100644 --- a/meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb +++ b/meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb @@ -4,9 +4,8 @@ LICENSE = "Artistic-1.0 | GPL-1.0-or-later" LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=12;md5=b2562f94907eeb42e8ce9d45f628e587" SRC_URI = "http://www.cpan.org/modules/by-module/IO/IO-Tty-${PV}.tar.gz \ - file://0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch \ + file://0001-Make-function-checks-more-robust-within-shared-libs.patch \ " - SRC_URI[sha256sum] = "a5f1a83020bc5b5dd6c1b570f48c7546e0a8f7fac10a068740b03925ad9e14e8" S = "${WORKDIR}/IO-Tty-${PV}"