diff options
author | Boroondas Gupte (patch by Robin Cornelius) <hg@boroon.dasgupta.ch> | 2010-08-31 12:16:03 +0200 |
---|---|---|
committer | Boroondas Gupte (patch by Robin Cornelius) <hg@boroon.dasgupta.ch> | 2010-08-31 12:16:03 +0200 |
commit | 570b91f4724c30065a047a9270c7daef1963a548 (patch) | |
tree | 11d74323d83467dcb2a4841bb68dbd30e5d284cf | |
parent | af91e855316ac1ca1723f654bc8108d74cab32e6 (diff) |
VWR-20911 FIXED CMake build arch detection is inaccurate and incomplete
Robin Cornelius' patch from
http://jira.secondlife.com/secure/attachment/42801/SNOW-776+Don%27t+use+uname+for+build+arch+detection%2C+use+compiler.patch
applied without fuzz:
patching file indra/cmake/Variables.cmake
Hunk #1 succeeded at 52 (offset -2 lines).
Added entry in doc/contributions.txt.
No further changes other than that.
-rw-r--r-- | doc/contributions.txt | 1 | ||||
-rw-r--r-- | indra/cmake/Variables.cmake | 17 |
2 files changed, 10 insertions, 8 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt index 31ea1bbc5b..4b97e78b0f 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -475,6 +475,7 @@ Robin Cornelius VWR-2488 VWR-9557 VWR-12587 + VWR-20911 Ryozu Kojima VWR-53 VWR-287 diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 75b66a85da..12a9ab7db9 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -52,19 +52,20 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(LINUX ON BOOl FORCE) # If someone has specified a word size, use that to determine the - # architecture. Otherwise, let the architecture specify the word size. + # architecture. Otherwise, let the compiler specify the word size. + # Using uname will break under chroots and other cross arch compiles. RC if (WORD_SIZE EQUAL 32) set(ARCH i686) elseif (WORD_SIZE EQUAL 64) set(ARCH x86_64) else (WORD_SIZE EQUAL 32) - execute_process(COMMAND uname -m COMMAND sed s/i.86/i686/ - OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) - if (ARCH STREQUAL x86_64) - set(WORD_SIZE 64) - else (ARCH STREQUAL x86_64) - set(WORD_SIZE 32) - endif (ARCH STREQUAL x86_64) + if(CMAKE_SIZEOF_VOID_P MATCHES 4) + set(ARCH i686) + set(WORD_SIZE 32) + else(CMAKE_SIZEOF_VOID_P MATCHES 4) + set(ARCH x86_64) + set(WORD_SIZE 64) + endif(CMAKE_SIZEOF_VOID_P MATCHES 4) endif (WORD_SIZE EQUAL 32) set(LL_ARCH ${ARCH}_linux) |