-
Notifications
You must be signed in to change notification settings - Fork 501
DO NOT MERGE: Ubuntu 24 - LLVM 14 preview #1536
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
Conversation
Won't compile in Ubuntu 24 - wireshark api changed
4fad5e9 to
894b8e3
Compare
|
Hello @MarkMankins, I wanted to ask how are things going with the LLVM-14 upgrade? I can try to help on my end trying to figure out how to enable testing from external PRs |
|
Unfortunately I've had to set aside my panda work for the short term so I haven't been able to make any progress here. Not sure when I'll be able to get back to it. |
|
I see, @LauraLMann, would you have any time to help with the upgrade? With regard to libosi, I made a Ubuntu 24 Debian image, pending PR, hopefully this saves 40 minutes, really surprised it is this slow to compile... Also about wireshark, seems like someone else got the fix |
Nope, I'm in the same boat as my coworker Mark Mankins. Hopefully this summer we can return. |
|
So the problem with "When LLVM is enabled many warnings about unsupported intrinsics appear on the console." is that the taint2 plugin does not have propagation rules for certain LLVM intrinsic functions, and so it spits out this warning to the console when it encounters one to say "we aren't even going to try to propagate taint for that function". |
|
The reason why "configure must be run with --disable-werror" is that two functions the configure script is checking out, clock_adjtime and clock_gettime, have different definitions now. Each has an annotation stating that the second argument must not be null, so the compiler will issue a warning if it is. The little test programs the configure script uses to see if these functions are available was using 0 for the second argument. That's easy enough to adjust, and I'll include it in an update to this pull request. |
|
The libosi build goes a lot faster in the Ubuntu 24 container I am using if I tell it to build with g/g++-9 instead of the newer compiler that is the default in the container. It only takes about 2 or 3 minutes as opposed to the 40-45 it takes with the default compiler. |
|
Per coordination with @MarkMankins , this pull request is being closed in favor of #1584. |
I managed to get PANDA built under Ubuntu 24, including an update to LLVM 14.
This isn't production ready quite yet, but it's a start.
I don't have the bandwidth to get this all the way to Ubuntu 24, but hoping with this initial work others can chip away at the problems that are left.
There are a lot of little issues that are nicely segregated, that would take me a while to research and fix all of them. I suspect many of these have an easy solution, so I'm looking for help to move this along.
I'm not convinced yet the update to LLVM 14 is 100% correct - but I have a lots of test cases and most agree with the output from LLVM 11. I have a few tests that are tightly coupled to the IR that gets generated, these will require some time to investigate whether or not the output I'm seeing in LLVM 14 is correct. Luckily I know where the author of these tests works (@LauraLMann) so I know where to look for help.
I didn't even try to fire up PyPANDA - so I'm not sure what state it is in.
Known issues:
-- "wc -l /proc/<panda pid>/maps" to see what I mean.
-- Long running recordings with LLVM enabled may fail with out of memory errors.
-- You can increase the number of permitted memory mapped regions for a process by writing to /proc/sys/vm/max_map_count. Doing this resolves the issue.
-- The Ubuntu 20 qemu package was renamed to qemu-system in Ubuntu 24.
-- I also installed llvm-14, llvm-14-doc, clang-14 & clang-tools-14. (Not sure the clang packages are necessary - things might be building with clang-18 which was already installed in my Ubuntu 24 environment.)
-- Many of these are about invalid escape sequences - at first glance it looks like these might be coming from python.
-- Wireshark api changed, again.