Commit graph

90 commits

Author SHA1 Message Date
Eric Huss
8322cdb1da Fix cmake build. 2022-03-17 11:43:38 -07:00
Wesley Wiser
55abf38bf2 Add note about upstream commit musl-patch-configure.diff is derived from 2022-01-10 10:41:31 -05:00
Laurențiu Nicola
0ec734af32 Pull in libdevstat on FreeBSD 2021-12-15 16:16:26 +02:00
Wesley Wiser
e97317c2d3 Build musl dist artifacts with debuginfo enabled
Since our musl targets link to a version of musl we build and bundle
with the targets, if users need to debug into musl or generate
backtraces which contain parts of the musl library, they will be unable
to do so unless we enable and ship the debug info.

This patch changes our dist builds so they enabled debug info when
building musl. This patch also includes a fix for CFI detection in
musl's `configure` script which has been posted upstream[1].

The net effect of this is that we now ship debug info for musl in those
targets. This adds ~90kb to those artifacts but running `strip` on
binaries produced removes all of that. For a "hello world" Rust binary
on x86_64, the numbers are:

|                        | debug | release | release + strip |
|           -            |   -   |    -    |        -        |
| without musl debuginfo | 507kb |  495kb  |      410kb      |
| with musl debuginfo    | 595kb |  584kb  |      410kb      |

Once stripped, the final binaries are the same size (down to the byte).

[1]: https://www.openwall.com/lists/musl/2021/10/21/2
2021-11-12 20:30:57 -05:00
Laurențiu Nicola
ee3b46689b Pull in libkvm on FreeBSD 2021-11-02 10:44:14 +02:00
David Carlier
ec4a9da868 update of the CI freebsd toolchain
adding libproctsta, for the upcoming libc update.
2021-09-08 08:41:22 +01:00
Mark Rousskov
21d8d5f881 Bump sccache used in CI to v0.2.15
This skips bumping Windows sccache because we run into compilation failures when
doing so (-m32 not supported by clang-cl?). Not clear on cause, but seems
easiest to just hold back.

This should avoid PGO-related failures encountered on Linux, and more broadly
seems like a good idea on other platforms as well (though it is likely not
necessary right this moment).
2021-08-25 16:26:45 -04:00
bors
409920873c Auto merge of #81451 - nikic:llvm-12, r=nagisa
Upgrade to LLVM 12

This implements the necessary adjustments to make rustc work with LLVM 12. I didn't encounter any major issues so far.

r? `@cuviper`
2021-03-04 15:16:44 +00:00
Nikita Popov
1e21b2cba8 Build newer version of cmake in Docker images
LLVM requires CMake 3.13.4, which is only available as of Ubuntu 20.04.
On images using an older version, build it manually.
2021-03-01 23:35:35 +01:00
Jakub Kulik
47f291ec2d Update Docker to use the correct target 2021-03-01 15:06:32 +01:00
Nikita Popov
b7c8bc7a75 Update dist-various to Ubuntu 20.04
This updates the dist-various-1 and dist-various-2 images to Ubuntu
20.04. This requires some adjustments:

 * `DEBIAN_FRONTEND=noninteractive` required for apt install.
 * `team-gcc-argm-embedded` PPA does not support focal. However,
   we can simply use the distro-provided `gcc-arm-none-eabi`. Per
   the comment, the PPA was only used to get a newer version.
 * rumprun has to be updated to avoid a linker error.
 * We need to build rumrun with `NOGCCERROR`, which disables use
   of `-Werror` and allows building with a newer compiler.
 * We need to install `libtinfo5`, which appears to be a dependency
   of the clang used during the fuchsia build.
 * We need to switch to `g++-8` rather than `g++-7`, as at least
   `g++-7-arm-linux-gnueabi` is not available on focal.
 * We need to upgrade to GCC 6.5 for the Solaris build, as GCC 6.4
   does not support the newer libisl version.
2021-01-29 18:38:04 +01:00
Daiki Ihara
a1af001a55 fix shellcheck error of SC2068 2020-11-06 20:33:12 +09:00
Daiki Ihara
f197da655f fix shellcheck error of SC2148 2020-11-06 20:33:12 +09:00
Mara Bos
21bd9eea74 Use own mirror for linux headers in musl-toolchain CI script. 2020-10-24 11:16:53 +02:00
Josh Triplett
6149dffff9 Install ninja on CI builders
Windows CI builds already install ninja. Install it in all the
Docker-based builds as well.
2020-08-26 14:57:07 -07:00
Thomas Lively
f3585a93fe Upgrade Emscripten on CI to 1.39.20
This Emscripten version was the first to be cut after the LLVM 11
release branch was created, so it should be the most compatible with
LLVM 11. The old version we were using was incompatible with LLVM 11
because its wasm-ld did not understand all the relocations that LLVM
11 emits.
2020-08-19 11:22:24 -07:00
Tomasz Miąsko
8de63eb964 Bump minor version of emsdk to 1.38.47
Release Notes:

```
v1.38.47: 10/02/2019
--------------------
 - Add support for FETCH API in WASM backend. This doesn't support FETCH in the
   main thread (`USE_FETCH_WORKER=0` is enforced). #9490
 - Redefine errno values to be consistent with wasi. This will let us avoid
   needing to convert the values back and forth as we use more wasi APIs.
   This is an ABI change, which should not be noticeable from user code
   unless you use errno defines (like EAGAIN) *and* keep around binaries
   compiled with an older version that you link against. In that case, you
   should rebuild them. See #9545.
 - Removed build option `-s ONLY_MY_CODE` as we now have much better solutions
   for that, like building to a wasm object file or using `STANDALONE_WASM`
   etc. (see
   https://github.com/emscripten-core/emscripten/wiki/WebAssembly-Standalone).
 - Emscripten now supports the config file (.emscripten) being placed in the
   emscripten directory rather that the current user's home directory.
   See #9543
```
2020-08-15 22:29:21 +02:00
Josh Stone
29f5e5c574 Upgrade the FreeBSD toolchain to version 11.4
FreeBSD 10 reached its end-of-life in October 2018, and that toolchain
caused issues in the LLVM 11 upgrade (#73526) that are resolved with the
toolchain from FreeBSD 11.
2020-08-09 10:38:52 -07:00
Joshua M. Clulow
8368a35f83 build dist for x86_64-unknown-illumos
This change creates a new Docker image, "dist-x86_64-illumos", and sets
things up to build the full set of "dist" packages for illumos hosts, so
that illumos users can use "rustup" to install packages.  It also
adjusts the manifest builder to expect complete toolchains for this
platform.
2020-07-08 23:39:09 +00:00
Pietro Albini
65f2dce042
ci: add native aarch64-gnu docker builder 2020-07-03 09:34:31 +02:00
Tomasz Miąsko
9d01cd1df6 Update musl to 1.1.24 2020-06-07 17:52:37 +02:00
Guillaume Gomez
38eb369fa4 Enforce Python 3 as much as possible 2020-04-10 09:09:58 -04:00
Ben Wolsieffer
55bdb61b48 Deduplicate crosstool-ng.sh 2020-03-30 20:09:45 -04:00
Pietro Albini
14da85c68e
ci: move mirrors to https://ci-mirrors.rust-lang.org 2019-11-12 11:06:11 +01:00
bors
e66a628227 Auto merge of #65302 - msizanoen1:fix-armv7-segfault, r=alexcrichton
Upgrade GCC to 8.3.0, glibc to 1.17.0 and crosstool-ng to 1.24.0 for dist-armv7-linux

#62896 was caused by the usage of the GCC 5.2.0 toolchain, which was released back in 2015 and may have bugs affecting LLVM 9.
This PR upgrade GCC to 8.3.0 from 5.2.0, glibc from 1.16.0 to 1.17.0 and crosstool-ng to 1.24.0 only for dist-armv7-linux.
Fixes #62896

r? @alexcrichton
2019-10-20 02:06:42 +00:00
Thomas Lively
4b26d9c142 User should not change between emcc install and use 2019-10-16 17:06:48 -07:00
Thomas Lively
2bf59bea48 Upgrade Emscripten targets to use upstream LLVM backend
- Compatible with Emscripten 1.38.46-upstream or later upstream.
 - Refactors the Emscripten target spec to share code with other wasm
   targets.
 - Replaces the old incorrect wasm32 C call ABI with the correct one,
   preserving the old one as wasm32_bindgen_compat for wasm-bindgen
   compatibility.
 - Updates the varargs ABI used by Emscripten and deletes the old one.
 - Removes the obsolete wasm32-experimental-emscripten target.
 - Uses EMCC_CFLAGS on CI to avoid the timeout problems with #63649.
2019-10-16 17:06:48 -07:00
qtmlabs
88ea4ff26a Add crosstool-ng 1.24.0 unzip dependency 2019-10-12 12:05:22 +07:00
Tyler Mandry
d16b7f705b Revert "Auto merge of #63649 - tlively:emscripten-upstream-upgrade, r=alexcrichton"
This reverts commit 7870050796, reversing
changes made to 2e7244807a.
2019-10-05 21:38:45 -07:00
Thomas Lively
9a55103b98 Upgrade Emscripten targets to use upstream LLVM backend
- Refactors the Emscripten target spec to share code with other wasm
   targets.
 - Replaces the incorrect wasm32 C call ABI with the old asmjs
   version, which is correct for both wasm32 and JS.
 - Updates the varargs ABI used by Emscripten and deletes the old one.
 - Removes the obsolete wasm32-experimental-emscripten target.
 - Temporarily makes Emscripten targets use panic=abort by default
   because supporting unwinding will require an LLVM patch.
2019-10-04 00:47:21 -07:00
Marco A L Barbosa
5941acd80f Use libunwind from llvm-project submodule for musl targets 2019-08-15 08:45:10 -03:00
Pietro Albini
eb832b2a32
ci: move mirrors to their standalone bucket
Currently mirrors are stored in the rust-lang-ci2 S3 bucket along with
CI toolchains. This is problematic for multiple reasons:

- CI IAM credentials are allowed to both edit and delete those files.
  A malicious user gaining access to those credentials would be able to
  change our mirrored dependencies, possibly backdooring the compiler.

- Contents of the rust-lang-ci2 bucket are disposable except for the
  mirrors' content. When we implement backups for S3 buckets we'd have
  to replicate just that part of the bucket, complicating the backup
  logic and increasing the chance of mistakes. A standalone bucket will
  be way easier to backup.

This commit switches our CI to use the new rust-lang-ci-mirrors bucket.
2019-08-12 10:31:35 +02:00
bors
c06f80a3c6 Auto merge of #61252 - indygreg:upgrade-musl, r=alexcrichton
Update musl to 1.1.22

This is the latest available version. I noticed Rust wasn't using the
latest version when I attempted to have Cargo link object files produced
outside of Cargo / Rust's toolchain and was getting missing symbol
errors. Those missing symbols were added in 1.1.21 and 1.1.22.

I'm not fully sure of the implications of this change or how
comprehensive the test coverage is. Upstream changes in 1.1.21 and
1.1.22 can be found at
https://git.musl-libc.org/cgit/musl/tree/WHATSNEW?h=v1.1.22&id=e97681d6f2c44bf5fa9ecdd30607cb63c780062e#n1989.
2019-06-30 08:42:58 +00:00
bors
041bec87c0 Auto merge of #61300 - indygreg:upgrade-cross-make, r=sanxiyn
Update musl-cross-make to 0.9.8

This version uses musl 1.1.22 and GCC 6.4.0 by default. It also
contains support for newer binutils and GCC versions, should we
want to bump those as well. But I'm purposefully limiting this
patch in order to reduce the surface area for controversy.
2019-05-31 22:16:09 +00:00
Alex Crichton
3eda151086 Update all s3 URLs used on CI with subdomains
Ensure that they're all forwards-compatible with AWS updates happening
next year by ensuring the bucket name shows up in the domain name.

Closes #61168
2019-05-29 07:03:50 -07:00
Gregory Szorc
51b47b8158 Update musl-cross-make to 0.9.8
This version uses musl 1.1.22 and GCC 6.4.0 by default. It also
contains support for newer binutils and GCC versions, should we
want to bump those as well. But I'm purposefully limiting this
patch in order to reduce the surface area for controversy.
2019-05-28 19:30:33 -07:00
Gregory Szorc
aaf6698793 Update musl to 1.1.22.
This is the latest available version. I noticed Rust wasn't using the
latest version when I attempted to have Cargo link object files produced
outside of Cargo / Rust's toolchain and was getting missing symbol
errors. Those missing symbols were added in 1.1.21 and 1.1.22.

I'm not fully sure of the implications of this change or how
comprehensive the test coverage is. Upstream changes in 1.1.21 and
1.1.22 can be found at
https://git.musl-libc.org/cgit/musl/tree/WHATSNEW?h=v1.1.22&id=e97681d6f2c44bf5fa9ecdd30607cb63c780062e#n1989.
2019-05-28 09:47:56 -07:00
Mateusz Mikuła
0caa251da2 Conditionally provide cc in musl-toolchain.sh 2019-05-10 16:12:47 +02:00
Mateusz Mikuła
f74debbe7d Make tests compatible with musl host 2019-05-10 16:12:47 +02:00
Vadim Petrochenkov
2ae7b0c898 tidy: Fix false positives from long URLs 2019-04-27 20:29:27 +03:00
varkor
7f0f0e31ec Remove double trailing newlines 2019-04-22 16:57:01 +01:00
Pietro Albini
4e920f2b04
ci: use a custom android sdk manager with pinning and mirroring 2019-04-12 22:18:48 +02:00
Pietro Albini
d13547a1c6
ci: pin android emulator to 28.0.23 2019-04-07 13:52:33 +02:00
Alex Crichton
fcc8b8cef2 ci: Update FreeBSD tarball downloads
These appear to have disappeared from the original server, so I acquired
the contents from a different mirror and uploaded them to our S3 bucket
2019-04-04 11:40:21 -07:00
Mateusz Mikuła
c764890d7c musl: build toolchain libs with -fPIC 2019-03-27 18:37:21 +01:00
Mateusz Mikuła
451343e0f3
Fix TARGET variable in musl-toolchain.sh 2019-03-15 01:19:54 +01:00
Mateusz Mikuła
f364f483a3 Address final review 2019-03-14 16:55:47 +01:00
Mateusz Mikuła
17464a7b87 Final cleanups 2019-03-13 22:36:22 +01:00
Mateusz Mikuła
cbc1ce0b84 Drop copyright notice from musl-toolchain 2019-03-13 22:21:06 +01:00
Mateusz Mikuła
cacb3053e8 musl: update LLVM to 7 2019-03-13 22:21:06 +01:00