-
Notifications
You must be signed in to change notification settings - Fork 73
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
LLVM2 by default #155
Comments
If anyone has an issue that is a blocker for switching to the new compiler, comment in this issue. |
From @torurstrom: There is a small issue regarding compiling/linking on llvm2. In patmos try The file |
@torurstrom I looked into the problem with argo2_test and looking at this line in the noc lib, what seems to be missing is integration with poseidon, that should suply the missing symbols. I don't know how this was done in master and whether the llvm2 branch messed with something. |
@Emoun the file
the Makefile in the c folder then uses it via the NOCINIT variable:
For whatever reason this no longer works. |
I tried llvm2 on MacOS/ARM:
I get a similar error on an Ubuntu 22.04 (in AWS) when installing it with -q
The reason is that -O2 is broken. Not a kill to stop migration, but something to look at some time. See also: t-crest/patmos-llvm-project#14 |
My mistake to try llvm2 and not toolchain2. How did we get any GNU specific tar options in?
Usually I do not like to add gnu specific tools to mu Unix version, but I will try. After installing tar the compiler builds, but errors when building newlib:
Now it works on my side. Ignore that one here. |
@schoeberl I'm currently working on updating the compiler to LLVM 19. This is taking a long time but should resolve some problems we have on newer platforms (Mac ARM, ubuntu 24). I have no ETA on when this is done. To install GNU Tar, look at this part of the CI. We have to use GNU Tar as part of packaging, because bsdtar (mac default) does not have the features needed. Also, the github MacOS environment now comes with GNU Tar by default and the README highlights this requirement. I realize it is suboptimal to depend on a specific tar (GNU tar vs bsd tar) but I have not found a way to achieve what is needed in a portable way. |
Since the update to LLVM19 is taking longer than hoped, I'm thinking of just making LLVM2 default now without the update. Please let me know if you got it compiling/working on you machine, then I might do the merge today or tomorrow. |
As I have not runnig any version on my Mac/ARM, I will not oppose it. The old -q download that worked on my Mac (some weeks/months) ago is gone. So making llvm2 default or not makes no difference on Mac/ARM. Then let's go ahead, especially as you plan to preserve the old compiler for some time. I will now run on helena to check, as she is up again. |
Success! |
LLVM2 has been made default in all repositories. I have tested on the compute cluster that a clean build produces the new compiler by default. I'm currently testing that the old compiler may be used with the command @schoeberl @lucapezza @torurstrom @tjarker Please test at your convenience. Testing ideas:
Please use the new compiler for all things you need. When you feed everything is working as expected, please but a checkout by your name under point 6 in the above list. |
Native build on Mac/ARM fails with the newlib error, as reported above. |
After the build.sh fix, it also compiled and run fine on Helena (Ubuntu 20.04). |
@schoeberl Is it the issue from this comment? Have you built from scratch? If not, could you try to go into the |
This issue tracks changing our whole setup to use the new compiler by default.
Things that need doing (This is an ordered list that should mostly be done in-order):
toolchain2
command inmisc/build.sh
by key persons. Each should read this list and testtoolchain2
and only flag their name if everything worked as expected and they agree with the following plan.Optional:
Blockers:
patmos-clang
is missing a native-mserialize=
optionllvm1
in repos to ensure old compiler may still be built. Affected repos:llvm2
branches into respective masters on the following repos:misc/build.sh
to default to toolchain2:toolchain2
patmos
usesllvm2
branch should be switched to instead check for llvm1 and switch to that tag.toolchain1
). This target should switch newlib and patmos to thellvm1
tag.llvm
target should default to downloading the new compiler repo. A newllvm1
target should be added for downloading the old compiler repo.misc/build.sh
works for key persons:Optional:
https://patmos.compute.dtu.dk/patmos_handbook.pdf
The text was updated successfully, but these errors were encountered: