Commit Graph

106 Commits

Author SHA1 Message Date
jyn
7d2373e48f Fix progress messages for configure in bootstrap_test.py
Before it would unconditionally print `configure-args = []`.
2023-06-23 21:12:06 -05:00
Trevor Gross
22d00dcd47 Apply changes to fix python linting errors 2023-06-16 20:56:01 -04:00
jyn
3591a1239c Allow disabling truncation for long config lines 2023-06-03 11:29:21 -05:00
yukang
787f3fea15 fix bug in set args 2023-04-27 00:32:01 +08:00
yukang
589877cef1 Fix help message of option for checking List 2023-04-27 00:15:56 +08:00
yukang
89566d5a9b configure --set support list as arguments 2023-04-27 00:15:55 +08:00
jchzhou
d2516c1191 configure.py: add flag for riscv{64,32}gc musl-root 2023-04-25 01:20:28 +08:00
Matthias Krüger
0820e31a00 Rollup merge of #110541 - jyn514:fix-configure, r=ozkanonur
Fix various configure bugs

Fixes https://github.com/rust-lang/rust/issues/107050. Fixes https://github.com/rust-lang/rust/issues/108928. Closes https://github.com/rust-lang/rust/pull/108641.

I recommend reading this commit-by-commit to see the commit descriptions, but the code changes are small.

This also changes the README to suggest `configure` instead of `printf`, as well as a few other cleanups described in the commit message.
2023-04-19 17:54:44 +02:00
jyn
b7607a9113 configure: Set profile = user by default 2023-04-19 09:50:21 -05:00
jyn
6d07dbc266 configure: Fix bug in configure_top_level_key
Before, it only worked for numbers, not strings.
2023-04-19 08:25:49 -05:00
Mads Ravn
010d7975d6 Changing position of early exit and using standard error method with correct exit code 2023-04-19 14:58:53 +02:00
Mads Ravn
9aa3f053d7 './configure' now checks if 'config.toml' exists before writing to that destination 2023-04-09 22:50:42 +02:00
Joshua Nelson
c7eccdaaee Use python3.11 in CI to make sure toml is validated
This also fixes a regression from
https://github.com/rust-lang/rust/pull/106085 which stopped testing that
we support python2 in PR CI.
2023-03-17 10:52:51 -05:00
Joshua Nelson
d808bc296d Add tests for configure.py
- Separate out functions so that each unit test doesn't create a file on disk
- Add a few unit tests

Notably, verifying that we generate valid toml relies on python 3.11 so
we can use `tomllib`.
2023-03-17 10:24:40 -05:00
Thom Chiovoloni
fcb2a3665f Rename config.toml.example to config.example.toml 2023-03-11 14:10:00 -08:00
Yuki Okushi
a7b9488599 Rollup merge of #108619 - jyn514:llvm-version-check, r=cuviper
Remove the option to disable `llvm-version-check`

We don't support old versions of LLVM; there's no reason to have an easy way to force bootstrap to use them anyway. If someone really needs to use an unsupported version, they can modify bootstrap to change the version range.

r? ``@cuviper`` on whether we want to do this or not, since you maintain rust on Fedora and touched this config last.
2023-03-07 23:06:21 +09:00
Joshua Nelson
8becfed1c9 Remove the option to disable llvm-version-check
We don't support old versions of LLVM; there's no reason to have an easy
way to force bootstrap to use them anyway. If someone really needs to
use an unsupported version, they can modify bootstrap to change the
version range.
2023-03-05 14:42:15 +00:00
Matthias Krüger
538f19d638 Rollup merge of #108632 - Teapot4195:issue-108612-fix, r=ozkanonur
Omit unchanged options from config.toml in `configure.py`

Leaves section tags, but removes options that are unchanged.
Change in `config.toml.example` is to prevent comments from sneaking in by being directly after a section tag

closes #108612
2023-03-04 20:48:17 +01:00
Alex Huang
00f98e6810 ./configure script should only show blocks (and associated comments) where it is not default 2023-03-03 17:27:29 -05:00
KittyBorgX
a6580baa6c Allow setting hashmap toml values in ./configure 2023-03-02 19:00:26 +05:30
lionelllohcd
5643706ca2 Removed trailing spaces to satisfy lint 2023-02-19 23:51:17 -08:00
lionelllohcd
960ac2e07f [107049] Recognise top level keys in config.toml.example 2023-02-18 23:36:51 -08:00
Albert Larsan
40ba0e84d5 Change src/test to tests in source files, fix tidy and tests 2023-01-11 09:32:13 +00:00
Marcus Calhoun-Lopez
480297d216 Respect --set=target.platform during build
Avoid quoting targets that do not contain a period.
See 1532fd8cd0

`--set=target.platform.linker` is ignored if RUSTFLAGS is not set.
Undo parts of d1291dc8b4
2022-12-29 12:22:49 -07:00
Joshua Nelson
4151a5b96c Remove unsupported options in configure.py
I've seen people using `optimize = false` and `full-bootstrap = true` in the past, without knowing
that they're not recommended. Remove `optimize` and a few other options that are always a bad idea,
and document that full-bootstrap is only for testing reproducible builds.
2022-07-10 16:28:57 -05:00
yue4u
1532fd8cd0 Quote replace target in bootstrap configure 2022-05-22 23:17:44 +09:00
Jon Gjengset
7c20a29af8 configure: don't serialize empty array elements
Before this change:

    $ ./configure --codegen-backends=
    [..]
    $ grep -P '^codegen-backends' config.toml
    codegen-backends = ['']

After this change:

    $ ./configure --codegen-backends=
    [..]
    $ grep -P '^codegen-backends' config.toml
    codegen-backends = []
2022-03-10 12:39:34 -08:00
Hans Kratz
bcf7cf6670 Add --enable-debug-assertions-std option to configure script. 2021-10-12 21:49:06 +02:00
Hans Kratz
cfc7782a84 Add --enable-overflow-checks-std option to configure script. 2021-10-12 21:49:06 +02:00
Hans Kratz
2f7095389d Add options for enabling overflow checks in rustc and std.
The options are `overflow-checks` and `overflow-checks-std`
defaulting to false.
2021-08-06 14:03:53 +02:00
Manuel Drehwald
8f6827ffb7 add two new build flags to build clang and enable llvm plugins 2021-07-31 23:14:54 +02:00
Pietro Albini
f63c80556a add --codegen-backends=foo,bar ./configure flag
Unfortunately this requires a proper ./configure flag, as the codegen
backends config entry is a list, not a string (breaking --set).
2021-07-19 16:48:12 +02:00
Joshua Nelson
28e83a4716 Cleanup option parsing and config.toml.example
- Add an assertion that `link-shared = true` when `thin-lto = true`.
  Previously, link-shared would be silently overwritten.

- Get rid of `Option<bool>` in bootstrap/config.rs. Set defaults
  immediately instead of delaying until later in bootstrap. This makes
  it easier to find what the default value is.

- Remove redundant `config.x = false` when the default was already false
- Set defaults for `bindir` in `default_opts()` instead of `parse()`
- Update `download-ci-llvm = if-supported` option to match bootstrap.py
- Remove redundant check for link_shared. Previously, it was checked twice.

- Update various options in config.toml.example to their defaults.
  Previously, some options showed an example value instead of the
  default value.

- Fix incorrect defaults in config.toml.example
  + `use-libcxx` defaults to false
  + Add missing `check-stage = 0`
  + Update several defaults to be conditional (e.g. `if incremental { 10 } else { 100 }`)

- Remove redundant defaults in prose
- Use the same comment for the default and target-dependent `musl-root`
- Fix typos
- Link to `cc_detect` for `cc` and `cxx`, since the logic is ... complicated.
- Update more defaults to better reflect how they actually get set
- Remove ignored `gpg-password-file` option

  This stopped being used in
  7704d35acc,
  but was never removed from config.toml.

- Remove unused flags from `config.toml`
    + Disallow `infodir` and `localstatedir` in `config.toml`
    + Allow the flags in `./configure`, but give a warning that they will be
      ignored.
    + Fix incorrect comment that `datadir` will be ignored.

    Example output:

    ```
    $ ./configure --set install.infodir=xxx
    configure: processing command line
    configure:
    configure: install.infodir      := xxx
    configure: build.configure-args := ['--set', 'install.infodir=xxx']
    warning: infodir will be ignored
    configure:
    configure: writing `config.toml` in current directory
    configure:
    configure: run `python /home/joshua/rustc3/x.py --help`
    configure:
    ```

- Update CHANGELOG
- Add "as an example" where appropriate
- Link to an issue instead of to ephemeral chats
2021-04-07 14:36:02 -04:00
Tri Vo
c7d9bffe76 HWASan support 2021-02-07 23:48:58 -08:00
Pietro Albini
0a2034dca4 bootstrap: add the dist.compression-formats option
The option allows to add or remove compression formats used while
producing dist tarballs.
2020-12-29 11:56:25 +01:00
Josh Stone
5f08568042 x.py: allow a custom string appended to the version
This adds `rust.description` to the config as a descriptive string to be
appended to `rustc --version` output, which is also used in places like
debuginfo `DW_AT_producer`. This may be useful for supplementary build
information, like distro-specific package versions.

For example, in Fedora 33, `gcc --version` outputs:

    gcc (GCC) 10.2.1 20201016 (Red Hat 10.2.1-6)

With this change, we can add similar vendor info to `rustc --version`.
2020-11-16 14:08:21 -08:00
Joshua Nelson
3863dee159 Infer the default host target from the host toolchain if possible
This fixes ongoing issues where x.py will detect the wrong host triple
between MSVC and GNU.

- Add line to changelog
2020-11-05 17:44:22 -05:00
Marc-Antoine Perennou
66fa42a946 allow using the system-wide llvm-libunwind as the unwinder
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2020-10-21 14:45:58 +02:00
Tom Eccles
a008a55ff6 Add a disabled builder for riscv64 emulated tests
This will run all tests for `riscv64gc-unknown-linux-gnu` in a QEMU
instance. This is based upon the armhf QEMU test image.
2020-06-09 16:22:15 +01:00
Ralf Jung
dc7524be27 remove lldb package from bootstrap, config and build-manifest
it's not been built since a long time ago
2020-05-10 22:43:58 +02:00
Josh Stone
3a55e8875e configure: set LLVM flags with a value
Rather than a boolean `--enable-cflags` etc., these options should
reflect that they are for LLVM, and that they need a value. You would
now use `./configure --llvm-cflags="..."`.
2020-02-17 11:01:52 -08:00
Yuki Okushi
931005d549 Rollup merge of #68947 - chrissimpkins:python-fmt, r=alexcrichton
Python script PEP8 style guide space formatting and minor Python source cleanup

This PR includes the following changes in the Python sources based on a flake8 3.7.9 (mccabe: 0.6.1, pycodestyle: 2.5.0, pyflakes: 2.1.1) CPython 3.7.6 on Darwin lint:

- PEP8 style guide spacing updates *without* line length changes
- removal of unused local variable assignments in context managers and exception handling
- removal of unused Python import statements
- removal of unnecessary semicolons
2020-02-12 18:55:41 +09:00
Andrew Paverd
87df124ba7 Enable Control Flow Guard in rustbuild 2020-02-10 19:26:25 +00:00
Chris Simpkins
6ce8d2b000 PEP8 format spacing 2020-02-07 22:09:55 -05:00
Josh Stone
6c7c512020 Fix the configure.py TOML field for a couple LLVM options
The actual fields in `config.toml.example` have dashes, not underscores.
2019-12-13 14:00:47 -08:00
Wang Xuerui
23b382755d ci: add support for MIPS64 musl targets 2019-10-26 18:47:08 +08:00
Alex Crichton
c7d285b781 Remove src/llvm-emscripten submodule
With #65251 landed there's no need to build two LLVM backends and ship
them with rustc, every target we have now uses the same LLVM backend!

This removes the `src/llvm-emscripten` submodule and additionally
removes all support from rustbuild for building the emscripten LLVM
backend. Multiple codegen backend support is left in place for now, and
this is intended to be an easy 10-15 minute win on CI times by avoiding
having to build LLVM twice.
2019-10-21 13:05:31 -07:00
Ralf Jung
946bed89da remove test-miri flag from bootstrap 2019-08-08 19:31:46 +02:00
Adrian Budau
2b0f4483d2 Added support for armv7-unknown-linux-gnueabi and armv7-unknown-linux-musleabi.
Support for the targets in the compiler and std build in the CI.
2019-08-02 20:06:36 +03:00
Josh Stone
1aeadcc0d5 Require a value for configure --debuginfo-level
In `configure.py`, using the `o` function creates an enable/disable
boolean setting, and writes `true` or `false` in `config.toml`. However,
rustbuild is expecting to parse a `u32` debuginfo level. We can change
to the `v` function to have the options require a value.
2019-07-23 12:04:31 -07:00