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

[boost-modular-build-helper] Support boost architecture arm+x86 (#25294) #25299

Merged

Conversation

simtind
Copy link
Contributor

@simtind simtind commented Jun 17, 2022

Describe the pull request

  • What does your PR fix?

    Fixes #25294, , allowing boost libraries to be built when VCPKG_TARGET_ARCHITECTURE is a list of architectures arm64 and x86_64.

  • Which triplets are supported/not supported? Have you updated the CI baseline?

    Needed to support triplet arm64-x64-osx that builds unified libraries. Not yet contributed to vcpkg proper.
    I have not updated the ci baseline.

  • Does your PR follow the maintainer guide?

    Yes

  • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

Yes

@ghost
Copy link

ghost commented Jun 17, 2022

CLA assistant check
All CLA requirements met.

@JackBoosY JackBoosY added category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team. requires:author-response labels Jun 20, 2022
@JackBoosY JackBoosY added the info:reviewed Pull Request changes follow basic guidelines label Jun 22, 2022
@JackBoosY
Copy link
Contributor

I'd like @ras0219-msft to review this changes.

Copy link
Contributor

@ras0219-msft ras0219-msft left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change LGTM, however I want to note here:

VCPKG_TARGET_ARCHITECTURE as a list is not currently an officially supported, 1st class feature of vcpkg. We have and will continue to accept PRs improving support around the edges because it does work for users today for a substantial subset of ports.

However we are very concerned about its long-term sustainability for the broader ecosystem. Many libraries (especially older ones) cannot be reasonably retrofitted to handle it due to things like inline assembly, compile tests, or even simple #ifdefs. It is also generally a large edge case -- it makes OSX extremely weird compared to other platforms which expect to be able to have a simple STREQUAL chain.

We are searching for a more complete and less "special" solution; for example by running the full install tree for x64-osx and arm64-osx and then using lipo to merge the binaries together to produce the unified packages. This would cleanly solve the problem separately from the underlying ports and buildsystems, enabling them to be much simpler, more uniform, and (importantly) more tested.

As mentioned above we still haven't come to a full conclusion on what we want the long-term solution to be so we're still happy to accept these PRs that solve real problems for real people today.

@dan-shaw dan-shaw merged commit f93b835 into microsoft:master Jun 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team. info:reviewed Pull Request changes follow basic guidelines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[boost-context] build failure on unified builds
6 participants