Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.85.0 Beta 1 RC 1 does not build on Mac OS X with gcc #255

Closed
mclow opened this issue Mar 8, 2024 · 4 comments
Closed

1.85.0 Beta 1 RC 1 does not build on Mac OS X with gcc #255

mclow opened this issue Mar 8, 2024 · 4 comments

Comments

@mclow
Copy link

mclow commented Mar 8, 2024

Copied from the ML (thanks to Matt Borland for the report)

I have successfully built the libraries on M1 Mac running macOS Sonoma 14.3.1 with Clang 17.0.6 using cxxstd=11,14,17,20,23.

On the same platform using homebrew gcc-13 13.2.0 I get build failures with boost.fiber and boost.coroutine.

b2 has the following error:

error: No best alternative for libs/context/build/asm_sources with aapcs 64 arm off mach-o <boost.cobalt.executor>any_io_executor <boost.cobalt.pmr>std fcontext off iso 17 off 64 arm on off full shared speed MACOSX on on off off 3.11 abi address-model architecture binary-format toolset on off shared native off darwin <testing.execute>on pthread multi toolset-gcc:version13 gcc release off hidden off on
no match: aapcs 32 arm elf multi clang
no match: aapcs 32 arm elf multi gcc
no match: aapcs 32 arm elf multi qcc
no match: aapcs 32 arm mach-o multi clang
no match: aapcs 32 arm mach-o multi darwin
no match: aapcs 32 arm pe multi msvc
no match: aapcs 64 arm elf multi clang
no match: aapcs 64 arm elf multi gcc
no match: aapcs 64 arm mach-o multi clang
no match: aapcs 64 arm mach-o multi darwin
no match: aapcs 64 arm pe multi msvc
no match: sysv 64 loongarch elf multi gcc
no match: o32 32 mips elf multi clang
no match: o32 32 mips elf multi gcc
no match: n64 64 mips elf multi clang
no match: n64 64 mips elf multi gcc
no match: sysv 32 power elf multi clang
no match: sysv 32 power elf multi gcc
no match: sysv 32 power mach-o multi clang
no match: sysv 32 power mach-o multi gcc
no match: sysv 32 power mach-o multi darwin
no match: sysv 32 power xcoff multi clang
no match: sysv 32 power xcoff multi gcc
no match: sysv 64 power elf multi clang
no match: sysv 64 power elf multi gcc
no match: sysv 64 power mach-o multi clang
no match: sysv 64 power mach-o multi gcc
no match: sysv 64 power mach-o multi darwin
no match: sysv 64 power xcoff multi clang
no match: sysv 64 power xcoff multi gcc
no match: sysv 32_64 power mach-o multi
no match: sysv 64 riscv elf multi clang
no match: sysv 64 riscv elf multi gcc
no match: sysv 64 s390x elf multi gcc
no match: sysv 64 s390x elf multi clang
no match: sysv 32 x86 elf

@pdimov
Copy link
Member

pdimov commented Mar 8, 2024

error: No best alternative for libs/context/build/asm_sources with <abi>aapcs <address-model>64 <architecture>arm
<asynch-exceptions>off <binary-format>mach-o <boost.cobalt.executor>any_io_executor <boost.cobalt.pmr>std
<context-impl>fcontext <coverage>off <cxxstd-dialect>iso <cxxstd>17 <debug-symbols>off
<deduced-address-model>64 <deduced-architecture>arm <exception-handling>on <extern-c-nothrow>off
<inlining>full <link>shared <optimization>speed <os>MACOSX <pch>on <preserve-test-targets>on <profiling>off
<python-debugging>off <python>3.11 <relevant>abi <relevant>address-model <relevant>architecture
<relevant>binary-format <relevant>toolset <rtti>on <runtime-debugging>off <runtime-link>shared <stdlib>native
<strip>off <target-os>darwin <testing.execute>on <threadapi>pthread <threading>multi <toolset-gcc:version>13
<toolset>gcc <variant>release <vectorize>off <visibility>hidden <warnings-as-errors>off <warnings>on

    no match: <abi>aapcs <address-model>32 <architecture>arm <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>aapcs <address-model>32 <architecture>arm <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>aapcs <address-model>32 <architecture>arm <binary-format>elf <threading>multi <toolset>qcc
    no match: <abi>aapcs <address-model>32 <architecture>arm <binary-format>mach-o <threading>multi <toolset>clang
    no match: <abi>aapcs <address-model>32 <architecture>arm <binary-format>mach-o <threading>multi <toolset>darwin
    no match: <abi>aapcs <address-model>32 <architecture>arm <binary-format>pe <threading>multi <toolset>msvc
    no match: <abi>aapcs <address-model>64 <architecture>arm <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>aapcs <address-model>64 <architecture>arm <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>aapcs <address-model>64 <architecture>arm <binary-format>mach-o <threading>multi <toolset>clang
    no match: <abi>aapcs <address-model>64 <architecture>arm <binary-format>mach-o <threading>multi <toolset>darwin
    no match: <abi>aapcs <address-model>64 <architecture>arm <binary-format>pe <threading>multi <toolset>msvc
    no match: <abi>sysv <address-model>64 <architecture>loongarch <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>o32 <address-model>32 <architecture>mips <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>o32 <address-model>32 <architecture>mips <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>n64 <address-model>64 <architecture>mips <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>n64 <address-model>64 <architecture>mips <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>32 <architecture>power <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>32 <architecture>power <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>32 <architecture>power <binary-format>mach-o <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>32 <architecture>power <binary-format>mach-o <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>32 <architecture>power <binary-format>mach-o <threading>multi <toolset>darwin
    no match: <abi>sysv <address-model>32 <architecture>power <binary-format>xcoff <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>32 <architecture>power <binary-format>xcoff <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>64 <architecture>power <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>64 <architecture>power <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>64 <architecture>power <binary-format>mach-o <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>64 <architecture>power <binary-format>mach-o <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>64 <architecture>power <binary-format>mach-o <threading>multi <toolset>darwin
    no match: <abi>sysv <address-model>64 <architecture>power <binary-format>xcoff <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>64 <architecture>power <binary-format>xcoff <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>32_64 <architecture>power <binary-format>mach-o <threading>multi
    no match: <abi>sysv <address-model>64 <architecture>riscv <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>64 <architecture>riscv <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>64 <architecture>s390x <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>64 <architecture>s390x <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>32 <architecture>x86 <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>32 <architecture>x86 <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>32 <architecture>x86 <binary-format>elf <threading>multi <toolset>intel
    no match: <abi>sysv <address-model>32 <architecture>x86 <binary-format>mach-o <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>32 <architecture>x86 <binary-format>mach-o <threading>multi <toolset>darwin
    no match: <abi>ms <address-model>32 <architecture>x86 <binary-format>pe <threading>multi <toolset>clang
    no match: <abi>ms <address-model>32 <architecture>x86 <binary-format>pe <threading>multi <toolset>clang-win
    no match: <abi>ms <address-model>32 <architecture>x86 <binary-format>pe <threading>multi <toolset>gcc
    no match: <abi>ms <address-model>32 <architecture>x86 <binary-format>pe <threading>multi <toolset>intel
    no match: <abi>ms <address-model>32 <architecture>x86 <binary-format>pe <threading>multi <toolset>msvc
    no match: <abi>ms <address-model>32 <architecture>x86 <binary-format>pe <threading>multi <toolset>embarcadero
    no match: <abi>ms <address-model>32 <architecture>x86 <binary-format>pe <threading>multi <toolset>borland
    no match: <abi>sysv <address-model>64 <architecture>x86 <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>64 <architecture>x86 <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>64 <architecture>x86 <binary-format>elf <threading>multi <toolset>intel
    no match: <abi>sysv <address-model>64 <architecture>x86 <binary-format>mach-o <threading>multi <toolset>clang
    no match: <abi>sysv <address-model>64 <architecture>x86 <binary-format>mach-o <threading>multi <toolset>gcc
    no match: <abi>sysv <address-model>64 <architecture>x86 <binary-format>mach-o <threading>multi <toolset>darwin
    no match: <abi>sysv <address-model>64 <architecture>x86 <binary-format>mach-o <threading>multi <toolset>intel
    no match: <abi>ms <address-model>64 <architecture>x86 <binary-format>pe <threading>multi <toolset>clang
    no match: <abi>ms <address-model>64 <architecture>x86 <binary-format>pe <threading>multi <toolset>clang-win
    no match: <abi>ms <address-model>64 <architecture>x86 <binary-format>pe <threading>multi <toolset>gcc
    no match: <abi>ms <address-model>64 <architecture>x86 <binary-format>pe <threading>multi <toolset>intel
    no match: <abi>ms <address-model>64 <architecture>x86 <binary-format>pe <threading>multi <toolset>msvc
    no match: <abi>ms <address-model>64 <architecture>x86 <binary-format>pe <threading>multi <toolset>embarcadero
    no match: <abi>x32 <address-model>32 <architecture>x86 <binary-format>elf <threading>multi <toolset>clang
    no match: <abi>x32 <address-model>32 <architecture>x86 <binary-format>elf <threading>multi <toolset>gcc
    no match: <abi>x32 <address-model>32 <architecture>x86 <binary-format>elf <threading>multi <toolset>intel
    no match: <abi>sysv <address-model>32_64 <architecture>x86 <binary-format>mach-o <threading>multi
    no match: <abi>sysv <architecture>arm+x86 <binary-format>mach-o <threading>multi

@pdimov
Copy link
Member

pdimov commented Mar 8, 2024

That's actually a problem in Context, and the fix is fairly trivial. This section from build/Jamfile:

context/build/Jamfile.v2

Lines 210 to 231 in 77de3d5

# ARM64/AAPCS/MACH-O
alias asm_sources
: asm/make_arm64_aapcs_macho_gas.S
asm/jump_arm64_aapcs_macho_gas.S
asm/ontop_arm64_aapcs_macho_gas.S
: <abi>aapcs
<address-model>64
<architecture>arm
<binary-format>mach-o
<toolset>clang
;
alias asm_sources
: asm/make_arm64_aapcs_macho_gas.S
asm/jump_arm64_aapcs_macho_gas.S
asm/ontop_arm64_aapcs_macho_gas.S
: <abi>aapcs
<address-model>64
<architecture>arm
<binary-format>mach-o
<toolset>darwin
;

is missing a <toolset>gcc alternative.

Or, another way to fix it is to just remove the <toolset> conditions from most places, including this one.

@mclow mclow transferred this issue from boostorg/coroutine Mar 8, 2024
@mclow
Copy link
Author

mclow commented Mar 8, 2024

Here is a gist with the complete build log:

https://gist.github.com/mborland/781bf2740c30a2af93d1cdcbcb132337

olk added a commit that referenced this issue Mar 10, 2024
@olk
Copy link
Member

olk commented Mar 10, 2024

untested because I don't own a Mac OS running on AMR64

@olk olk closed this as completed Mar 10, 2024
grafikrobot pushed a commit to grafikrobot/boostorg.context that referenced this issue Mar 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants