Fix build when HOST_CC is GCC 16

The default C++ standard in GCC 16 is C++20 (from C++17),
which introduced "requires" as a keyword. This caused the
build of libsolv (and libpackage) to break.

fs_shell now sets -std=c++11 as in bfs_shell. Both define
__STRICT_ANSI__ to avoid using certain headers, which now
causes conflicts related to __int128 when the standard is
not actually strict ANSI.

Change-Id: Ie142fb87eb79a20fe0c1b5f3fdd3b94899eaff48
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10980
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
SED4906
2026-05-15 20:05:51 +00:00
committed by waddlesplash
parent 25c654834f
commit 03743ca2b4
4 changed files with 6 additions and 2 deletions
+1 -1
View File
@@ -55,7 +55,7 @@
#if __GNUC__ == 2
# define B_HAIKU_ABI B_HAIKU_ABI_GCC_2_HAIKU
#elif (__GNUC__ >= 4 && __GNUC__ <= 15) || defined(__TINYC__)
#elif (__GNUC__ >= 4 && __GNUC__ <= 16) || defined(__TINYC__)
# define B_HAIKU_ABI B_HAIKU_ABI_GCC_4
#else
# error Unsupported compiler!
+2
View File
@@ -4,6 +4,8 @@ UseHeaders [ FDirName $(HAIKU_TOP) src libs libsolv ] : true ;
UsePrivateHeaders shared ;
SubDirC++Flags -std=gnu++11 ;
USES_BE_API on libpackage-add-on-libsolv_build.so = true ;
SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package solver ] ;
+1 -1
View File
@@ -37,7 +37,7 @@ switch $(HOST_PLATFORM) {
SubDirCcFlags -Wno-sign-compare -Wno-missing-prototypes ;
SubDirCcFlags $(HOST_PIC_CCFLAGS) ;
SubDirC++Flags $(HOST_PIC_C++FLAGS) ;
SubDirC++Flags $(HOST_PIC_C++FLAGS) -std=gnu++11 ;
# libsolv
+2
View File
@@ -16,6 +16,8 @@ DEFINES += FS_SHELL=1 ;
# prevent inclusion of HaikuBuildCompatibility.h and _BSD_SOURCE headers
DEFINES += HAIKU_BUILD_COMPATIBILITY_H __STRICT_ANSI__ ;
SubDirC++Flags -std=c++11 ;
# platform specific sources/libraries
local fsShellCommandSources ;
local externalCommandsSources ;