-
Notifications
You must be signed in to change notification settings - Fork 11
Use musl finally #52
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
Use musl finally #52
Conversation
fcff7fe
to
d32ad53
Compare
f4f2c7c
to
9e9cb9d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This isn't the most thorough pass, and I am still abroad, but I was very annoying with my comments :)
It's mostly syntactic comments though so it's not very relevant.
I will check the submodules when I return.
x86_loader_path = x86_toolchain_path / "x86_64-linux-musl" / "lib" / "libc.so" | ||
shutil.copy2(x86_loader_path, "/lib/ld-musl-x86_64.so.1") | ||
|
||
# Create the entrypoint with the updated path. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you not just create the docker with a build argument that will be added to the path?
This will remove the need for the really weird entry point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no, since changing env variables is done ONLY via the ENV keyword, and can't be done "dynamically", so we would have to paste the path hardcoded, which could make it hard to add new architectures (we do that automatically here :) )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
docker run --env
?
You can even use --env-file
, if you want.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem is that this script run inside the docker. This means i cannot create the env file outside of it :(
Maybe i could have 2 separate scripts, one that downloads the toolchains, one that runs in the host that creates an env file. If you agree, i will open an issue to do it in a separate issue.
Closes #53 |
TODO: update documentation - explain why musl is recommended, etc... |
Now builds are cancellable via ctrl+c :)
We now invoke make install for all of these packages. We later on add their include paths so that the compiler is aware of any needed headers. This allows us to not be reliant on *-dev libaries, which are often libc-based, and are not installed in our custom musl toolchains.
cicd does not have a tty device, but when a user is compiling, we would like to offer him a tty interface (so that he could cancel builds, for example).
We needed it for cross-installation of ncrusesw
The generic musl arm compiler in the musl.cc website is bugged - so i downgraded the arm compiler to gcc-10, which seems to work.
We also install xz to the build directory, for a cleaner setup.
3e8eba0
to
90ef1dd
Compare
No description provided.