-
Notifications
You must be signed in to change notification settings - Fork 2
Formatting & Fixes #107
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
Formatting & Fixes #107
Conversation
| on the intended host architecture (e.g. Arancini for ARM64 must be built on ARM). | ||
|
|
||
| A typical build proceeds as follows: | ||
| A typical build proceeds as follows (currently nix is required): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wrong, you can also use cmake by hand
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your feedback, but I do not agree with this statement.
In most distributions, the bundled version of fmt is much newer and provides a different API, whereby compiling fails (as there are no checks if the correct version of fmt is installed).
If the dependencies are not found, a download may be automatically started, but instead of a specific version, the latest available code of the master/main branch is pulled via git (see the cmake/*.cmake files), these however provide the same compatibility issues.
Therefore, the only properly working setup would be one where the correct versions (those stated in the nix configuration) are manually downloaded, and the paths would then be set via the corresponding environment variables for cmake to find them.
For this reason I have started work on updating some of the cmake configuration in: https://github.com/Nathan-Mossaad/arancini-exploration/tree/cmake-improvements there the correct versions are downloaded and xed configured to result in a properly working txlat build on fedora42 / aarch64.
Additionally, there is the issue of the linker script (aarch64.exec.lds) being currently incompatible with most modern linkers. I have tested it extensively with versions of mold, lld and ld bundled with fedora41, fedora42 and ubuntu 24.04 on different Ampere® Altra® Q80-30 VMs.
Currently, my workaround is that of creating a small environment with the following flake.nix:
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
outputs = { nixpkgs, ... }: {
devShell.aarch64-linux = let
pkgs = import nixpkgs { system = "aarch64-linux"; };
in pkgs.mkShell {
packages = [
];
};
};
}and passing in --cxx-compiler-path "nix develop /path/to/nix.flake-folder --command 'g++'" to txlat
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess for those other linkers you need to regenerate the scripts as described in docs/linker_script.md
But fair enough, "as is" only nix works.
ReimersS
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Haven't had the patience to check if anything besides formatting changed.
|
Just change all the comments as well so the format_check succeeds. |
|
Sorry about the missing formatting, it should now be fixed. |
This PR builds off of sr/bench and introduces the following:
Features
Documentation
Formatting
Fixes
Cleanup