Files
meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch
Khem Raj 6e4063c1d8 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>
2023-04-05 15:56:47 -07:00

55 lines
1.6 KiB
Diff

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