Title: [131728] trunk/Tools
- Revision
- 131728
- Author
- [email protected]
- Date
- 2012-10-18 05:09:51 -0700 (Thu, 18 Oct 2012)
Log Message
[Qt] Reduce memory pressure at link time with less compromise on speed of linking
Reviewed by Csaba Osztrogonác.
Revert r131718 that made us pass -fno-keep-memory to the linker for any
i386 builds. The downside of passing that option is that it slows down
the process of linking and as Ossy determined, release builds do _not_
take as much memory (2.x GB) for linking but much less (~350MB).
However there is one condition where even release builds do take up too
much memory, and that is when Qt is configured with
-separate-debug-info, because it adds a -g next to -O2. The recent
introduction of loading qt_build_config enabled us to read qmodule.pri,
which adds the -g if Qt is configured with -separate-debug-info. So
instead of playing with -fno-keep-memory (which is a last resort
measure for debug builds) we should tweak our existing mechanism of
dealing with the debug info:
production_build.prf tries to ensure that we use -g only in static
libraries that contain API facing code, so that we get nice backtraces
at least into the API layer. For other static libraries such as WebCore
we skip -g via CONFIG += no_debug_info. One of the conditions for
enabling this tweak is CONFIG(debug, debug|release). This patch adds
contains(QT_CONFIG,separate_debug_info) to the conditions.
The patch also extend the CONFIG += no_debug_info part with the removal
of no_separate_debug_info. There is no point in running an extra
build step to strip out debug info into a separate file if at the same
time we tell the compiler to not generate any debug info altogether.
* qmake/mkspecs/features/production_build.prf:
* qmake/mkspecs/features/unix/default_post.prf:
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (131727 => 131728)
--- trunk/Tools/ChangeLog 2012-10-18 11:28:21 UTC (rev 131727)
+++ trunk/Tools/ChangeLog 2012-10-18 12:09:51 UTC (rev 131728)
@@ -1,3 +1,38 @@
+2012-10-18 Simon Hausmann <[email protected]>
+
+ [Qt] Reduce memory pressure at link time with less compromise on speed of linking
+
+ Reviewed by Csaba Osztrogonác.
+
+ Revert r131718 that made us pass -fno-keep-memory to the linker for any
+ i386 builds. The downside of passing that option is that it slows down
+ the process of linking and as Ossy determined, release builds do _not_
+ take as much memory (2.x GB) for linking but much less (~350MB).
+
+ However there is one condition where even release builds do take up too
+ much memory, and that is when Qt is configured with
+ -separate-debug-info, because it adds a -g next to -O2. The recent
+ introduction of loading qt_build_config enabled us to read qmodule.pri,
+ which adds the -g if Qt is configured with -separate-debug-info. So
+ instead of playing with -fno-keep-memory (which is a last resort
+ measure for debug builds) we should tweak our existing mechanism of
+ dealing with the debug info:
+
+ production_build.prf tries to ensure that we use -g only in static
+ libraries that contain API facing code, so that we get nice backtraces
+ at least into the API layer. For other static libraries such as WebCore
+ we skip -g via CONFIG += no_debug_info. One of the conditions for
+ enabling this tweak is CONFIG(debug, debug|release). This patch adds
+ contains(QT_CONFIG,separate_debug_info) to the conditions.
+
+ The patch also extend the CONFIG += no_debug_info part with the removal
+ of no_separate_debug_info. There is no point in running an extra
+ build step to strip out debug info into a separate file if at the same
+ time we tell the compiler to not generate any debug info altogether.
+
+ * qmake/mkspecs/features/production_build.prf:
+ * qmake/mkspecs/features/unix/default_post.prf:
+
2012-10-18 Balazs Kelemen <[email protected]>
[Qt] OpenGL rendering is not possible on bots using Xvfb
Modified: trunk/Tools/qmake/mkspecs/features/production_build.prf (131727 => 131728)
--- trunk/Tools/qmake/mkspecs/features/production_build.prf 2012-10-18 11:28:21 UTC (rev 131727)
+++ trunk/Tools/qmake/mkspecs/features/production_build.prf 2012-10-18 12:09:51 UTC (rev 131728)
@@ -7,9 +7,10 @@
# resulting in the need of several gigabytes of memory at link-time. Reduce the pressure
# by compiling any static library like WTF or JSC with release flags instead and keep debug
# symbols for the static libraries that implement API.
-linux-*|win32-g++*:CONFIG(debug, debug|release):contains(TEMPLATE, lib):staticlib {
+linux-*|win32-g++*:if(CONFIG(debug, debug|release)|contains(QT_CONFIG,separate_debug_info)):contains(TEMPLATE, lib):staticlib {
!equals(TARGET, WebKit2):!equals(TARGET, WebKit1) {
CONFIG += no_debug_info
+ CONFIG -= separate_debug_info
QMAKE_CFLAGS += $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_RELEASE
}
Modified: trunk/Tools/qmake/mkspecs/features/unix/default_post.prf (131727 => 131728)
--- trunk/Tools/qmake/mkspecs/features/unix/default_post.prf 2012-10-18 11:28:21 UTC (rev 131727)
+++ trunk/Tools/qmake/mkspecs/features/unix/default_post.prf 2012-10-18 12:09:51 UTC (rev 131728)
@@ -34,7 +34,7 @@
contains(TEMPLATE, app): CONFIG += rpath
-isEqual(QT_ARCH,i386) {
+isEqual(QT_ARCH,i386):CONFIG(debug, debug|release) {
# Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase.
config_gnuld: QMAKE_LFLAGS += -Wl,--no-keep-memory
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes