diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-08-04 09:47:52 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-08-04 09:51:36 +0200 |
commit | 0936bc54f907066644503c7d4c390968711c73a7 (patch) | |
tree | 6eb8c614e7083eae6ca619435f901dcb1380108f /src/corelib/global | |
parent | 83080e8a7cb7aaa794a9659eeaf34690afe71ddb (diff) | |
parent | ffd44acd0de4fc7079e76f1fe4689b655f9dc763 (diff) |
Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
config.tests/arch/arch.cpp
src/opengl/qgl_qpa.cpp
src/widgets/kernel/qapplication.cpp
Change-Id: I80b442a4c2c9632743a5b5c7319ff201ec5bc4fd
Diffstat (limited to 'src/corelib/global')
-rw-r--r-- | src/corelib/global/archdetect.cpp | 2 | ||||
-rw-r--r-- | src/corelib/global/qglobalstatic.h | 11 | ||||
-rw-r--r-- | src/corelib/global/qprocessordetection.h | 15 |
3 files changed, 21 insertions, 7 deletions
diff --git a/src/corelib/global/archdetect.cpp b/src/corelib/global/archdetect.cpp index 9540e391ba..e35595e727 100644 --- a/src/corelib/global/archdetect.cpp +++ b/src/corelib/global/archdetect.cpp @@ -73,6 +73,8 @@ # define ARCH_PROCESSOR "s390" #elif defined(Q_PROCESSOR_SH) # define ARCH_PROCESSOR "sh" +#elif defined(Q_PROCESSORS_SPARC_64) +# define ARCH_PROCESSOR "sparc64" #elif defined(Q_PROCESSOR_SPARC_V9) # define ARCH_PROCESSOR "sparcv9" #elif defined(Q_PROCESSOR_SPARC) diff --git a/src/corelib/global/qglobalstatic.h b/src/corelib/global/qglobalstatic.h index e9330a4b9e..31e2e634a8 100644 --- a/src/corelib/global/qglobalstatic.h +++ b/src/corelib/global/qglobalstatic.h @@ -68,8 +68,17 @@ enum GuardValues { // until the constructor returns ... // We better avoid these kind of problems by using our own locked implementation. +#if defined(Q_OS_UNIX) && defined(Q_CC_INTEL) +// Work around Intel issue ID 6000058488: +// local statics inside an inline function inside an anonymous namespace are global +// symbols (this affects the IA-64 C++ ABI, so OS X and Linux only) +# define Q_GLOBAL_STATIC_INTERNAL_DECORATION Q_DECL_HIDDEN +#else +# define Q_GLOBAL_STATIC_INTERNAL_DECORATION Q_DECL_HIDDEN inline +#endif + #define Q_GLOBAL_STATIC_INTERNAL(ARGS) \ - Q_DECL_HIDDEN inline Type *innerFunction() \ + Q_GLOBAL_STATIC_INTERNAL_DECORATION Type *innerFunction() \ { \ struct HolderBase { \ ~HolderBase() Q_DECL_NOTHROW \ diff --git a/src/corelib/global/qprocessordetection.h b/src/corelib/global/qprocessordetection.h index 384df8fd54..c9fb728593 100644 --- a/src/corelib/global/qprocessordetection.h +++ b/src/corelib/global/qprocessordetection.h @@ -294,12 +294,15 @@ SPARC is big-endian only prior to V9, while V9 is bi-endian with big-endian as the default byte order. Assume all SPARC systems are big-endian. */ -// #elif defined(__sparc__) -// # define Q_PROCESSOR_SPARC -// # if defined(__sparc_v9__) -// # define Q_PROCESSOR_SPARC_V9 -// # endif -// # define Q_BYTE_ORDER Q_BIG_ENDIAN +#elif defined(__sparc__) +# define Q_PROCESSOR_SPARC +# if defined(__sparc_v9__) +# define Q_PROCESSOR_SPARC_V9 +# endif +# if defined(__sparc64__) +# define Q_PROCESSOR_SPARC_64 +# endif +# define Q_BYTE_ORDER Q_BIG_ENDIAN #endif |