[haiku-commits] haiku: hrev54625 - build/jam build/jam/packages src src/add-ons/translators/png src/system

  • From: Alex von Gluck IV <kallisti5@xxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 8 Oct 2020 21:20:05 -0400 (EDT)

hrev54625 adds 1 changeset to branch 'master'
old head: a3f0a36a7944ff506ef01c8fe34ccbd28579e06e
new head: 47320dd0abaf18e29575277a4b4aa49f5715e7e8
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=47320dd0abaf+%5Ea3f0a36a7944

----------------------------------------------------------------------------

47320dd0abaf: configure & build: Rework legacy GCC detection to parse versions 
outside of Jam.
  
  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 <pulkomandy@xxxxxxxxx>
  Reviewed-by: Jérôme Duval <jerome.duval@xxxxxxxxx>
  Reviewed-by: Alex von Gluck IV <kallisti5@xxxxxxxxxxx>

                              [ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev54625
Commit:      47320dd0abaf18e29575277a4b4aa49f5715e7e8
URL:         https://git.haiku-os.org/haiku/commit/?id=47320dd0abaf
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Wed Oct  7 03:46:18 2020 UTC
Committer:   Alex von Gluck IV <kallisti5@xxxxxxxxxxx>
Commit-Date: Fri Oct  9 01:20:02 2020 UTC

----------------------------------------------------------------------------

19 files changed, 54 insertions(+), 74 deletions(-)
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 +-

----------------------------------------------------------------------------

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 = <src!system!kernel!arch!x86>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 <rawVersionVariable> ;
-       #
-       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 <prefix> : <suffix> ;
        #
        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 ;
        }
 


Other related posts:

  • » [haiku-commits] haiku: hrev54625 - build/jam build/jam/packages src src/add-ons/translators/png src/system - Alex von Gluck IV