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

Pass through --sysroot to host compiler #185

Merged
merged 1 commit into from
Oct 27, 2023

Conversation

lalten
Copy link
Contributor

@lalten lalten commented Oct 27, 2023

nvcc shells out to the host compiler, but does not set the --sysroot option. In the case of a hermetic cc_toolchain the host compiler will then fail to find the system includes.

See https://github.com/lalten/mre_rules_cuda-sysroot/tree/main for a demonstration

See discussion on Bazel Slack: https://bazelbuild.slack.com/archives/C043E282KUG/p1698396425839079

Copy link
Collaborator

@cloudhan cloudhan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks for the contribution.

Note we might need move it to feature based configuration in the future if some host compilers use different option name for sysroot, for now, lets keep it simple and stupid.

@cloudhan cloudhan merged commit 45ee11d into bazel-contrib:main Oct 27, 2023
14 checks passed
anakinxc referenced this pull request in secretflow/spu Aug 14, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [rules_cuda](https://togithub.com/bazel-contrib/rules_cuda) |
http_archive | patch | `v0.2.1` -> `v0.2.2` |

---

### Release Notes

<details>
<summary>bazel-contrib/rules_cuda (rules_cuda)</summary>

###
[`v0.2.2`](https://togithub.com/bazel-contrib/rules_cuda/releases/tag/v0.2.2)

[Compare
Source](https://togithub.com/bazel-contrib/rules_cuda/compare/v0.2.1...v0.2.2)

#### `WORKSPACE` code

```starlark
load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
    name = "rules_cuda",
    sha256 = "b066750579f33e93e9dc55b8ee2067b525d863c1ddcf09b47a6332c39f0701fb",
    strip_prefix = "rules_cuda-v0.2.2",
    urls = ["https://github.com/bazel-contrib/rules_cuda/releases/download/v0.2.2/rules_cuda-v0.2.2.tar.gz"],
)

load("@&#8203;rules_cuda//cuda:repositories.bzl", "register_detected_cuda_toolchains", "rules_cuda_dependencies")
rules_cuda_dependencies()
register_detected_cuda_toolchains()
```

#### What's Changed

- Filter attrs properly for cuda_test by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/180](https://togithub.com/bazel-contrib/rules_cuda/pull/180)
- Fix cuda_test by [@&#8203;hofbi](https://togithub.com/hofbi) in
[https://github.com/bazel-contrib/rules_cuda/pull/181](https://togithub.com/bazel-contrib/rules_cuda/pull/181)
- Add v0.2.1 to docs by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/184](https://togithub.com/bazel-contrib/rules_cuda/pull/184)
- Pass through `--sysroot` to host compiler by
[@&#8203;lalten](https://togithub.com/lalten) in
[https://github.com/bazel-contrib/rules_cuda/pull/185](https://togithub.com/bazel-contrib/rules_cuda/pull/185)
- Add cuda_binary macro by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/186](https://togithub.com/bazel-contrib/rules_cuda/pull/186)
- Move non glob files out of glob by
[@&#8203;hofbi](https://togithub.com/hofbi) in
[https://github.com/bazel-contrib/rules_cuda/pull/192](https://togithub.com/bazel-contrib/rules_cuda/pull/192)
- Disallow autoupdate nccl by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/193](https://togithub.com/bazel-contrib/rules_cuda/pull/193)
- eliminate cpu architecture constraint for clang by
[@&#8203;dmellosanjay](https://togithub.com/dmellosanjay) in
[https://github.com/bazel-contrib/rules_cuda/pull/208](https://togithub.com/bazel-contrib/rules_cuda/pull/208)
- Check nvcc version before adding `--dopt on` flags by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/212](https://togithub.com/bazel-contrib/rules_cuda/pull/212)
- Add alwayslink to cuda_binary and cuda_test macros by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/210](https://togithub.com/bazel-contrib/rules_cuda/pull/210)
- Add additional tests for LTS releases by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/215](https://togithub.com/bazel-contrib/rules_cuda/pull/215)
- Fix cquery-ing with cuda targets by
[@&#8203;mvukov](https://togithub.com/mvukov) in
[https://github.com/bazel-contrib/rules_cuda/pull/209](https://togithub.com/bazel-contrib/rules_cuda/pull/209)
- Propose new solution for know issue (nvcc filesystem race condition)
by [@&#8203;hofbi](https://togithub.com/hofbi) in
[https://github.com/bazel-contrib/rules_cuda/pull/216](https://togithub.com/bazel-contrib/rules_cuda/pull/216)
- Fix a typo in `if_cuda` doc by
[@&#8203;rygx](https://togithub.com/rygx) in
[https://github.com/bazel-contrib/rules_cuda/pull/222](https://togithub.com/bazel-contrib/rules_cuda/pull/222)
- Ignore MODULE.bazel.lock file by
[@&#8203;rygx](https://togithub.com/rygx) in
[https://github.com/bazel-contrib/rules_cuda/pull/224](https://togithub.com/bazel-contrib/rules_cuda/pull/224)
- ci: avoid nvcc /tmp race condition by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/232](https://togithub.com/bazel-contrib/rules_cuda/pull/232)
- ci: disable doc test workflow cache to avoid excessive space wasting
by [@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/231](https://togithub.com/bazel-contrib/rules_cuda/pull/231)
- feat: Add features for compiling with -arch=all or -arch=all-major by
[@&#8203;jsharpe](https://togithub.com/jsharpe) in
[https://github.com/bazel-contrib/rules_cuda/pull/245](https://togithub.com/bazel-contrib/rules_cuda/pull/245)
- Fix spelling by [@&#8203;Vertexwahn](https://togithub.com/Vertexwahn)
in
[https://github.com/bazel-contrib/rules_cuda/pull/250](https://togithub.com/bazel-contrib/rules_cuda/pull/250)
- Change example rules_cuda version by
[@&#8203;Vertexwahn](https://togithub.com/Vertexwahn) in
[https://github.com/bazel-contrib/rules_cuda/pull/249](https://togithub.com/bazel-contrib/rules_cuda/pull/249)
- Document how to use rules_cuda with Bzlmod by
[@&#8203;Vertexwahn](https://togithub.com/Vertexwahn) in
[https://github.com/bazel-contrib/rules_cuda/pull/252](https://togithub.com/bazel-contrib/rules_cuda/pull/252)
- Do not assume libcupti.so location by
[@&#8203;tyb0807](https://togithub.com/tyb0807) in
[https://github.com/bazel-contrib/rules_cuda/pull/253](https://togithub.com/bazel-contrib/rules_cuda/pull/253)
- ci: use absolute path for XDG_CACHE_HOME as github actions and bazel
doesn't resolve `~` automatically by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/260](https://togithub.com/bazel-contrib/rules_cuda/pull/260)
- ci: cover major bazel releases in utilities tests by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/262](https://togithub.com/bazel-contrib/rules_cuda/pull/262)
- test: workaround label resolving with bzlmod by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/263](https://togithub.com/bazel-contrib/rules_cuda/pull/263)
- fix(bzlmod): allow both root module and our module to call
cuda.local_toolchain by
[@&#8203;cloudhan](https://togithub.com/cloudhan) in
[https://github.com/bazel-contrib/rules_cuda/pull/264](https://togithub.com/bazel-contrib/rules_cuda/pull/264)

#### New Contributors

- [@&#8203;dmellosanjay](https://togithub.com/dmellosanjay) made their
first contribution in
[https://github.com/bazel-contrib/rules_cuda/pull/208](https://togithub.com/bazel-contrib/rules_cuda/pull/208)
- [@&#8203;mvukov](https://togithub.com/mvukov) made their first
contribution in
[https://github.com/bazel-contrib/rules_cuda/pull/209](https://togithub.com/bazel-contrib/rules_cuda/pull/209)
- [@&#8203;rygx](https://togithub.com/rygx) made their first
contribution in
[https://github.com/bazel-contrib/rules_cuda/pull/222](https://togithub.com/bazel-contrib/rules_cuda/pull/222)
- [@&#8203;Vertexwahn](https://togithub.com/Vertexwahn) made their first
contribution in
[https://github.com/bazel-contrib/rules_cuda/pull/250](https://togithub.com/bazel-contrib/rules_cuda/pull/250)
- [@&#8203;tyb0807](https://togithub.com/tyb0807) made their first
contribution in
[https://github.com/bazel-contrib/rules_cuda/pull/253](https://togithub.com/bazel-contrib/rules_cuda/pull/253)

**Full Changelog**:
bazel-contrib/rules_cuda@v0.2.1...v0.2.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job log](https://developer.mend.io/github/secretflow/spu).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yMC4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@hypdeb
Copy link
Contributor

hypdeb commented Sep 29, 2024

Note we might need move it to feature based configuration in the future if some host compilers use different option name for sysroot, for now, lets keep it simple and stupid.

Does that mean doing something like this and pass all the flags that are passed to the host compiler through -Xcompiler ? If yes, I'll do it, because I think it is what is blocking me currently.

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.

3 participants