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

llvm: upgrade to 18 #1439

Merged
merged 5 commits into from
Feb 23, 2024
Merged

llvm: upgrade to 18 #1439

merged 5 commits into from
Feb 23, 2024

Conversation

DavidKorczynski
Copy link
Contributor

@DavidKorczynski DavidKorczynski commented Feb 22, 2024

Targeting llvmorg-18-init-14420-gea3a3b25

Updates the core of fuzz introspector's LLVM frontend to support LLVM 18. Also adds updates needed to patch OSS-Fuzz to make it work with LLVM 18 and test introspector through OSS-Fuzz. However, the patches does certain things, e.g. avoids compiling centipede, avoids some things related to MSAN and more.

This has been tested against several OSS-Fuzz projects e.g. htslib, leveldb, icu, tinyxml2, abseil-cpp, cxxopts. Interestingly, cxxopts failed compiling with FI previously but now succeeds, which is likely due to changes in the LLVM LTO linker logic.

There are some changes in the calltrees, but, this is likely due to changes in the compiler. This patch does disable a feature of FI to walk the VTable for resolving indirect calls, but, it does not seem to have any real effect on the calltrees.

These changes make it possible to build against llvm 18.

In essence, there does not seem to be big problems. The only thing we
need to adjust is how we identify indirect calls done by way of VTables.
In essence we don't rely on types in function signatures from the LLVM
IR anymore as we want to use debug information for this anyways, so we
can kind of skip that part.

Signed-off-by: David Korczynski <david@adalogics.com>
Signed-off-by: David Korczynski <david@adalogics.com>
Signed-off-by: David Korczynski <david@adalogics.com>
Signed-off-by: David Korczynski <david@adalogics.com>
@DavidKorczynski DavidKorczynski marked this pull request as ready for review February 23, 2024 12:41
Signed-off-by: David Korczynski <david@adalogics.com>
@AdamKorcz AdamKorcz merged commit 46ca2bf into main Feb 23, 2024
11 checks passed
@AdamKorcz AdamKorcz deleted the llvm-upgrade-18 branch February 23, 2024 12:47
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.

2 participants