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

Add AArch64 Big Endian Variants using FVP models #554

Merged
merged 10 commits into from
Nov 26, 2024

Conversation

simpal01
Copy link
Collaborator

@simpal01 simpal01 commented Nov 4, 2024

This patch add new aarch64 big endian library variants.

  1. aarch64_be
  2. aarch64_be_exn_rtti

QEMU's doesn't have big-endian support in the release binaries. so need to use FVPs to test those libraries.

QEMU's doesn't have big-endian support in the release binaries. so need
to use FVPs to test those libraries.
@simpal01 simpal01 changed the title Switch builds to use FVPs for AArch64 Use FVP models to test AArch64 Big Endian Variants Nov 5, 2024
@simpal01 simpal01 changed the title Use FVP models to test AArch64 Big Endian Variants Add AArch64 Big Endian Variants using FVP models Nov 5, 2024
@ostannard
Copy link
Collaborator

Similar comment to #553: should we move the expansion of library variants inside the add_library_variants_for_cpu function, like we do for exceptions/rtti,instead of adding more calls to it? That will probably make this patch a bit more complicated, as we'll need to pass both the QEMU and FVP parameters into the call and select the right one for each variant, but in the longer term we'll want big-endian and strict-align variants for (almost) every library variant, so it should simplify things in the end.

I had changes in CMakeLists.txt to use the correct bootcode.
This is no longer needed as it is already adding through a
different patch:
 ARM-software#567
Multilib flags do not need to have -mbig-endian.
Big endian variants can be differentiated with the target
aarch64_be. if the commandline options contain aarch64 and
-mbig-endian, clang convert the target into aarch64_be
already so that case works in that way. If the multilib
flags contain -mbig-endian, commandline options just
contain target=aarch64_be does not work, looks like multiib
system insist on having -mbig-endian in the commandline.
@simpal01
Copy link
Collaborator Author

Similar comment to #553: should we move the expansion of library variants inside the add_library_variants_for_cpu function, like we do for exceptions/rtti,instead of adding more calls to it? That will probably make this patch a bit more complicated, as we'll need to pass both the QEMU and FVP parameters into the call and select the right one for each variant, but in the longer term we'll want big-endian and strict-align variants for (almost) every library variant, so it should simplify things in the end.

Yeah there is a plan to do this as a long term solution when you have more library variants work with big-endian and strict-align. As a starting point, we will start adding separately now.

Add  -Dtest-machine=${TEST_EXECUTOR} to use the correct bootcode.
Remove tabs
Remove -Dtest-machine=${TEST_EXECUTOR} as it is already
been done through the patch:
 ARM-software#574
big-endian.cfg Outdated Show resolved Hide resolved
@simpal01 simpal01 merged commit dbe235a into ARM-software:main Nov 26, 2024
1 check passed
@simpal01 simpal01 deleted the switch-to-use-fvp branch November 26, 2024 18:15
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