55 lines
1.6 KiB
Diff
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
|
|
|