[cpullvm] Add additional variants for testing Zephyr#309
Merged
jonathonpenix merged 1 commit intoApr 15, 2026
Merged
Conversation
6a19185 to
e276e00
Compare
6c9f3ad to
f69b2b6
Compare
pzhengqc
reviewed
Apr 11, 2026
| workflow_dispatch: | ||
| pull_request: | ||
| paths: | ||
| - '.github/workflows/zephyr-twister-tests.yml' |
Contributor
Author
There was a problem hiding this comment.
It's just a temporary change to trigger the Zephyr tests on this PR
pzhengqc
approved these changes
Apr 11, 2026
Contributor
pzhengqc
left a comment
There was a problem hiding this comment.
LGTM, thanks, @jonathonpenix!
Contributor
Author
|
Zephyr test run that shows the changes working here: https://github.com/qualcomm/cpullvm-toolchain/actions/runs/24266991288?pr=309 I don't see any of the cortex-m3 errors about discarding the .got, and similarly I don't see the same issues with not having a matching multilib for rv32 ilp32d |
f69b2b6 to
25ba5e4
Compare
Two variants added: * rv32gc ilp32d - Zephyr uses this extension/abi combo for quite a few hardfloat tests and we didn't have a compatible variant previously. * armv7m nopic - Our existing variant is built with -fPIC and, for tests on qemu_cortex_m3 at least, Zephyr has linker script snippets that /DISCARD/ the .got. eld currently can't relax referencing the .got, leading to errors when building. So for now provide a nopic variant for testing. Note also that, since this is for Zephyr only, we don't build this for musl-embedded. This config should also be removed once this optimization/relaxation is implemented in eld. Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
25ba5e4 to
d8cccd4
Compare
apazos
approved these changes
Apr 15, 2026
jonathonpenix
added a commit
to jonathonpenix/cpullvm-toolchain
that referenced
this pull request
May 11, 2026
Discussing with Ana, sounds like we know that the user isn't using PIC and we've had issues with 32bit Arm fPIC variants + Zephyr + eld in the past (see qualcomm#309). So let's make this nopic Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
jonathonpenix
added a commit
to jonathonpenix/cpullvm-toolchain
that referenced
this pull request
May 12, 2026
Discussing with Ana, sounds like we know that the user isn't using PIC and we've had issues with 32bit Arm fPIC variants + Zephyr + eld in the past (see qualcomm#309). So let's make this nopic Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
jonathonpenix
added a commit
to jonathonpenix/cpullvm-toolchain
that referenced
this pull request
May 21, 2026
Discussing with Ana, sounds like we know that the user isn't using PIC and we've had issues with 32bit Arm fPIC variants + Zephyr + eld in the past (see qualcomm#309). So let's make this nopic Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
jonathonpenix
added a commit
that referenced
this pull request
May 21, 2026
The intention here is to offer a variant for Cortex M7 users with fpv5-d16 enabled. There's a few misc. things to note here: - The normalized triple clang uses when `-mcpu=cortex-m7` is used is actually along the lines of `thumbv7em*` rather than the `thumb7m` we use here. Our `multilib.yaml.in` has mappings for these which we inherited from ATfE. So, align with what their configs seem to do and stick with thumbv7m. - Picolibc is the only libc we want to support for this variant--a musl-embedded variant is intentionally omitted as we're moving away from musl-embedded. - This variant is built without PIC support. The relevant user isn't using PIC and we've had issues with PIC + eld + Zephyr in the past for 32bit Arm targets (see #309) so let's default towards nopic. - We build our other armv7m configurations with `-mno-unaligned-access` (and we don't have both aligned and unaligned variants like ATfE). But, the relevant user build here is resolving to `-munaligned-access` so I'm not going to force `-mno-unaligned-access` in the library build unless we have a particular need. Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
jonathonpenix
added a commit
to jonathonpenix/cpullvm-toolchain
that referenced
this pull request
May 22, 2026
The intention here is to offer a variant for Cortex M7 users with fpv5-d16 enabled. There's a few misc. things to note here: - The normalized triple clang uses when `-mcpu=cortex-m7` is used is actually along the lines of `thumbv7em*` rather than the `thumb7m` we use here. Our `multilib.yaml.in` has mappings for these which we inherited from ATfE. So, align with what their configs seem to do and stick with thumbv7m. - Picolibc is the only libc we want to support for this variant--a musl-embedded variant is intentionally omitted as we're moving away from musl-embedded. - This variant is built without PIC support. The relevant user isn't using PIC and we've had issues with PIC + eld + Zephyr in the past for 32bit Arm targets (see qualcomm#309) so let's default towards nopic. - We build our other armv7m configurations with `-mno-unaligned-access` (and we don't have both aligned and unaligned variants like ATfE). But, the relevant user build here is resolving to `-munaligned-access` so I'm not going to force `-mno-unaligned-access` in the library build unless we have a particular need. Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
jonathonpenix
added a commit
to jonathonpenix/cpullvm-toolchain
that referenced
this pull request
May 27, 2026
The intention here is to offer a variant for Cortex M7 users with fpv5-d16 enabled. There's a few misc. things to note here: - The normalized triple clang uses when `-mcpu=cortex-m7` is used is actually along the lines of `thumbv7em*` rather than the `thumb7m` we use here. Our `multilib.yaml.in` has mappings for these which we inherited from ATfE. So, align with what their configs seem to do and stick with thumbv7m. - Picolibc is the only libc we want to support for this variant--a musl-embedded variant is intentionally omitted as we're moving away from musl-embedded. - This variant is built without PIC support. The relevant user isn't using PIC and we've had issues with PIC + eld + Zephyr in the past for 32bit Arm targets (see qualcomm#309) so let's default towards nopic. - We build our other armv7m configurations with `-mno-unaligned-access` (and we don't have both aligned and unaligned variants like ATfE). But, the relevant user build here is resolving to `-munaligned-access` so I'm not going to force `-mno-unaligned-access` in the library build unless we have a particular need. Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
jonathonpenix
added a commit
that referenced
this pull request
May 27, 2026
The intention here is to offer a variant for Cortex M7 users with fpv5-d16 enabled. There's a few misc. things to note here: - The normalized triple clang uses when `-mcpu=cortex-m7` is used is actually along the lines of `thumbv7em*` rather than the `thumb7m` we use here. Our `multilib.yaml.in` has mappings for these which we inherited from ATfE. So, align with what their configs seem to do and stick with thumbv7m. - Picolibc is the only libc we want to support for this variant--a musl-embedded variant is intentionally omitted as we're moving away from musl-embedded. - This variant is built without PIC support. The relevant user isn't using PIC and we've had issues with PIC + eld + Zephyr in the past for 32bit Arm targets (see #309) so let's default towards nopic. - We build our other armv7m configurations with `-mno-unaligned-access` (and we don't have both aligned and unaligned variants like ATfE). But, the relevant user build here is resolving to `-munaligned-access` so I'm not going to force `-mno-unaligned-access` in the library build unless we have a particular need. Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two variants added:
a few hardfloat tests and we didn't have a compatible variant previously.
qemu_cortex_m3 at least, Zephyr has linker script snippets that /DISCARD/
the .got. eld currently can't relax referencing the .got, leading to
errors when building. So for now provide a nopic variant for testing. Note
also that, since this is for Zephyr only, we don't build this for
musl-embedded. This config should also be removed once this
optimization/relaxation is implemented in eld.