Skip to content

Bump GitHub Actions runners to Ubuntu 22.04 #1619

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

Merged
merged 3 commits into from
Mar 4, 2024
Merged

Conversation

aswaterman
Copy link
Collaborator

@aswaterman aswaterman commented Mar 4, 2024

The problem was our use of -I to add subprojects' headers to the include path. Our syscall.h was interfering with libstdc++'s dependence on the system's version of the same header (which is why we were getting SYS_futex-not-defined errors).

Resolves #1618

@aswaterman aswaterman force-pushed the ubuntu-22.04 branch 14 times, most recently from d66b75c to c0f71cb Compare March 4, 2024 01:47
@aswaterman aswaterman changed the title Attempt to bump to Ubuntu 22.04 Bump to Ubuntu 22.04 Mar 4, 2024
@aswaterman aswaterman changed the title Bump to Ubuntu 22.04 Bump to GitHub Actions runners to Ubuntu 22.04 Mar 4, 2024
@aswaterman aswaterman requested a review from jerryz123 March 4, 2024 01:58
Use -iquote instead.  This prevents our include paths from messing up
the system headers depended upon by libstdc++.  (The specific problem
was syscall.h in fesvr/, which was interfering with libstdc++'s
dependence on the system's syscall.h for SYS_futex.)

Subproject headers can now be included in the following ways:

    #include "foo.h"      // for a header local to this subproject
    #include <bar/baz.h>" // for a header in another subproject

But no longer:

    #include <baz.h>      // for a header in any subproject

As a special case, libfdt needs itself to be added to the -I path,
because their coding style is to use angle brackets for local headers.
Suppresses a warning on newer compilers for -std=c++20.
@aswaterman
Copy link
Collaborator Author

BTW @jerryz123 if you have a cleaner fix to the makefiles in mind, I'm all ears... the handling of libfdt is a little hacky, but at least the blast radius is small.

@aswaterman aswaterman changed the title Bump to GitHub Actions runners to Ubuntu 22.04 Bump GitHub Actions runners to Ubuntu 22.04 Mar 4, 2024
Copy link
Collaborator

@jerryz123 jerryz123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the final clean solution is to eventually stop relying on the in-tree libfdt, assuming that the packaged libfdt doesn't have bugs (#1536 ).

But this is fine for now... its better than the alternative of editing all the fdt sources.

I think it is expected for the tests to fail. I believe the CI distro is set from the CI config at the HEAD of this branch, so the non-working commits will still get tested (and fail) under 22.04.

@aswaterman
Copy link
Collaborator Author

Agreed re: libfdt.

I swapped the commit order so the critical fix comes first, so hopefully it'll pass this time.

@aswaterman aswaterman merged commit 581e0da into master Mar 4, 2024
@aswaterman aswaterman deleted the ubuntu-22.04 branch March 4, 2024 02:26
serge0699 added a commit to riscv-tests-intro/hammer that referenced this pull request Aug 27, 2024
When compiling hammer have thrown error like in this issue:
riscv-software-src/riscv-isa-sim#1618.
Fixed via removing fesvr directory from includes in meson.build.
Related PR in Spike repo:
riscv-software-src/riscv-isa-sim#1619.
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.

Failure during Make: SYS_futex not declared in scope
2 participants