Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#62239 closed defect (fixed)

readline is erroneously marked as not being able to install +universal

Reported by: jordanhubbard (Jordan Hubbard) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: readline

Description (last modified by jmroot (Joshua Root))

root@mighty-> port install emacs
--->  Computing dependencies for emacs
Error: Cannot install gdbm for the archs 'arm64 x86_64' because
Error: its dependency readline cannot build for the required archs.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.

I have, however, built readline just fine as an arm64 library, so I'm not sure where it is flagged as unbuildable for this arch combination (I also looked at the readline/Portfile and I don't see any limitations flagged there). Not sure what's up with this, but as readline is a very key leaf port, it is probably worth fixing.

Change History (6)

comment:1 Changed 3 years ago by jmroot (Joshua Root)

Description: modified (diff)

If you're building on an Intel system, the problem is

merger_must_run_binaries yes

It would work on an arm system since that can run x86_64 code.

comment:2 Changed 3 years ago by jmroot (Joshua Root)

Owner: set to MarcusCalhoun-Lopez
Port: readline added
Status: newassigned

comment:3 Changed 3 years ago by kencu (Ken)

well, I just took out the merger_must_run_binaries yes line, and built it on a BigSur Intel machine:

sudo port -v -s install readline +universal

and got:

% port -v installed readline               
The following ports are currently installed:
  readline @8.1.000_0+universal (active) platform='darwin 20' archs='arm64 x86_64' date='2021-02-08T16:50:59-0800'

and

% file /opt/local/lib/libreadline.8.1.dylib
/opt/local/lib/libreadline.8.1.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64:Mach-O 64-bit dynamically linked shared library arm64]
/opt/local/lib/libreadline.8.1.dylib (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/opt/local/lib/libreadline.8.1.dylib (for architecture arm64):	Mach-O 64-bit dynamically linked shared library arm64

This was last looked at about seven years ago, when a ppc/i386 build broke on LeopardPPC. But whatever that was about, it works now:

 file libreadline.8.1.dylib
libreadline.8.1.dylib: Mach-O universal binary with 2 architectures
libreadline.8.1.dylib (for architecture ppc7400):	Mach-O dynamically linked shared library ppc
libreadline.8.1.dylib (for architecture i386):	Mach-O dynamically linked shared library i386
Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:6 Changed 3 years ago by kencu (Ken)

so with this, and a few other minor tweaks, we can now build at least all the way up to xorg-server as +universal on BigSur Intel.

That is getting there.

Note: See TracTickets for help on using tickets.