aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2015-05-07 15:34:47 +0200
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2015-05-11 12:48:41 +0000
commit34f9324d1ba87e6ad2115abf3981180cd691fd83 (patch)
tree8a7d5ef3a87a2b892f74d1e2354a82a49a3a06a2 /doc
parentb3729f0cffefb39a75f93c9fc29bfaede22d6a78 (diff)
GCC module: Add option for fine-tuning relinking behavior.
Before this patch, we considered a dynamic library as sufficiently changed to require relinking if the number of public symbols had changed. However, this can lead to behavior like the following: - Open the Qt Creator project and add a call to qDebug() somewhere in the Core plugin. - Rebuild and watch in amazement as all other plugins get relinked. The reason for that is that there was no qDebug() call in this library, so adding one introduces a new undefined public symbol into the binary. This patch allows it to ignore such changes. The property introduced for this purpose is a string as opposed to a boolean, because it could conceivably be extended later. Pushed to 1.4 because the high annoyance factor makes the current behavior bug-like. Task-number: QBS-101 Change-Id: I671716c9ddb56ce895eaad25ef243339bef092ee Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/reference/modules/cpp-module.qdoc13
1 files changed, 13 insertions, 0 deletions
diff --git a/doc/reference/modules/cpp-module.qdoc b/doc/reference/modules/cpp-module.qdoc
index 0e7688f16..6b19b63a5 100644
--- a/doc/reference/modules/cpp-module.qdoc
+++ b/doc/reference/modules/cpp-module.qdoc
@@ -603,6 +603,19 @@
Full path of the archiver binary. This is set in the build profile.
+ \section2 exportedSymbolsCheckMode
+
+ \table
+ \row \li \b{Type:} \li \c{string}
+ \row \li \b{Default:} \li "ignore-undefined"
+ \endtable
+
+ Controls how \QBS determines whether an updated dynamic library causes relinking of
+ dependents. The default value is \c "ignore-undefined", which means that undefined symbols being
+ added or removed do not cause any relinking. If that should happen, for example because
+ dependent products are linked with an option such as \c "--no-undefined", then this property
+ can be set to \c "strict".
+
\section2 nmName
\table