-
Notifications
You must be signed in to change notification settings - Fork 146
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
RFC: LLVM version support policy #60
Comments
Even for a full-blown obfuscator, the API is stable enough nowadays that just #if LLVM_MAJOR_VERSION > X works well for example. (with being able to use the system LLVM, that actually has a purpose too) |
It might be a good idea to just decide this and write in the README exactly what version you support. (Or just say latest, but it would be good if you wrote what version you develop and test on, in case this project ever lags.) I tried it with the LLVM in Ubuntu 20.04, and I get this error:
this was on the main.c, compiled with:
clang version 10.0.0-4ubuntu1 |
@vonj LLVM can't consume LLVM IR produced by newer versions of LLVM: you need to have compiled llvm-cbe with the same or a newer version of LLVM as Clang was compiled with. (This is a very common issue, so maybe I should write a FAQ…) |
Oh, my bad. I made sure I have only LLVM 10 installed (I had 8 installed too by mistake which got picked up by CMake) Now a unit test runs fine (make CBEUnitTests && unittests/CWriterTest), but I still can't get a simple hello world to run:
|
Are you sure your clang version is not newer than the LLVM version you built llvm-cbe with? |
Yes, as far as I can tell.
I removed all llvm packages except version 10
… 10 feb. 2022 kl. 13:02 skrev Andrea ***@***.***>:
Are you sure your clang version is not newer than the LLVM version you built llvm-cbe with?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.
|
Try compiling to a bitcode (.bc) file instead of text IR (.ll) perhaps? |
I actually had remnants of LLVM-8 some more places. Now everything is LLVM-10, and llvm-cbe works, at least for trivial compilations. I have yet to figure out if I can use it for something substantial. |
Can I suggest using either tags or branches for versions? So, we create a |
@vtjnash I'd like there to be a decision on this before I complete the work with opaque pointers (#154) - I'm working through the last of the test failures but there's been quite a bit of churn in the code. Before I submit a PR, I'd like there to be a decision so that I can do some work in preparation:
|
I don't see any value in supporting an old LLVM version |
Plan going forward:
|
Reopen as I don't think the primary item for closing it (documenting this in the readme) is done yet |
In my opinion, this project should have two branches.
Adding of instructions that exist in LLVM-17 such as If we determine that the codes of (2) are ready, create a LLVM-17 tag and merge the two branches. |
Originally posted by @woachk in #55 (comment)
My unannounced personal policy (and thus effectively the de facto repo policy as primary maintainer) has been to only support the latest released version of LLVM on head of repo here. My rationale is that supporting multiple versions is additional work for the rare contributor to a repository that already sees little enough activity, and usually just drive-by PRs (in my impression). Additionally, since there's very few changes other than maintaining version compatibility, anyone using an older version can just checkout the last commit to work on that branch and be pretty well content. If someone had a strong interest in maintaining one version for longer, I'd happily create a branch for them—this has not come up yet in practice however (or, to be more accurate, I haven't received communication of such an interest).
I am proposing here making this an official documented policy (with mention on the README page), but first wanted to leave this open for RFC for an extended comment period, as it's not solely my decision—the ad hoc community should ultimately decide. But even as an ultra-low-activity repo, I think it's important to be up-front about expectations.
The text was updated successfully, but these errors were encountered: