Opened 21 months ago
Closed 14 months ago
#66820 closed defect (fixed)
boost181 @1.81.0+universal: "combined" is not a known value of feature <architecture> :info:build error: legal values: "x86" ... "arm+x86"
Reported by: | kaamui | Owned by: | michaelld (Michael Dickens) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | mascguy (Christopher Nielsen) | |
Port: | boost181 |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
Boost 1.81.0 fails to build on Mac M1 with the following output :
sudo port install boost181 +universal ---> Computing dependencies for boost181 ---> Fetching archive for boost181 ---> Attempting to fetch boost181-1.81.0_4+no_single+no_static+python310+universal.darwin_21.arm64-x86_64.tbz2 from https://packages.macports.org/boost181 ---> Attempting to fetch boost181-1.81.0_4+no_single+no_static+python310+universal.darwin_21.arm64-x86_64.tbz2 from https://fra.de.packages.macports.org/boost181 ---> Attempting to fetch boost181-1.81.0_4+no_single+no_static+python310+universal.darwin_21.arm64-x86_64.tbz2 from https://nue.de.packages.macports.org/boost181 ---> Fetching distfiles for boost181 ---> Verifying checksums for boost181 ---> Extracting boost181 ---> Applying patches to boost181 ---> Configuring boost181 ---> Building boost181 Error: Failed to build boost181: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost181/boost181/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port boost181 failed
main.log is attached, but the issue seems to be related to the fact that "combined" was replaced in boost by "arm+x86" (see in commit below)
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost181/boost181/work/boost_1_81_0/tools/build/src/build/feature.jam:491: in feature.validate-value-string from module feature :info:build error: "combined" is not a known value of feature <architecture> :info:build error: legal values: "x86" "ia64" "sparc" "power" "loongarch" "mips" "mips1" "mips2" "mips3" "mips4" "mips32" "mips32r2" "mips64" "parisc" "arm" "riscv" "s390x" "arm+x86" :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost181/boost181/work/boost_1_81_0/tools/build/src/build/property.jam:337: in validate1 from module property :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost181/boost181/work/boost_1_81_0/tools/build/src/build/property.jam:363: in property.validate from module property :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost181/boost181/work/boost_1_81_0/tools/build/src/build/build-request.jam:286: in convert-command-line-element from module build-request :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost181/boost181/work/boost_1_81_0/tools/build/src/build/build-request.jam:222: in build-request.convert-command-line-elements from module build-request :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost181/boost181/work/boost_1_81_0/tools/build/src/build-system.jam:774: in load from module build-system :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost181/boost181/work/boost_1_81_0/tools/build/src/kernel/modules.jam:294: in import from module modules :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_boost181/boost181/work/boost_1_81_0/tools/build/src/kernel/bootstrap.jam:135: in module scope from module
Note that Boost 1.81.0 adds a workaround that could resolve boost issues in universal variant: #64954 #66686
https://github.com/boostorg/build/commit/d312a161524213b7966eec440158f38fbaa497c2
Fixing Boost 1.81.0 compilation would probably enable boost but also poppler (that depends on boost 1.76 actually, should be upgraded to 1.81.0) as universal packages
Attachments (1)
Change History (12)
Changed 21 months ago by kaamui
comment:1 Changed 21 months ago by kaamui
Description: | modified (diff) |
---|
comment:2 Changed 21 months ago by jmroot (Joshua Root)
Cc: | mascguy added |
---|---|
Owner: | set to michaelld |
Port: | boost181 added |
Status: | new → assigned |
comment:3 Changed 21 months ago by kaamui
Description: | modified (diff) |
---|
comment:4 Changed 21 months ago by kaamui
Description: | modified (diff) |
---|
comment:5 Changed 21 months ago by kaamui
Description: | modified (diff) |
---|
comment:6 Changed 21 months ago by kaamui
Description: | modified (diff) |
---|
comment:8 Changed 21 months ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|---|
Summary: | boost 181@1.81.0+universal: "combined" is not a known value of feature <architecture> :info:build error: legal values: "x86" ... "arm+x86" → boost181 @1.81.0+universal: "combined" is not a known value of feature <architecture> :info:build error: legal values: "x86" ... "arm+x86" |
comment:9 Changed 21 months ago by kaamui
Using the script of Jesse in this thread, I was able to compile boost 1.81.0 as a universal binary.
It seems to be a configuration issue on boost's side, when using the arm+x86
option.
boost issue => https://github.com/boostorg/coroutine/issues/60
Maybe the linkflags option is helping the linker not to fail for coroutine_context, and is what's missing when arm+x86
option is used :
./b2 toolset=clang-darwin target-os=darwin architecture=arm abi=aapcs cxxflags="-arch arm64" cflags="-arch arm64" linkflags="-arch arm64" -a
in the main.log file L627, we can see that patches are applied for sysv
architecture, where I'm on a arm64 (hence aapcs
architecture). Maybe these patches are applied independently of the arch, maybe some equivalent patches are missing for aapcs
architecture.
comment:10 Changed 21 months ago by kencu (Ken)
the script basically does what our muniversal PG does…
which may well be where all the boost versions are headed if we want universal to work properly.
comment:11 Changed 14 months ago by kaamui
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
https://patch-diff.githubusercontent.com/raw/macports/macports-ports/pull/17570.patch
Can be patched by simply editing the Portfile (see patch above), but leads to linker issues (a boost/@coroutine issue => https://github.com/boostorg/coroutine/issues/60, https://github.com/boostorg/context/issues/203)