libio-pty-perl: Fix build with musl/clang

recipe ptest results led to this issue where the tests would fail with
clang but not with gcc, the reason is that clang find more errors and
configure tests were failing. Fixes thusly, this also means that other
patch to fix musl build is no longer needed as well.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2023-04-04 13:16:59 -07:00
parent 20d2eeb62a
commit 6e4063c1d8
3 changed files with 55 additions and 47 deletions

View File

@ -0,0 +1,54 @@
From 1735a78561dbe139fd138caef2d44d81f5494fe7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
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 <raj.khem@gmail.com>
---
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

View File

@ -1,45 +0,0 @@
From fae771aefc593a0ef798bc0c1e21b0524eb85e2d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
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 <raj.khem@gmail.com>
---
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

View File

@ -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}"