pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/56000: textproc/p5-XML-Parser: [macOS Big Sur] scripts fail with missing symbol `_XML_ParserCreate_MM` due to Expat.bundle not being linked against libexpat



>Number:         56000
>Category:       pkg
>Synopsis:       textproc/p5-XML-Parser: [macOS Big Sur] scripts fail with missing symbol `_XML_ParserCreate_MM` due to Expat.bundle not being linked against libexpat
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Feb 21 00:35:00 +0000 2021
>Originator:     Dean Matzkov
>Release:        pkgsrc-2020Q4
>Organization:
>Environment:
Darwin MBP.local 20.3.0 Darwin Kernel Version 20.3.0: Thu Jan 21 00:07:06 PST 2021; root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64
>Description:
On my macOS Big Sur installation, Perl scripts using XML::Parser fail due to unresolved symbols in Expat.bundle, due to not being linked against libexpat.dylib:


---SNIP---
dyld: lazy symbol binding failed: Symbol not found: _XML_ParserCreate_MM
  Referenced from: /opt/pkg/lib/perl5/vendor_perl/5.32.0/darwin-thread-multi-2level/auto/XML/Parser/Expat/Expat.bundle
  Expected in: flat namespace
---/SNIP---


This problem only seems to occur on macOS Big Sur, as I have not encountered this on any previous release of macOS, and there's a few other people out there that have reported similar issues for XML::Parser.
>How-To-Repeat:
1. Run macOS Big Sur.
2. Install textproc/p5-XML-Parser
3. Run a perl script like the following:


---SNIP---
#!/usr/bin/env perl

use XML::Parser;

$p = XML::Parser->new(Style => 'Debug');
$p->parse('<foo id="me">Hello World</foo>');
---/SNIP---
>Fix:
I was able to work around this problem by editing the Makefile/Makefile.PL files in the Expat/ subdirectory and manually appending "-lexpat" to LDFLAGS for Expat.bundle. However, I'm not sure what an elegant solution for Pkgsrc could be, or if this should just be directed to upstream instead.

Thanks.


Home | Main Index | Thread Index | Old Index