From 47320dd0abaf18e29575277a4b4aa49f5715e7e8 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Tue, 6 Oct 2020 23:46:18 -0400 Subject: [PATCH] configure & build: Rework legacy GCC detection to parse versions outside of Jam. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Jam comparison logic is string-based, and so was detecting GCC >= 10 as being < 2. This rectifies that by removing the GCC version parsing from Jam logic entirely, and setting various BuildConfig variables instead. Change-Id: I0c0ae3b9002fb5e77f9ca7a78600c91871657f03 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3293 Reviewed-by: Adrien Destugues Reviewed-by: Jérôme Duval Reviewed-by: Alex von Gluck IV --- build/jam/ArchitectureRules | 26 ++++++++----------- build/jam/BuildFeatureRules | 2 +- build/jam/BuildSetup | 17 ++++++------ build/jam/HelperRules | 30 +--------------------- build/jam/OptionalPackages | 5 ++-- build/jam/packages/Haiku | 2 +- build/jam/packages/HaikuBootstrap | 2 +- build/jam/packages/HaikuCrossDevel | 2 +- build/jam/packages/HaikuDevel | 2 +- build/jam/packages/HaikuDevelSecondary | 2 +- build/jam/packages/HaikuSecondary | 2 +- build/jam/packages/HaikuSecondaryBootstrap | 2 +- configure | 20 +++++++++++++-- src/add-ons/screen_savers/gravity/Jamfile | 2 +- src/add-ons/translators/png/Jamfile | 4 +-- src/apps/haiku3d/Jamfile | 2 +- src/system/boot/Jamfile | 2 +- src/system/libroot/os/arch/x86/Jamfile | 2 +- src/tools/bfs_shell/Jamfile | 2 +- 19 files changed, 54 insertions(+), 74 deletions(-) diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules index eff6fde919..e74c6cddae 100644 --- a/build/jam/ArchitectureRules +++ b/build/jam/ArchitectureRules @@ -7,18 +7,13 @@ rule ArchitectureSetup architecture # architecture), if this is the first invocation of the rule, and adds # the architecture to HAIKU_ARCHS, if not yet contained. - # analyze GCC version - local gccVersion - = [ FAnalyzeGCCVersion HAIKU_GCC_RAW_VERSION_$(architecture) ] ; - HAIKU_GCC_VERSION_$(architecture) = $(gccVersion) ; - # enable GCC -pipe option, if requested local ccBaseFlags ; if $(HAIKU_USE_GCC_PIPE) = 1 { ccBaseFlags = -pipe ; } - if $(gccVersion[1]) >= 3 { + if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) != 1 { # disable strict aliasing on anything newer than gcc 2 as it may lead to # unexpected results. # TODO: remove the -fno-strict-aliasing option when all code has been @@ -122,7 +117,7 @@ rule ArchitectureSetup architecture HAIKU_WERROR_FLAGS_$(architecture) = ; - if $(gccVersion[1]) >= 4 { + if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) != 1 { # TODO: Remove all these. HAIKU_WERROR_FLAGS_$(architecture) += -Wno-error=unused-but-set-variable -Wno-error=deprecated -Wno-error=deprecated-declarations @@ -149,7 +144,7 @@ rule ArchitectureSetup architecture # TODO: Temporary work-around. Should be defined in the compiler specs HAIKU_LINKFLAGS_$(architecture) += -Xlinker --no-undefined ; - if $(gccVersion[1]) < 3 { + if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) = 1 { HAIKU_DEFINES_$(architecture) += _BEOS_R5_COMPATIBLE_ ; } @@ -222,7 +217,6 @@ rule KernelArchitectureSetup architecture HAIKU_KERNEL_ARCH = $(HAIKU_ARCH) ; - local gccVersion = $(HAIKU_GCC_VERSION_$(architecture)) ; local cpu = $(HAIKU_CPU_$(architecture)) ; switch $(cpu) { @@ -352,8 +346,8 @@ rule KernelArchitectureSetup architecture # C/C++ flags local ccBaseFlags = -finline -fno-builtin ; - if $(gccVersion[1]) >= 4 { - if $(HAIKU_CC_IS_CLANG_$(architecture)) != 1 { + if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) != 1 { + if ! $(HAIKU_CC_IS_CLANG_$(architecture)) { # Clang does not yet understand this flag. ccBaseFlags += -fno-semantic-interposition ; } @@ -363,7 +357,8 @@ rule KernelArchitectureSetup architecture local c++BaseFlags = $(ccBaseFlags) -fno-exceptions ; - if $(gccVersion[1]) >= 3 && $(HAIKU_CC_IS_CLANG_$(architecture)) != 1 { + if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) != 1 + && $(HAIKU_CC_IS_CLANG_$(architecture)) != 1 { c++BaseFlags += -fno-use-cxa-atexit ; } @@ -501,7 +496,7 @@ rule KernelArchitectureSetup architecture } else { HAIKU_BOOT_$(bootTarget:U)_LDFLAGS += -m elf_i386_haiku ; } - if $(gccVersion[1]) >= 3 { + if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) != 1 { HAIKU_BOOT_$(bootTarget:U)_CCFLAGS += -Wno-error=main -m32 ; HAIKU_BOOT_$(bootTarget:U)_C++FLAGS += -Wno-error=main -m32 ; } @@ -514,7 +509,7 @@ rule KernelArchitectureSetup architecture } else { HAIKU_BOOT_$(bootTarget:U)_LDFLAGS += -m elf_i386_haiku ; } - if $(gccVersion[1]) >= 3 { + if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) != 1 { HAIKU_BOOT_$(bootTarget:U)_CCFLAGS += -Wno-error=main -m32 ; HAIKU_BOOT_$(bootTarget:U)_C++FLAGS += -Wno-error=main -m32 ; } @@ -606,8 +601,7 @@ rule ArchitectureSetupWarnings architecture # Work-around for GCC 2 problem -- despite -Wno-multichar it reports # multichar warnings in headers/private/kernel/debugger_keymaps.h included # by src/system/kernel/arch/x86/arch_debug_console.cpp. - local gccVersion = $(HAIKU_GCC_VERSION_$(architecture)) ; - if $(gccVersion[1]) = 2 { + if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) = 1 { local file = arch_debug_console.o ; WARNINGS on $(file) = $(WARNINGS) ; } diff --git a/build/jam/BuildFeatureRules b/build/jam/BuildFeatureRules index 62d5545da4..602e46d6d5 100644 --- a/build/jam/BuildFeatureRules +++ b/build/jam/BuildFeatureRules @@ -447,7 +447,7 @@ rule InitArchitectureBuildFeatures architecture # Add all secondary architectures as build features (with prefix). EnableBuildFeatures secondary_$(TARGET_PACKAGING_ARCHS[2-]) ; - if $(TARGET_GCC_VERSION_$(architecture)[1]) = 2 { + if $(TARGET_CC_IS_LEGACY_GCC_$(architecture)) = 1 { EnableBuildFeatures gcc2 ; } diff --git a/build/jam/BuildSetup b/build/jam/BuildSetup index dc8862fde5..53598de16d 100644 --- a/build/jam/BuildSetup +++ b/build/jam/BuildSetup @@ -239,12 +239,9 @@ HOST_ARCH ?= $(HOST_CPU) ; HOST_ARCHS = $(HOST_ARCH) ; HOST_KERNEL_ARCH = host ; -# analyze GCC version -HOST_GCC_VERSION = [ FAnalyzeGCCVersion HOST_GCC_RAW_VERSION ] ; - # set packaging architecture HOST_PACKAGING_ARCH ?= $(HOST_CPU) ; -if $(HOST_PACKAGING_ARCH) = x86 && $(HOST_GCC_VERSION[1]) = 2 { +if $(HOST_PACKAGING_ARCH) = x86 && $(HOST_CC_IS_LEGACY_GCC) = 1 { HOST_PACKAGING_ARCH = x86_gcc2 ; } HOST_PACKAGING_ARCHS = $(HOST_PACKAGING_ARCH) ; @@ -276,7 +273,7 @@ HOST_C++FLAGS += -Wno-multichar ; HOST_PIC_CCFLAGS += -fPIC ; HOST_PIC_C++FLAGS += -fPIC ; -if $(HOST_GCC_VERSION[1]) >= 3 { +if $(HOST_CC_IS_LEGACY_GCC) != 1 { HOST_GCC_BASE_FLAGS += -fno-strict-aliasing -fno-delete-null-pointer-checks ; } @@ -306,7 +303,7 @@ if $(HOST_ARCH) = m68k { if $(HOST_PLATFORM) != darwin { # fix for new changes to DSO linking policies HOST_LINKFLAGS += -Xlinker --no-as-needed ; - if $(HOST_GCC_VERSION[1]) >= 3 { + if $(HOST_CC_IS_LEGACY_GCC) != 1 { HOST_LINKFLAGS += -Wl,--copy-dt-needed-entries ; } } @@ -382,7 +379,7 @@ HOST_LIBBE = libbe_build.so ; if $(HOST_PLATFORM_HAIKU_COMPATIBLE) { # the C++ standard and support libraries - if $(HOST_GCC_VERSION[1]) < 3 { + if $(HOST_CC_IS_LEGACY_GCC) = 1 { HOST_LIBSTDC++ = stdc++.r4 ; HOST_LIBSUPC++ = ; } else { @@ -418,7 +415,7 @@ if $(HOST_PLATFORM_HAIKU_COMPATIBLE) { HOST_PTHREAD_LINKFLAGS = -pthread ; # the C++ support library - if $(HOST_GCC_VERSION[1]) < 3 { + if $(HOST_CC_IS_LEGACY_GCC) = 1 { HOST_LIBSUPC++ = ; } else { HOST_LIBSUPC++ = supc++ ; @@ -586,10 +583,12 @@ local buildVars = ; local archDependentBuildVars = - ARCH CPU GCC_VERSION + ARCH CPU AR CC C++ ELFEDIT LD OBJCOPY RANLIB STRIP + CC_IS_LEGACY_GCC CC_IS_CLANG + ARFLAGS ASFLAGS UNARFLAGS CPPFLAGS CCFLAGS C++FLAGS HDRS LDFLAGS LINK LINKFLAGS diff --git a/build/jam/HelperRules b/build/jam/HelperRules index 18e70a7170..1dcdfbf5b2 100644 --- a/build/jam/HelperRules +++ b/build/jam/HelperRules @@ -208,40 +208,12 @@ rule SetPlatformCompatibilityFlagVariables ?= $($(varPrefix)_PLATFORM_HAIKU_COMPATIBLE) ; } -rule FAnalyzeGCCVersion -{ - # FAnalyzeGCCVersion ; - # - local varName = $(1) ; - local rawVersion = $($(varName)) ; - - if ! $(rawVersion) { - ECHO "Variable $(varName) not set. Please run ./configure or" ; - EXIT "specify it manually." ; - } - - local version = ; - # split the raw version string at `.' and `-' characters - while $(rawVersion) { - local split = [ Match "([^.-]*)[.-](.*)" : $(rawVersion) ] ; - if $(split) { - version += $(split[1]) ; - rawVersion = $(split[2]) ; - } else { - version += $(rawVersion) ; - rawVersion = ; - } - } - - return $(version) ; -} - rule SetIncludePropertiesVariables prefix : suffix { # SetIncludePropertiesVariables : ; # suffix = $(suffix:E=) ; - if $($(prefix)_GCC_VERSION$(suffix)[1]) < 4 { + if $($(prefix)_CC_IS_LEGACY_GCC$(suffix)) { $(prefix)_INCLUDES_SEPARATOR$(suffix) = -I- ; $(prefix)_LOCAL_INCLUDES_OPTION$(suffix) = -I ; $(prefix)_SYSTEM_INCLUDES_OPTION$(suffix) = -I ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index 53622c9b6c..75719a8e6a 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -41,11 +41,10 @@ if [ IsOptionalHaikuImagePackageAdded BeBook ] { # BeOSCompatibility if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] { - if $(TARGET_ARCH) != x86 { + if $(TARGET_ARCH) != x86 + || $(TARGET_CC_IS_LEGACY_GCC_$(TARGET_PACKAGING_ARCH)) != 1 { Echo "No optional package BeOSCompatibility available for" "$(TARGET_ARCH)" ; - } else if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) >= 4 { - Echo "No optional package BeOSCompatibility available for gcc4" ; } else { Echo "Warning: Adding BeOS compatibility symlinks. This will go away." "Please fix your apps!" ; diff --git a/build/jam/packages/Haiku b/build/jam/packages/Haiku index d5828d7b7c..de4c2d4120 100644 --- a/build/jam/packages/Haiku +++ b/build/jam/packages/Haiku @@ -93,7 +93,7 @@ AddLibrariesToPackage lib : [ HaikuImageGetSystemLibs ] [ HaikuImageGetPrivateSystemLibs ] ; # libnetwork.so replaces quite a few libraries -if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { +if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) = 1 { local libNetworkAliases = libsocket.so libbind.so libnet.so ; local lib ; for lib in $(libNetworkAliases) { diff --git a/build/jam/packages/HaikuBootstrap b/build/jam/packages/HaikuBootstrap index 2bea48e1ac..44cf71ed00 100644 --- a/build/jam/packages/HaikuBootstrap +++ b/build/jam/packages/HaikuBootstrap @@ -87,7 +87,7 @@ AddLibrariesToPackage lib : [ HaikuImageGetSystemLibs ] [ HaikuImageGetPrivateSystemLibs ] ; # libnetwork.so replaces quite a few libraries -if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { +if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) = 1 { local libNetworkAliases = libsocket.so libbind.so libnet.so ; local lib ; for lib in $(libNetworkAliases) { diff --git a/build/jam/packages/HaikuCrossDevel b/build/jam/packages/HaikuCrossDevel index 1a6405b1ab..e03f2ab62c 100644 --- a/build/jam/packages/HaikuCrossDevel +++ b/build/jam/packages/HaikuCrossDevel @@ -93,7 +93,7 @@ for stage in _stage0 _stage1 "" { if $(stage) != _stage0 { # cpp headers - if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { + if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) = 1 { # GCC 2 only -- for GCC 4 they come with the DevelopmentBase package CopyDirectoryToPackage $(developCrossHeadersDirTokens) c++ : [ FDirName $(HAIKU_TOP) headers cpp ] : 2.95.3 ; diff --git a/build/jam/packages/HaikuDevel b/build/jam/packages/HaikuDevel index 407aabbf55..ebb86a9f25 100644 --- a/build/jam/packages/HaikuDevel +++ b/build/jam/packages/HaikuDevel @@ -79,7 +79,7 @@ AddHeaderDirectoryToPackage compatibility bsd : bsd ; AddHeaderDirectoryToPackage compatibility gnu : gnu ; # cpp headers -if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { +if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) = 1 { # GCC 2 only -- for GCC 4 they come with the gcc package CopyDirectoryToPackage develop headers c++ : [ FDirName $(HAIKU_TOP) headers cpp ] : 2.95.3 ; diff --git a/build/jam/packages/HaikuDevelSecondary b/build/jam/packages/HaikuDevelSecondary index 042b1e6b85..947d4e03eb 100644 --- a/build/jam/packages/HaikuDevelSecondary +++ b/build/jam/packages/HaikuDevelSecondary @@ -48,7 +48,7 @@ AddFilesToPackage develop lib $(architecture) # ABI independent stuff # cpp headers -if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { +if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) = 1 { # GCC 2 only -- for GCC 4 they come with the gcc package CopyDirectoryToPackage develop headers c++ : [ FDirName $(HAIKU_TOP) headers cpp ] : 2.95.3 ; diff --git a/build/jam/packages/HaikuSecondary b/build/jam/packages/HaikuSecondary index fe9a5be417..96b5ac5b18 100644 --- a/build/jam/packages/HaikuSecondary +++ b/build/jam/packages/HaikuSecondary @@ -10,7 +10,7 @@ AddLibrariesToPackage lib $(architecture) : [ HaikuImageGetSystemLibs ] [ HaikuImageGetPrivateSystemLibs ] ; # libnetwork.so replaces quite a few libraries -if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { +if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) = 1 { local libNetworkAliases = libsocket.so libbind.so libnet.so ; local lib ; for lib in $(libNetworkAliases) { diff --git a/build/jam/packages/HaikuSecondaryBootstrap b/build/jam/packages/HaikuSecondaryBootstrap index c51afc376a..d159d1cbf6 100644 --- a/build/jam/packages/HaikuSecondaryBootstrap +++ b/build/jam/packages/HaikuSecondaryBootstrap @@ -11,7 +11,7 @@ AddLibrariesToPackage lib $(architecture) : [ HaikuImageGetSystemLibs ] [ HaikuImageGetPrivateSystemLibs ] ; # libnetwork.so replaces quite a few libraries -if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { +if $(HAIKU_CC_IS_LEGACY_GCC_$(architecture)) = 1 { local libNetworkAliases = libsocket.so libbind.so libnet.so ; local lib ; for lib in $(libNetworkAliases) { diff --git a/configure b/configure index 1493f1e851..5d7a1391e8 100755 --- a/configure +++ b/configure @@ -239,6 +239,19 @@ valid_toolchain() return 1 } +# is_legacy_gcc +# +# Determines if the specified GCC version is a "legacy" (i.e. GCC < 4) one. +# +is_legacy_gcc() +{ + if [ `echo $1 | cut -d'.' -f1` -lt 4 ]; then + echo 1 + else + echo 0 + fi +} + # standard_gcc_settings # # Sets the variables for a GCC platform. @@ -331,6 +344,8 @@ standard_gcc_settings() set_variable HAIKU_CPU_$targetArch $targetCpu get_build_tool_path CC_$targetArch "$gcc" + set_variable HAIKU_CC_IS_LEGACY_GCC_$targetArch \ + `is_legacy_gcc $gccRawVersion` set_variable HAIKU_CC_IS_CLANG_$targetArch $useClang set_variable HAIKU_GCC_RAW_VERSION_$targetArch $gccRawVersion set_variable HAIKU_GCC_MACHINE_$targetArch $gccMachine @@ -608,6 +623,7 @@ fi # exported (BuildSetup) default parameter values # HOST_GCC_RAW_VERSION=`$CC -dumpversion` +HOST_CC_IS_LEGACY_GCC=`is_legacy_gcc $HOST_GCC_RAW_VERSION` HOST_GCC_MACHINE=`$CC -dumpmachine` HAIKU_INCLUDE_SOURCES=0 HAIKU_INCLUDE_3RDPARTY=0 @@ -1082,7 +1098,7 @@ HAIKU_HOST_BUILD_ONLY ?= "${HAIKU_HOST_BUILD_ONLY}" ; JAMSHELL ?= ${JAMSHELL} -c ; HOST_CC ?= ${CC} ; -HOST_GCC_RAW_VERSION ?= ${HOST_GCC_RAW_VERSION} ; +HOST_CC_IS_LEGACY_GCC ?= ${HOST_CC_IS_LEGACY_GCC} ; HOST_GCC_MACHINE ?= ${HOST_GCC_MACHINE} ; HOST_LD ?= ${HOST_GCC_LD} ; HOST_OBJCOPY ?= ${HOST_GCC_OBJCOPY} ; @@ -1103,11 +1119,11 @@ EOF for targetArch in $HAIKU_PACKAGING_ARCHS; do variables=" HAIKU_CC HAIKU_CC + HAIKU_CC_IS_LEGACY_GCC HAIKU_CC_IS_LEGACY_GCC HAIKU_CC_IS_CLANG HAIKU_CC_IS_CLANG HAIKU_USE_GCC_GRAPHITE HAIKU_USE_GCC_GRAPHITE HAIKU_CPU HAIKU_CPU HAIKU_GCC_MACHINE HAIKU_GCC_MACHINE - HAIKU_GCC_RAW_VERSION HAIKU_GCC_RAW_VERSION HAIKU_GCC_LIB_DIR HAIKU_GCC_LIB_DIR HAIKU_BOOT_LIBGCC HAIKU_BOOT_LIBGCC HAIKU_BOOT_LIBSUPC++ HAIKU_BOOT_LIBSUPCXX diff --git a/src/add-ons/screen_savers/gravity/Jamfile b/src/add-ons/screen_savers/gravity/Jamfile index 024fccadc3..dd4f7ca2ad 100644 --- a/src/add-ons/screen_savers/gravity/Jamfile +++ b/src/add-ons/screen_savers/gravity/Jamfile @@ -3,7 +3,7 @@ UseBuildFeatureHeaders glu ; UseBuildFeatureHeaders mesa ; # For GCC2 -if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 3 { +if $(TARGET_CC_IS_LEGACY_GCC_$(TARGET_PACKAGING_ARCH)) = 1 { SubDirC++Flags --no-warnings ; } diff --git a/src/add-ons/translators/png/Jamfile b/src/add-ons/translators/png/Jamfile index a3a94e331a..9e43e8d04b 100644 --- a/src/add-ons/translators/png/Jamfile +++ b/src/add-ons/translators/png/Jamfile @@ -4,7 +4,7 @@ SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; AddResources PNGTranslator : PNGTranslator.rdef ; -if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) = 2 { +if $(TARGET_CC_IS_LEGACY_GCC_$(TARGET_PACKAGING_ARCH)) = 1 { SubDirCcFlags -DPNG_NO_PEDANTIC_WARNINGS ; } @@ -17,7 +17,7 @@ for architectureObject in [ MultiArchSubDirSetup ] { Includes [ FGristFiles PNGTranslator.cpp PNGView.cpp ] : [ BuildFeatureAttribute libpng : headers ] ; - Translator [ MultiArchDefaultGristFiles PNGTranslator ] : + Translator [ MultiArchDefaultGristFiles PNGTranslator ] : PNGMain.cpp PNGTranslator.cpp PNGView.cpp diff --git a/src/apps/haiku3d/Jamfile b/src/apps/haiku3d/Jamfile index e9266cbfdc..930b70b9b7 100644 --- a/src/apps/haiku3d/Jamfile +++ b/src/apps/haiku3d/Jamfile @@ -6,7 +6,7 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) mesh ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) texture ] ; # For GCC2 -if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 3 { +if $(TARGET_CC_IS_LEGACY_GCC_$(TARGET_PACKAGING_ARCH)) = 1 { SubDirC++Flags --no-warnings ; } diff --git a/src/system/boot/Jamfile b/src/system/boot/Jamfile index 84784224b5..f1d3e8d582 100644 --- a/src/system/boot/Jamfile +++ b/src/system/boot/Jamfile @@ -250,7 +250,7 @@ actions AtariBootPrgLd local extraSources = ; -if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) = 2 { +if $(TARGET_CC_IS_LEGACY_GCC_$(TARGET_PACKAGING_ARCH)) = 1 { extraSources += atomic.S ; } diff --git a/src/system/libroot/os/arch/x86/Jamfile b/src/system/libroot/os/arch/x86/Jamfile index 50e421b7cc..a74fb90cdd 100644 --- a/src/system/libroot/os/arch/x86/Jamfile +++ b/src/system/libroot/os/arch/x86/Jamfile @@ -13,7 +13,7 @@ for architectureObject in [ MultiArchSubDirSetup x86 x86_gcc2 ] { SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; local compatibilitySources ; - if $(TARGET_GCC_VERSION_$(architecture)[1]) = 2 { + if $(TARGET_CC_IS_LEGACY_GCC_$(architecture)) = 1 { compatibilitySources = compatibility.c ; diff --git a/src/tools/bfs_shell/Jamfile b/src/tools/bfs_shell/Jamfile index 80f4175323..68844ef170 100644 --- a/src/tools/bfs_shell/Jamfile +++ b/src/tools/bfs_shell/Jamfile @@ -20,7 +20,7 @@ DEFINES += HAIKU_BUILD_COMPATIBILITY_H __STRICT_ANSI__ ; defines = [ FDefines $(defines) ] ; local c++flags = ; - if $(HOST_GCC_VERSION[1]) >= 3 { + if $(HOST_CC_IS_LEGACY_GCC) != 1 { c++flags += -std=c++11 ; }