Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Add linux-musl build leg #17623

Merged
merged 1 commit into from
Apr 18, 2018
Merged

Conversation

weshaggard
Copy link
Member

@weshaggard weshaggard merged commit b61adce into dotnet:master Apr 18, 2018
@sdmaclea
Copy link

Any comment on this ? Is this intended to be experimental ? New direction ?

@ghost
Copy link

ghost commented Apr 18, 2018

@sdmaclea, trivia: it started at dotnet/core#1331, moved to https://github.com/dotnet/core-setup/issues/3817, assembly names discussion https://github.com/dotnet/corefx/issues/28554, RIDs updated with linux-musl PR dotnet/corefx#28560 and corresponding corefx PR to this change: dotnet/corefx#29168.

In short:

  • linux-x64 continues to mean "linux x64 with glibc-ism", no change there
  • linux-musl-x64 triplet, which does not inherit from linux-x64 but instead is its sibling, means "linux x64 with muscle libc"

In future, we can add dietlibc, uclibc, bionic-libc etc. to give some room for non-gnu-ism, other POSIX candidates: busybox, toybox etc.

@eerhardt
Copy link
Member

@kasper3 - that is a pretty good summary of the activity. However, one piece was incorrect:

linux-musl-x64 triplet, which does not inherit from linux-x64 but instead is its sibling,

Actually, linux-musl-x64 does inherit from linux-x64. See the RID hierarchy here and the reasoning/justification in the discussion starting here.

@eerhardt
Copy link
Member

Note - the over-arching idea here is to not produce "alpine" branded packages/tarballs. Instead these binaries and packages are intended to work across any musl based Linux. So we are in the process of renaming "alpine" in the packages to "linux-musl". The steps are:

  1. Add the new linux-musl packages.
  2. Do this throughout the stack to keep it building. (coreclr -> corefx -> core-setup -> CLI)
  3. Remove the "alpine" packages in the reverse order. (CLI -> core-setup -> corefx -> coreclr)

This way nothing breaks during the rename process.

@ghost
Copy link

ghost commented Apr 23, 2018

While building CoreCLR, should we expect output directory to be bin/Product/Linux.musl.arm.Debug/ or bin/Product/Linux.arm.Debug/? If former is expected than I am getting latter with current master.

@weshaggard
Copy link
Member Author

@kasper3 what command are you building with? Also it looks like you are trying to build linux-musl for arm which currently we are only building it for x64.

@ghost
Copy link

ghost commented Apr 23, 2018

@weshaggard, I noticed when working on #17730. Using build steps from https://github.com/dotnet/coreclr/issues/17468#issuecomment-382831060 on troyfontaine/armhf-alpinelinux docker (it's pure alpine 3.7 arm32 with additional qemu layer for x64), and changes from my branch; coreclr built successfully.
Was just wondering if OutputDir should also have a different name on alpine (as in on x64; Linux.musl.x64.Debug)?

@weshaggard
Copy link
Member Author

I'd expect it to be Linux.arm.Debug as we only take into account the general OS name in the output directory not the full RID so it would just be "Linux"

@AddRemover
Copy link

I am looking for a dotnet runtime compliled to run on arm32 bin with musl.
The target is to run one .net app on my OpenWRT router Linksys WRT3200ACM which is arm32.
So, I can't use musl-arm64, I need musl-arm32.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants