diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2009-07-28 16:10:22 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2009-07-29 10:55:04 (GMT) |
commit | 21e5823e431bb8a64a048e61419b7bfc56f674d6 (patch) | |
tree | 4ffcf055a19010d11eb34ba7a0e61430e4cce45e | |
parent | 45919e5085ff07348d1be8e1d37c0f6544fab7b1 (diff) | |
download | Qt-21e5823e431bb8a64a048e61419b7bfc56f674d6.zip Qt-21e5823e431bb8a64a048e61419b7bfc56f674d6.tar.gz Qt-21e5823e431bb8a64a048e61419b7bfc56f674d6.tar.bz2 |
Remove "no-stl" from the build key and add compatibility for old plugins.
STL support hasn't had binary compatibility effects for the entire
lifetime of Qt 4, so it should never have been there. It is a legacy
thing I am now correcting.
When inspecting a plugin, remove the "no-stl" from its loaded build
key. That indicates a pre-4.6 build, since now Qt no longer adds it to
its own build keys.
Note that you have to remove the 4.6 plugin cache from
$HOME/.config/Trolltech.conf or the registry for this change to work
(if you compile Qt with -no-stl). Otherwise, plugins that have already
been scanned will fail to load.
Reviewed-by: Bradley T. Hughes
-rwxr-xr-x | configure | 12 | ||||
-rw-r--r-- | src/corelib/plugin/qlibrary.cpp | 5 | ||||
-rw-r--r-- | src/corelib/tools/qvector.h | 4 | ||||
-rw-r--r-- | tools/configure/configureapp.cpp | 2 |
4 files changed, 6 insertions, 17 deletions
@@ -6377,10 +6377,8 @@ esac # Different edition modules: # network canvas table xml opengl sql # -# Options: -# stl -# # Things that do not affect the Qt API/ABI: +# stl # system-jpeg no-jpeg jpeg # system-mng no-mng mng # system-png no-png png @@ -6401,7 +6399,7 @@ esac # X11 : x11sm xinerama xcursor xfixes xrandr xrender mitshm fontconfig xkb # Embedded: embedded freetype # -ALL_OPTIONS="stl" +ALL_OPTIONS= BUILD_CONFIG= BUILD_OPTIONS= @@ -6415,12 +6413,6 @@ for config_option in $QMAKE_CONFIG $QT_CONFIG; do BUILD_CONFIG="$config_option" ;; - stl) - # these config options affect the Qt API/ABI. they should influence - # the generation of the buildkey, so we don't skip them - SKIP="no" - ;; - *) # skip all other options since they don't affect the Qt API/ABI. ;; esac diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp index 8f364ba..309bfb8 100644 --- a/src/corelib/plugin/qlibrary.cpp +++ b/src/corelib/plugin/qlibrary.cpp @@ -667,12 +667,15 @@ bool QLibraryPrivate::isPlugin(QSettings *settings) #endif } + // Qt 4.5 compatibility: stl doesn't affect binary compatibility + key.replace(" no-stl", ""); + +#ifndef QT_NO_SETTINGS QStringList queried; queried << QString::number(qt_version,16) << QString::number((int)debug) << QLatin1String(key) << lastModified; -#ifndef QT_NO_SETTINGS settings->setValue(regkey, queried); #endif } diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index 51a6709..dcd87b7 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -252,11 +252,7 @@ public: typedef const value_type* const_pointer; typedef value_type& reference; typedef const value_type& const_reference; -#ifndef QT_NO_STL typedef ptrdiff_t difference_type; -#else - typedef int difference_type; -#endif typedef iterator Iterator; typedef const_iterator ConstIterator; typedef int size_type; diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 39588e6..c938919 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -2045,8 +2045,6 @@ void Configure::generateBuildKey() QStringList build_options; if (!dictionary["QCONFIG"].isEmpty()) build_options += dictionary["QCONFIG"] + "-config "; - if (dictionary["STL"] == "no") - build_options += "no-stl"; build_options.sort(); // Sorted defines that start with QT_NO_ |