#18399 closed bug (fixed)

Building Haiku on Fedora 38 host (gcc 13.1.1)

Reported by: davidkaroly Owned by: nobody
Priority: normal Milestone: R1/beta5
Component: Build System Version: R1/beta4
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

Build process fails at an early stage on Fedora 38 because gcc version compatibility is stated as >=4, <=12 in headers/os/BeBuild.h

This results in a compile error for the host tools as they are built with the native toolchain which is gcc 13.1.1 on Fedora 38.

If I change BeBuild.h as below, the build seems to be able to make progress:

#if __GNUC__ == 2
#       define B_HAIKU_ABI                                      B_HAIKU_ABI_GCC_2_HAIKU
#elif (__GNUC__ >= 4 && __GNUC__ <= 13) || defined(__TINYC__)
#       define B_HAIKU_ABI                                      B_HAIKU_ABI_GCC_4
#else
#       error Unsupported compiler!
#endif

Change History (3)

comment:1 by davidkaroly, 19 months ago

update: with the change above, I was able to successfully build Haiku x86_64 and boot it up in qemu-system-x86_64

system version info for the build host:

[david@fedora ~]$ cat /etc/fedora-release 
Fedora release 38 (Thirty Eight)
[david@fedora ~]$ gcc --version
gcc (GCC) 13.1.1 20230426 (Red Hat 13.1.1-1)
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[david@fedora ~]$ 

comment:2 by pulkomandy, 19 months ago

Yes, we have to do that everytime there is a new gcc release.

They used to bump the major version number on ABI breaks only, but got tired of always being in version 4, and they changed their versioning.

So now, we have to check the release notes for each version and make sure there are no ABI change before allowing it.

comment:3 by waddlesplash, 19 months ago

Milestone: UnscheduledR1/beta5
Resolution: fixed
Status: newclosed

kallisti5 bumped it in hrev56977.

Note: See TracTickets for help on using tickets.