Opened 17 months ago

Closed 16 months ago

Last modified 11 months ago

#58572 closed defect (worksforme)

perl5.28 @5.28.2: build failure on macOS Catalina

Reported by: vtta Owned by: mojca (Mojca Miklavec)
Priority: Normal Milestone:
Component: ports Version: 2.5.4
Keywords: catalina Cc: Knapoc
Port: perl5.28

Description

I tried to install neovim which depends on perl5.28, while building perl5.28 I got

dyld: Library not loaded: /opt/local/lib/perl5/5.28/darwin-thread-multi-2level/CORE/libperl.dylib
  Referenced from: /opt/local/var/macports/build/_opt_mports_macports-ports_lang_perl5/perl5.28/work/perl-5.28.2/dist/Storable/../../../../../../../../../../../../../../../opt/local/var/macports/build/_opt_mports_macports-ports_lang_perl5/perl5.28/work/perl-5.28.2/perl
  Reason: image not found
make[1]: *** [lib/Storable/Limit.pm] Abort trap: 6
make[1]: Entering directory `/opt/local/var/macports/build/_opt_mports_macports-ports_lang_perl5/perl5.28/work/perl-5.28.2/dist/threads-shared'
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_mports_macports-ports_lang_perl5/perl5.28/work/perl-5.28.2/dist/Storable'
make: *** [dist/Storable/lib/Storable/Limit.pm] Error 2
...
Command failed:  cd "/opt/local/var/macports/build/_opt_mports_macports-ports_lang_perl5/perl5.28/work/perl-5.28.2" && /usr/bin/make -j4 -w all
Exit code: 2
Error: Failed to build perl5.28: command execution failed
Error: See /opt/local/var/macports/logs/_opt_mports_macports-ports_lang_perl5/perl5.28/main.log for details.

Tried to port clean perl5.28 port clean neovim then port install perl5.28 and got the same result.

My macports installation is brand new with nothing but some deps of neovim installed.

Full error log attached below. /opt/local/var/macports/logs/_opt_mports_macports-ports_lang_perl5/perl5.28/main.log

Attachments (2)

main.log (386.0 KB) - added by vtta 17 months ago.
/opt/local/var/macports/logs/_opt_mports_macports-ports_lang_perl5/perl5.28/main.log
main.2.log (386.3 KB) - added by Knapoc 12 months ago.
main.log

Download all attachments as: .zip

Change History (17)

Changed 17 months ago by vtta

Attachment: main.log added

/opt/local/var/macports/logs/_opt_mports_macports-ports_lang_perl5/perl5.28/main.log

comment:1 Changed 17 months ago by jmroot (Joshua Root)

Owner: changed from mojca@… to mojca

Please see wiki:FAQ#prerelease

comment:2 Changed 17 months ago by vtta

OK, fixed it anyway.

The problem is not about macOS itself, it's that you need perl5.28 to build perl5.28. So, I just grabbed the latest binary package from https://mirrors.tuna.tsinghua.edu.cn/macports/packages/perl5.28/?C=M&O=D Copyed the libperl library to /opt/local/lib/perl5/5.28/darwin-thread-multi-2level/CORE/libperl.dylib, then built again, it worked.

comment:3 Changed 16 months ago by mojca (Mojca Miklavec)

This doesn't look like OS-specific problem, but I'm unable to reproduce it on an earlier OS even after uninstalling perl5.28 and building it from source. Would you be willing to ask upstream (for example on IRC) for assistance?

We had that problem for a very long time which is why I didn't add perl5.28 at all for a very long time, but it was somehow fixed, I should check when and how.

Last edited 16 months ago by mojca (Mojca Miklavec) (previous) (diff)

comment:4 Changed 16 months ago by mojca (Mojca Miklavec)

Wait ... the following line seems suspicious:

	case "$osvers" in
	        1[5-9]*|[2-9]*)
			shrpldflags="$shrpldflags -install_name `pwd`/\$@ -Xlinker -headerpad_max_install_names"
			exeldflags="-Xlinker -headerpad_max_install_names"
			;;
		*)
			shrpldflags="$shrpldflags -install_name \$(shrpdir)/\$@"
			;;
		esac
	

It was backported from a newer version of perl, so this is an upstream problem (which might be trivial to fix on our side).

Does perl5.30 work for you?

comment:5 Changed 16 months ago by mojca (Mojca Miklavec)

It looks like the version was not correctly parsed. What does uname -a return on your machine.

I filed a ticket and I'm tempted to simply disable "this is not 10.11 or later" checks.

https://rt.perl.org/Ticket/Display.html?id=134259

Last edited 16 months ago by mojca (Mojca Miklavec) (previous) (diff)

comment:6 Changed 16 months ago by mojca (Mojca Miklavec)

Dear vtta, can we please get some further feedback from you? The output of uname -a, in particular. Thanks.

comment:7 Changed 16 months ago by vtta

Sorry for the delay, I totally forgot about this thing.

The output of uname -a in VM:

Darwin vttas-iMac.local 19.0.0 Darwin Kernel Version 19.0.0: Thu Jun 27 20:18:24 PDT 2019; root:xnu-6153.0.13.131.3~1/RELEASE_X86_64 x86_64

I installed a new and clean VM running macOS 10.15 dev beta 3, and restored the packages installed on my MacBook which is running the same version of macOS.

I followed instructions mentioned here wiki:Migration, and perl5.28 built successfully, but the log seemed to be deleted right away, when I check, there is nothing.

I guess the problem I encountered in dev beta 1 may be caused by the conflicts between Xcode and Xcode-beta?

In dev beta 1, I have Xcode installed first then installed Xcode-beta, I remembered that there is a soft link in /Library/Developer/CommandLineTools/SDKs which links MacOSX10.15.sdk to MacOSX.sdk, but in the new VM, it’s MacOSX.sdk points to MacOSX10.15.sdk.

In other words, maybe in dev beta 1 I built things using MacOSX.sdk which is actually MacOSX10.14.sdk, but in the new VM, I got the right version of SDK to build things.

About perl5.30, I remembered that when I failed to install perl5.28, I tried to install perl5.30, and it build and worked just fine.

If you need anything else please reply, I’m happy to help

Last edited 11 months ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:8 Changed 16 months ago by vtta

BTW, although I don’t code in perl, but it’s definitely clearer and easier to use uname -s and uname -r to check for OS and version.

comment:9 Changed 16 months ago by kencu (Ken)

Would you say we can close this ticket, then? Sounds like that is what you mean.

comment:10 Changed 16 months ago by vtta

Sure you can

comment:11 Changed 16 months ago by kencu (Ken)

Resolution: worksforme
Status: assignedclosed

comment:12 Changed 12 months ago by Knapoc

It seems that I have the same issue. libperl.dylib gets created under /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/work/perl-5.28.2/

As soon as I copy the file to /opt/local/lib/perl5/5.28/darwin-thread-multi-2level/CORE/libperl.dylib the build is successful.

My uname -a output: Darwin xxxxxxx’s MacBook Pro 19.0.0 Darwin Kernel Version 19.0.0: Wed Sep 25 20:18:50 PDT 2019; root:xnu-6153.11.26~2/RELEASE_X86_64 x86_64

The build-log is attached.

Last edited 12 months ago by Knapoc (previous) (diff)

Changed 12 months ago by Knapoc

Attachment: main.2.log added

main.log

comment:13 Changed 12 months ago by Knapoc

Cc: Knapoc added

comment:14 Changed 12 months ago by Knapoc

@Mojca: your suspicion is correct. Changing the host name temporarily to one without spaces fixed the issue.

comment:15 Changed 11 months ago by ryandesign (Ryan Schmidt)

How would your hostname have ended up with spaces in it? That's invalid.

Note: See TracTickets for help on using tickets.