Skip to content
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

Docs: Change latest to main in dockerfile example #1443

Closed
wants to merge 516 commits into from

Conversation

maxpowel
Copy link

@maxpowel maxpowel commented Feb 9, 2024

The tag latest uses a very old image (with very old gcc and glib). The actual "latest" is called main. This little thing cost me several hours and this change will prevent other people to suffer the same.

bors bot and others added 30 commits November 27, 2022 18:33
1091: improve weekly checks and push the resulting images r=Alexhuszagh a=Emilgardis

since the maximum timeout for workflows is not enough, we need to use the same strategy as our normal ci flow

also adds the ability to filter targets to run

<img width="366" alt="image" src="https://user-images.githubusercontent.com/1502855/197333979-2ad4616e-50ff-4b9a-aea1-dfdef518fe3c.png">


this pr also pushes the results so that the cache is renewed, making the images not stagnate

Co-authored-by: Emil Gardström <[email protected]>
1132: Add C++ exception support to FreeBSD targets. r=Emilgardis a=Alexhuszagh



Co-authored-by: Alex Huszagh <[email protected]>
1134: Use a linker script for libstdc++. r=Emilgardis a=Alexhuszagh

Use a linker script for `libstdc++.so` since we remove the dylib, to ensure a static build is always used to avoid segfaults at runtime. However, the archive can reference missing symbols present in `libc` or `libgcc`, and itself depends on symbols in `libm`. To ensure these libraries are properly linked when forcing a build against the static `libstdc++`, create a linker script for `libstdc++.so` that links to the static archive, and as needed, all dependencies.

Related to cross-rs#1124.

Co-authored-by: Alex Huszagh <[email protected]>
1118: Added ARMv8-M newlib targets. r=Emilgardis a=Alexhuszagh

Closes cross-rs#1116.

Co-authored-by: Alex Huszagh <[email protected]>
1157: Fix mount paths on Windows. r=Emilgardis a=Alexhuszagh

Fixes mount paths outside of the workspace mount directory on Windows and those provided as a WSL path. This also adds unittests for Windows outside of WSL2.

Closes cross-rs#1145.
Closes cross-rs#1156.

Co-authored-by: Alex Huszagh <[email protected]>
1164: Add package site mirrors for FreeBSD. r=Emilgardis a=Alexhuszagh

Closes cross-rs#1162.

Co-authored-by: Alex Huszagh <[email protected]>
1166: freebsd: include memstat in build image r=Emilgardis a=taiki-e

libc 0.2.138 added memstat_* functions, but the build with cross fails because the build image does not contain the corresponding library. See rust-lang/libc#3025 for more context. See also rust-lang/rust#105222 which is the same fix to rust-lang/rust's build image.


Co-authored-by: Taiki Endo <[email protected]>
Fixes CMake support for all targets, ensuring support for C11, C++11, `try_run`, and more features. To do so, we've included tests with a CMake test suite that compiles for a bare-metal target, one that compiles against [re2](https://github.com/google/re2), and one using CMake's `try_run` (checking [CMAKE_CROSSCOMPILING_EMULATOR](https://cmake.org/cmake/help/latest/variable/CMAKE_CROSSCOMPILING_EMULATOR.html) is set for any cross-compiled targets).

CMake support for Android targets was fixed by providing a toolchain file that specifies the API level and the standalone toolchain path, and ensuring that compiler detection is forcibly disabled. For other targets, a default toolchain file is provided that ensures the correct system name, processor, cross-compiling emulator, binutils, and cross-compilers are used. For bare-metal (newlib) targets, this ensures that `try_compile` uses a static library rather than an executable to avoid requiring a linker script to detect if the compiler works.

This also adds a few minor changes for newlib targets:
- Adds C++ support to bare-metal newlib targets by installing `libstdc++-arm-none-eabi-newlib`.
- Updates `targets.toml` to specify that newlib targets do not have `std` support.
- Use the Cortex-M1 CPU for `thumbv6m-none-eabi` rather than the Cortex-M3 (an ARMv7-M CPU) for the Qemu runner.
1112: Fix CMake Support and Enhance Newlib Targets r=Emilgardis a=Alexhuszagh

Fix CMake Support and Enhance Newlib Targets

Fix CMake support for Android targets by providing a toolchain file that specifies the API level and the standalone toolchain path, and ensuring that compiler detection is forcibly disabled. Fix CMake support for newlib targets by providing a toolchain file that signals to CMake it is compiling for an embedded target, providing correct C, C++, and ASM flags even when invoked externally, and ensuring CMake skips testing if the C and C++ compilers work by running a binary file. Also add C++ support to bare-metal newlib targets, by also installing `libstdc++-arm-none-eabi-newlib`. Finally, `targets.toml` was updated to ensure newlib targets do not have `std` support.

Other minor changes including using the Cortex-M1 CPU for `thumbv6m-none-eabi` rather than the Cortex-M3 (an ARMv7-M CPU) for the Qemu runner.

To ensure these work, test suites for CMake using C+11 features, CMake's `try_run` feature (checking [CMAKE_CROSSCOMPILING_EMULATOR](https://cmake.org/cmake/help/latest/variable/CMAKE_CROSSCOMPILING_EMULATOR.html) is set), and a `no_std` package with a C++ dependency have been added.

Closes cross-rs#1110.
Closes cross-rs#1113.

Co-authored-by: Alex Huszagh <[email protected]>
The original bug fix solved the problem of a image name ending in a single `-` character (which docker doesn't permit). However, docker also doesn't permit names ending in a `.`, so we need to handle that case too.

Also, removing just the last char is insufficient, as names may end up ending with multiple consecutive `-` or `.` characters, so we need to loop until they're all gone.
Remove the duplicated entry `mips-unknown-linux-musl` in the README.
1176: Remove duplicated entry from README r=Alexhuszagh a=rbran

Remove the duplicated entry `mips-unknown-linux-musl` in the README.

Co-authored-by: Rubens Brandão <[email protected]>
1171: Bugfix: custom image tag can't end with neither a `-` nor `.` r=Alexhuszagh,emilgardis a=growse

The original bug fix solved the problem of a image name ending in a single `-` character (which docker doesn't permit). However, docker also doesn't permit names ending in a `.`, so we need to handle that case too.

Also, removing just the last char is insufficient, as names may end up ending with multiple consecutive `-` or `.` characters, so we need to loop until they're all gone.

Co-authored-by: Andrew Rowson <[email protected]>
`pre-build = "file"` and `image.toolchain` had a bad serialization
1183: Fix error when using certain config values in Cargo.toml r=Emilgardis a=Emilgardis

`pre-build = "file"` and `image.toolchain` had a bad serialization, this fixes that

Closes cross-rs#1182


Co-authored-by: Emil Gardström <[email protected]>
Bumps [bumpalo](https://github.com/fitzgen/bumpalo) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/fitzgen/bumpalo/releases)
- [Changelog](https://github.com/fitzgen/bumpalo/blob/main/CHANGELOG.md)
- [Commits](fitzgen/bumpalo@3.11.0...3.12.0)

---
updated-dependencies:
- dependency-name: bumpalo
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
1191: Bump bumpalo from 3.11.0 to 3.12.0 r=Emilgardis a=dependabot[bot]

Bumps [bumpalo](https://github.com/fitzgen/bumpalo) from 3.11.0 to 3.12.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/fitzgen/bumpalo/blob/main/CHANGELOG.md">bumpalo's changelog</a>.</em></p>
<blockquote>
<h2>3.12.0</h2>
<p>Released 2023-01-17.</p>
<h3>Added</h3>
<ul>
<li>Added the <code>bumpalo::boxed::Box::bump</code> and <code>bumpalo::collections::String::bump</code>
getters to get the underlying <code>Bump</code> that a string or box was allocated into.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Some uses of <code>Box</code> that MIRI did not previously consider as UB are now
reported as UB, and <code>bumpalo</code>'s internals have been adjusted to avoid the new
UB.</li>
</ul>
<hr />
<h2>3.11.1</h2>
<p>Released 2022-10-18.</p>
<h3>Security</h3>
<ul>
<li>Fixed a bug where when <code>std::vec::IntoIter</code> was ported to
<code>bumpalo::collections::vec::IntoIter</code>, it didn't get its underlying <code>Bump</code>'s
lifetime threaded through. This meant that <code>rustc</code> was not checking the
borrows for <code>bumpalo::collections::IntoIter</code> and this could result in
use-after-free bugs.</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/fitzgen/bumpalo/commit/50ba1bdd406665bd2e6ba430e167a38ed1b13964"><code>50ba1bd</code></a> Bump to 3.12.0</li>
<li><a href="https://github.com/fitzgen/bumpalo/commit/3dd36507db87e1b86617f1da88a9bc81374e7faf"><code>3dd3650</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/fitzgen/bumpalo/issues/190">#190</a> from mattfbacon/main</li>
<li><a href="https://github.com/fitzgen/bumpalo/commit/37be9a98e4241a9cc6e534c47778cb2f4337b83f"><code>37be9a9</code></a> Merge branch 'fitzgen:main' into main</li>
<li><a href="https://github.com/fitzgen/bumpalo/commit/3664dbb7922fa1372adf53fb8767cd0fc2115267"><code>3664dbb</code></a> Add String::bump method</li>
<li><a href="https://github.com/fitzgen/bumpalo/commit/701514f553a6feab61b99e0382f314d532f57272"><code>701514f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/fitzgen/bumpalo/issues/189">#189</a> from mattfbacon/main</li>
<li><a href="https://github.com/fitzgen/bumpalo/commit/c6507f7a4c33811a275b357004c3904261c8908c"><code>c6507f7</code></a> Add Vec::bump method</li>
<li><a href="https://github.com/fitzgen/bumpalo/commit/b1e67b7aa188d4128343858bf86a29f1c99362c6"><code>b1e67b7</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/fitzgen/bumpalo/issues/188">#188</a> from saethlin/field-retagging</li>
<li><a href="https://github.com/fitzgen/bumpalo/commit/d325e2c94576f6806508751f945ba5985661b721"><code>d325e2c</code></a> Use ManuallyDrop with bumpalo's Box instead of mem::forget</li>
<li><a href="https://github.com/fitzgen/bumpalo/commit/c699cd1303c441953344f354892b550df6c24aa1"><code>c699cd1</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/fitzgen/bumpalo/issues/183">#183</a> from stepancheg/allocated-bytes-no-headers</li>
<li><a href="https://github.com/fitzgen/bumpalo/commit/5805a293e8ba99f2adfd9c02ee6ad2532ad52fca"><code>5805a29</code></a> Clarify allocated_bytes does not include headers</li>
<li>Additional commits viewable in <a href="https://github.com/fitzgen/bumpalo/compare/3.11.0...3.12.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bumpalo&package-manager=cargo&previous-version=3.11.0&new-version=3.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` use these labels` will set the current labels as the default for future PRs for this repo and language
- ``@dependabot` use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- ``@dependabot` use these assignees` will set the current assignees as the default for future PRs for this repo and language
- ``@dependabot` use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/cross-rs/cross/network/alerts).

</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1199: Bugfix: use current target_dir path when copying build artifacts back r=Emilgardis a=hulucc

Closes cross-rs#1103 

Co-authored-by: hulucc <[email protected]>
Co-authored-by: Emil Gardström <[email protected]>
@maxpowel maxpowel requested a review from a team as a code owner February 9, 2024 09:55
@Emilgardis
Copy link
Member

Emilgardis commented Feb 9, 2024

I'm not sure if this should be merged. The reason is that you should use the tag associated with the cross version you have.

latest = v0.2.5
main/edge = last CI build on main branch

I'd highly recommend you to use FROM $CROSS_BASE_IMAGE instead, documented under this example.

I'd be open to change from latest to 0.2.5, but not to main. I can be persuaded though :D

@maxpowel
Copy link
Author

You are right the solution is there, I guess that we can discard this PR then.

But from the point of view of someone new to cross, I would say that for me this part was a bit confusing.
FROM $CROSS_BASE_IMAGE is actually what I needed and I in my opinion this is the best and recommended option.
Maybe putting first the good solution would help for the new people who are not very sure about what are they doing (like me hehe).

@maxpowel maxpowel changed the base branch from main to v0.2.5 February 12, 2024 11:13
@Emilgardis
Copy link
Member

I'm not sure why you changed the base branch for the pr. What I meant with I'd be open to change from latest to 0.2.5, but not to main was using FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:0.2.5

@Emilgardis
Copy link
Member

I'm closing this PR, if you feel like this should be done please reach out here!

@Emilgardis Emilgardis closed this Feb 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.