Skip to content

Conversation

@osteffenrh
Copy link
Contributor

Description

Use the new Fedora 43 image in the CI to run Linux based jobs.

This PR includes the fixes for C23/gcc 15 from #11720, which should be merged first.

  • Breaking change?
  • Impacts security?
  • Includes tests?

GCC 15 enforces stricter type checking for function pointers. When
passing SPDM transport layer callbacks to
libspdm_register_transport_layer_func, the function pointer types are
incompatible due to differences in boolean parameter types.

The EDK2 uses BOOLEAN (UINT8) while libspdm uses C99 bool (_Bool).
Although these types have the same size and representation,
GCC 15 treats them as incompatible.

Add explicit casts to libspdm_transport_encode_message_func and
libspdm_transport_decode_message_func at the call site to resolve
the type mismatch. This is safe as the types have identical binary
representation and the functions are only called through these
pointers by libspdm.

Signed-off-by: Oliver Steffen <[email protected]>
(cherry picked from commit aca8f99)
GCC 15 enforces stricter type checking for function pointers. When
passing EFI_PERIODIC_CALLBACK and EFI_EXCEPTION_CALLBACK to
ManageIdtEntryTable, explicit casts to CALLBACK_FUNC are required to
avoid incompatible pointer type errors.

Add explicit casts at the call sites in RegisterPeriodicCallback and
RegisterExceptionCallback functions.

Signed-off-by: Oliver Steffen <[email protected]>
(cherry picked from commit ff28da4)
@osteffenrh osteffenrh force-pushed the ci-fedora43 branch 2 times, most recently from bdf4533 to 55a0c40 Compare November 14, 2025 11:53
The termio.h of glibc has been deprecated for decades and was finally
removed in glibc 2.42.
EmulatorPkg still pulls it in for no reason (the "new" termios.h is
being included already).

Remove the include of termio.h.

Signed-off-by: Oliver Steffen <[email protected]>
Copy link
Contributor

@os-d os-d left a comment

Choose a reason for hiding this comment

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

Approved for EmulatorPkg.

@makubacki
Copy link
Member

Can you please update the devcontainer file to use the Fedora 43 image? https://github.com/tianocore/edk2/blob/master/.devcontainer/devcontainer.json

Also, is .github/workflows/BuildPlatform.yml intentionally being kept on the Fedora 40 image?

The Fedora 41, which is currently in use for the azurepipelines CI,
will be EOL soon.

With the fixes for the C23 standard we can use GCC 15 and
switch over to the latest Fedora image to run the Linux based CI jobs.

Signed-off-by: Oliver Steffen <[email protected]>
Fedora 40, which is currently in use for the GitHub workflows, is EOL.

With the fixes for the C23 standard we can use GCC 15 and
switch over to the latest Fedora image.

Signed-off-by: Oliver Steffen <[email protected]>
Fedora 40, which is currently in use as the devcontainer image, is EOL.

With the fixes for the C23 standard we can use GCC 15 and
switch over to the latest Fedora image.

Signed-off-by: Oliver Steffen <[email protected]>
@osteffenrh
Copy link
Contributor Author

Missed those. Switched them all to Fedora 43 now.

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.

5 participants