-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test for LIBS -l flags fails on OS X 11 #381
Comments
All of this logic is rather unfortunate if you ask me, but it is what it is :-/
That does sound possible using DynaLoader |
Yeah, just tripped over this after spending hours debugging a compile failure on OS/X 11. Easy repro: on OS/X 10.15
...but on OS/X 11:
There is some more discussion about the basic issue with OS/X 11 libraries here https://news.ycombinator.com/item?id=23612772 but the basic upshot is what @dmacks said -- the libraries exist in some real sense, you can even |
And, yes, DynaLoader does seem capable of probing for these faux library files:
|
Good find! Just to verify, is this with Apple's perl (/usr/bin/perl5.whatever that sees various Library/Perl modules) or a built-from-source that does not see any of Apple's possible custom patching to anything? |
This is just |
The problem wasn't with asciiquarium itself, but with building the Curses perl resource. In turn, this is due to an issue with the Apple-provided perl MakeMaker as described here: Perl-Toolchain-Gang/ExtUtils-MakeMaker#381 Because of the complicated symbol detection inside the Curses resource working around this issue is a bit messy. While working on it I updated the Curses resource to the latest upstream version and thus had to bump the formula revision.
Is this now fixed? |
Yes, this is fixed in 7.58 |
- require ExtUtils::MakeMaker 7.58 or later on macOS Big Sur or later. See Perl-Toolchain-Gang/ExtUtils-MakeMaker#381 for details. - can specify multiple directories on --prefix, --libdir, and --includedir options by separating them with colons (for Homebrew on macOS). git-svn-id: https://svn.code.sf.net/p/perl-trg/code/trunk@578 75bfd316-ca9c-4271-b570-2f09a026c862
- require ExtUtils::MakeMaker 7.58 or later on macOS Big Sur or later. See Perl-Toolchain-Gang/ExtUtils-MakeMaker#381 for details. - can specify multiple directories on --prefix, --libdir, and --includedir options by separating them with colons (for Homebrew on macOS).
- require ExtUtils::MakeMaker 7.58 or later on macOS Big Sur or later. See Perl-Toolchain-Gang/ExtUtils-MakeMaker#381 for details. - can specify multiple directories on --prefix, --libdir, and --includedir options by separating them with colons (for Homebrew on macOS).
- require ExtUtils::MakeMaker 7.58 or later on macOS Big Sur or later. See Perl-Toolchain-Gang/ExtUtils-MakeMaker#381 for details. - can specify multiple directories on --prefix, --libdir, and --includedir options by separating them with colons (for Homebrew on macOS).
1.40 2021-02-23 - Migrate the repository and the bug tracker to GitHub 1.39 2021-02-22 - Makefile.PL - some more fix for Homebrew on macOS [rt.cpan.org #133846] 1.38 2021-02-22 - Makefile.PL - run 'brew --prefix ncurses' internally to detect ncurses installed by Homebrew on macOS [rt.cpan.org #133846] - utilize ExtUtils::Liblist::ext() [rt.cpan.org #134408] On macOS Big Sur or later 'perl Makefile.PL' may warn as "Could not find neither libtermcap, libtinfo, libncurses, or libcurses." You should be able to ignore this warning if you have Xcode installed. See Perl-Toolchain-Gang/ExtUtils-MakeMaker#381 for details. To suppress this message, use ExtUtils::MakeMaker 7.58 or later. - can specify multiple directories on --prefix, --libdir, and --includedir options by separating them with colons - INSTALL - update for changes above and so on. 1.37 2020-12-27 - readline-8.1 support new function rl_activate_mark rl_deactivate_mark rl_keep_mark_active rl_mark_active_p use native operate_and_get_next on GNU ReadLine 8.1 and later. - Gnu.xs: warns if attempted completion function returns undef in pos 0. [rt.cpan.org #132384] - ppport.h: update from version 3.31 to version 3.52. - fixes to be more CPAN Testers friendly - Makefile.PL exits 0 when $TERM is not set properly. [rt.cpan.org #128806] - update URLs of the GNU Readline Library manual website. [rt.cpan.org #131362] - update URLs of soundgrab.
I just ran into this today building 5.32.1 on OSX 11.3 (Big Sur). I wonder if it's worthwhile pushing forward on 5.32.2 in order to bundle this fix. Or could this be eligible for putting in Devel::PatchPerl? |
Apple's dynamic linker now has a cache of system libraries, and the actual files no longer exist. (macOS Big Sur 11.0.1 Release Notes):
That breaks how WriteMakefile processes its LIBS parameter, where for example, "-lz" is valid and leads to correct symbol resolution of what would be in libz, but there is no libz.dylib. But EU::MM reports "Warning (mostly harmless): No library found for -lz" and does not pass the flag. As a result, an XS module does not get linked against the dependent library.
Seems like there should be a fallback (or preliminary test even before bothering to search for the file?) of just trying the linker. More expensive than file searching, but also actually tests for what is actually going to happen rather than a suddenly fragile heuristic.
See fink/fink-distributions/issues/689
The text was updated successfully, but these errors were encountered: