Title: [222930] trunk
Revision
222930
Author
clo...@igalia.com
Date
2017-10-05 13:39:04 -0700 (Thu, 05 Oct 2017)

Log Message

Generate a compile error if release is built without compiler optimizations
https://bugs.webkit.org/show_bug.cgi?id=177665

Reviewed by Brian Burg.

.:

Default to RelWithDebInfo if CMAKE_BUILD_TYPE is unset.

* CMakeLists.txt:

Source/_javascript_Core:

Pass -DRELEASE_WITHOUT_OPTIMIZATIONS to testair.cpp and testb3.cpp because
this files are compiled with -O0 for build speed reasons after r195639.

* _javascript_Core.xcodeproj/project.pbxproj:

Source/WTF:

For GCC and Clang, generate an error at build time that will alert
the developer that she is trying to build Release without any compiler
optimization. A build time error is much better than an unexpected
"oh, WebKit is really slow ..."  situation later.

If this was intended, then we tell the developer that she can continue
by just setting -DRELEASE_WITHOUT_OPTIMIZATIONS in the list of build
flags.

The intention of this patch is to ensure that nobody builds Release
without enabling compiler optimization by mistake.

* wtf/Compiler.h:

Modified Paths

Diff

Modified: trunk/CMakeLists.txt (222929 => 222930)


--- trunk/CMakeLists.txt	2017-10-05 19:58:08 UTC (rev 222929)
+++ trunk/CMakeLists.txt	2017-10-05 20:39:04 UTC (rev 222930)
@@ -1,4 +1,15 @@
+# -----------------------------------------------------------------------------
+# Determine CMake version and build type.
+# -----------------------------------------------------------------------------
 cmake_minimum_required(VERSION 3.3)
+
+if (NOT CMAKE_BUILD_TYPE)
+    message(WARNING "No CMAKE_BUILD_TYPE value specified, defaulting to RelWithDebInfo.")
+    set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build." FORCE)
+else ()
+    message(STATUS "The CMake build type is: ${CMAKE_BUILD_TYPE}")
+endif ()
+
 project(WebKit)
 
 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/Source/cmake")

Modified: trunk/ChangeLog (222929 => 222930)


--- trunk/ChangeLog	2017-10-05 19:58:08 UTC (rev 222929)
+++ trunk/ChangeLog	2017-10-05 20:39:04 UTC (rev 222930)
@@ -1,3 +1,14 @@
+2017-10-05  Carlos Alberto Lopez Perez  <clo...@igalia.com>
+
+        Generate a compile error if release is built without compiler optimizations
+        https://bugs.webkit.org/show_bug.cgi?id=177665
+
+        Reviewed by Brian Burg.
+
+        Default to RelWithDebInfo if CMAKE_BUILD_TYPE is unset.
+
+        * CMakeLists.txt:
+
 2017-10-05  Tim Horton  <timothy_hor...@apple.com>
 
         Make progress toward properly-formed XPC services in the Mac CMake build

Modified: trunk/Source/_javascript_Core/ChangeLog (222929 => 222930)


--- trunk/Source/_javascript_Core/ChangeLog	2017-10-05 19:58:08 UTC (rev 222929)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-10-05 20:39:04 UTC (rev 222930)
@@ -1,3 +1,15 @@
+2017-10-05  Carlos Alberto Lopez Perez  <clo...@igalia.com>
+
+        Generate a compile error if release is built without compiler optimizations
+        https://bugs.webkit.org/show_bug.cgi?id=177665
+
+        Reviewed by Brian Burg.
+
+        Pass -DRELEASE_WITHOUT_OPTIMIZATIONS to testair.cpp and testb3.cpp because
+        this files are compiled with -O0 for build speed reasons after r195639.
+
+        * _javascript_Core.xcodeproj/project.pbxproj:
+
 2017-10-05  Saam Barati  <sbar...@apple.com>
 
         Only add prototypes to the PrototypeMap if they're not already present

Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (222929 => 222930)


--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj	2017-10-05 19:58:08 UTC (rev 222929)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj	2017-10-05 20:39:04 UTC (rev 222930)
@@ -344,7 +344,7 @@
 		0F6183311C45BF070072450B /* AirLowerMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F6183281C45BF070072450B /* AirLowerMacros.h */; };
 		0F61833C1C45F62A0072450B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F0EB6105C86C6B00E6DF1B /* Foundation.framework */; };
 		0F61833D1C45F62A0072450B /* _javascript_Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* _javascript_Core.framework */; };
-		0F6183451C45F6600072450B /* testair.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F6183441C45F6600072450B /* testair.cpp */; settings = {COMPILER_FLAGS = "-O0"; }; };
+		0F6183451C45F6600072450B /* testair.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F6183441C45F6600072450B /* testair.cpp */; settings = {COMPILER_FLAGS = "-O0 -DRELEASE_WITHOUT_OPTIMIZATIONS"; }; };
 		0F620174143FCD330068B77C /* DFGVariableAccessData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F620172143FCD2F0068B77C /* DFGVariableAccessData.h */; };
 		0F620176143FCD3B0068B77C /* DFGBasicBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F620170143FCD2F0068B77C /* DFGBasicBlock.h */; };
 		0F620177143FCD3F0068B77C /* DFGAbstractValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F62016F143FCD2F0068B77C /* DFGAbstractValue.h */; };
@@ -636,7 +636,7 @@
 		0FEC85911BDACDC70080FF74 /* AirValidate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FEC856C1BDACDC70080FF74 /* AirValidate.h */; };
 		0FEC85A31BDB5CF10080FF74 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F0EB6105C86C6B00E6DF1B /* Foundation.framework */; };
 		0FEC85A41BDB5CF10080FF74 /* _javascript_Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* _javascript_Core.framework */; };
-		0FEC85AF1BDB5D5E0080FF74 /* testb3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FEC85AE1BDB5D5E0080FF74 /* testb3.cpp */; settings = {COMPILER_FLAGS = "-O0"; }; };
+		0FEC85AF1BDB5D5E0080FF74 /* testb3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FEC85AE1BDB5D5E0080FF74 /* testb3.cpp */; settings = {COMPILER_FLAGS = "-O0 -DRELEASE_WITHOUT_OPTIMIZATIONS"; }; };
 		0FEC85B31BDED9570080FF74 /* B3ConstPtrValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FEC85B21BDED9570080FF74 /* B3ConstPtrValue.h */; };
 		0FEC85BA1BE1462F0080FF74 /* B3InsertionSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FEC85B51BE1462F0080FF74 /* B3InsertionSet.h */; };
 		0FEC85BB1BE1462F0080FF74 /* B3InsertionSetInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FEC85B61BE1462F0080FF74 /* B3InsertionSetInlines.h */; };

Modified: trunk/Source/WTF/ChangeLog (222929 => 222930)


--- trunk/Source/WTF/ChangeLog	2017-10-05 19:58:08 UTC (rev 222929)
+++ trunk/Source/WTF/ChangeLog	2017-10-05 20:39:04 UTC (rev 222930)
@@ -1,3 +1,24 @@
+2017-10-05  Carlos Alberto Lopez Perez  <clo...@igalia.com>
+
+        Generate a compile error if release is built without compiler optimizations
+        https://bugs.webkit.org/show_bug.cgi?id=177665
+
+        Reviewed by Brian Burg.
+
+        For GCC and Clang, generate an error at build time that will alert
+        the developer that she is trying to build Release without any compiler
+        optimization. A build time error is much better than an unexpected
+        "oh, WebKit is really slow ..."  situation later.
+
+        If this was intended, then we tell the developer that she can continue
+        by just setting -DRELEASE_WITHOUT_OPTIMIZATIONS in the list of build
+        flags.
+
+        The intention of this patch is to ensure that nobody builds Release
+        without enabling compiler optimization by mistake.
+
+        * wtf/Compiler.h:
+
 2017-10-05  David Kilzer  <ddkil...@apple.com>
 
         Bug 177893: Disable -Wcast-qual for new clang compiler in Apple ports

Modified: trunk/Source/WTF/wtf/Compiler.h (222929 => 222930)


--- trunk/Source/WTF/wtf/Compiler.h	2017-10-05 19:58:08 UTC (rev 222929)
+++ trunk/Source/WTF/wtf/Compiler.h	2017-10-05 20:39:04 UTC (rev 222930)
@@ -104,6 +104,10 @@
 
 #endif /* COMPILER(GCC) */
 
+#if COMPILER(GCC_OR_CLANG) && defined(NDEBUG) && !defined(__OPTIMIZE__) && !defined(RELEASE_WITHOUT_OPTIMIZATIONS)
+#error "Building release without compiler optimizations: WebKit will be slow. Set -DRELEASE_WITHOUT_OPTIMIZATIONS if this is intended."
+#endif
+
 /* COMPILER(MINGW) - MinGW GCC */
 
 #if defined(__MINGW32__)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to