diff options
author | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-05-07 15:34:47 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-05-11 12:48:41 +0000 |
commit | 34f9324d1ba87e6ad2115abf3981180cd691fd83 (patch) | |
tree | 8a7d5ef3a87a2b892f74d1e2354a82a49a3a06a2 /doc | |
parent | b3729f0cffefb39a75f93c9fc29bfaede22d6a78 (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.qdoc | 13 |
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 |