Opened 3 years ago
Last modified 3 years ago
#62548 closed defect
icu +universal does not work on Big Sur x86_64 — at Version 2
Reported by: | CharlesJS | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ||
Port: | icu |
Description (last modified by jmroot (Joshua Root))
Many ports depend on the icu
port. Unfortunately, its universal build does not work.
When trying to build a dependent port:
$ sudo port install gnutls +universal Warning: The macOS 11.2 SDK does not appear to be installed. Ports may not build correctly. Warning: You can install it as part of the Xcode Command Line Tools package by running `xcode-select --install'. ---> Computing dependencies for gnutls Error: Cannot install libxslt for the archs 'arm64 x86_64' because Error: its dependency icu cannot build for the required archs. Error: Follow https://guide.macports.org/#project.tickets to report a bug. Error: Processing of port gnutls failed
But:
$ port variants icu icu has the variants: universal: Build for multiple architectures
And yet:
$ sudo port install icu +universal ---> Fetching archive for icu ---> Attempting to fetch icu-67.1_3.darwin_20.x86_64.tbz2 from https://pek.cn.packages.macports.org/macports/packages/icu ---> Attempting to fetch icu-67.1_3.darwin_20.x86_64.tbz2.rmd160 from https://pek.cn.packages.macports.org/macports/packages/icu ---> Installing icu @67.1_3 ---> Activating icu @67.1_3 ---> Cleaning icu ---> Updating database of binaries ---> Scanning binaries for linking errors ---> No broken files found. ---> No broken ports found. $ file /opt/local/lib/libicudata.dylib /opt/local/lib/libicudata.dylib: Mach-O 64-bit dynamically linked shared library x86_64
Change History (2)
comment:1 Changed 3 years ago by kencu (Ken)
comment:2 Changed 3 years ago by jmroot (Joshua Root)
Description: | modified (diff) |
---|---|
Port: | icu added |
Summary: | Universal variant for icu, which many ports depend on, doesn't work → icu +universal does not work on Big Sur x86_64 |
The technical details are that icu apparently needs to run executables that are built during the build process, and also can't be built with multiple -arch flags at once, but needs to build each arch separately and lipo them together. This means that it can be built +universal on Big Sur on arm64 hardware but not on x86_64.
Note: See
TracTickets for help on using
tickets.
I won't go into any great detail in this ticket about this issue, but you can try this one, if you feel so inclined:
<https://github.com/kencu/myports/tree/master/devel/icu>
I upgraded it to 68.2 but you can downgrade it back to 67.1 if you prefer.