-
Notifications
You must be signed in to change notification settings - Fork 610
Upgrade to Debain Buster #62
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
Conversation
|
Are #11 (comment) and #29 (comment) still valid? |
|
Re: #11 (comment) -- definitely even more valid now than it was then; Alpine doesn't (AFAIK) support cross-compiling at all, while Debian has a very wide variety of cross compilers available, which we make active use of here to make it easier to build all these various binaries. Re: #29 (comment) -- definitely also still relevant, given that Alpine is still going to have less name recognition for new Docker users than Ubuntu does. Re: Travis, it looks like something about our |
Alpine supports cross-compiling, but there are no prebuild binaries available: https://github.com/alpinelinux/aports/blob/master/scripts/bootstrap.sh#L39-L53 |
|
I've gone down a rabbit hole around The TL;DR is that even There are other wrappers for syscalls, but they're deprecated and long since unimplemented ( The actual implementation of I did find that Buster adds explicit support for If we don't use The only alternative I'm seeing is to use musl (which is frankly designed for what we're trying to do), but the hurdles there we need to overcome are that Debian's (We could consider building just the bits of |
|
So, I went down the rabbit hole of building Doing a standard More interestingly, I did Edit: adding Edit 2: here's the before/after: -rwxr-xr-x 1 tianon tianon 1.8K Dec 23 13:58 amd64/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 1.7K Dec 23 13:58 arm32v5/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 1.6K Dec 23 13:58 arm32v7/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 4.7K Dec 23 13:58 arm64v8/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 650K Dec 23 13:58 i386/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 65K Dec 23 13:58 ppc64le/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 2.0K Dec 23 13:58 s390x/hello-world/hello*vs -rwxr-xr-x 1 tianon tianon 14K Dec 23 13:27 amd64/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 8.8K Dec 23 13:28 arm32v5/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 4.8K Dec 23 13:28 arm32v7/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 9.0K Dec 23 13:28 arm64v8/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 13K Dec 23 13:28 i386/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 65K Dec 23 13:55 ppc64le/hello-world/hello*
-rwxr-xr-x 1 tianon tianon 9.0K Dec 23 13:55 s390x/hello-world/hello* |
|
With |
The intent of the previous implementation was to avoid libc, but it turns out that just invoking a syscall without libc is complicated (see docker-library#62 (comment) for details). On the other hand, my personal machine can cross-compile all of musl in ~30s per architecture, which is pretty reasonable, and the resulting binary sizes are only around ~10k each, and I was able to do so successfully for every architecture we currently support.
The intent of the previous implementation was to avoid libc, but it turns out that just invoking a syscall without libc is complicated (see docker-library#62 (comment) for details). On the other hand, my personal machine can cross-compile all of musl in ~30s per architecture, which is pretty reasonable, and the resulting binary sizes are only around ~10k each, and I was able to do so successfully for every architecture we currently support.
The intent of the previous implementation was to avoid libc, but it turns out that just invoking a syscall without libc is complicated (see docker-library#62 (comment) for details). On the other hand, my personal machine can cross-compile all of musl in ~30s per architecture, which is pretty reasonable, and the resulting binary sizes are only around ~10k each, and I was able to do so successfully for every architecture we currently support.
The intent of the previous implementation was to avoid libc, but it turns out that just invoking a syscall without libc is complicated (see docker-library#62 (comment) for details). On the other hand, my personal machine can cross-compile all of musl in ~30s per architecture, which is pretty reasonable, and the resulting binary sizes are only around ~10k each, and I was able to do so successfully for every architecture we currently support.
No description provided.