summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoroondas Gupte (patch by Robin Cornelius) <hg@boroon.dasgupta.ch>2010-08-31 12:16:03 +0200
committerBoroondas Gupte (patch by Robin Cornelius) <hg@boroon.dasgupta.ch>2010-08-31 12:16:03 +0200
commit570b91f4724c30065a047a9270c7daef1963a548 (patch)
tree11d74323d83467dcb2a4841bb68dbd30e5d284cf
parentaf91e855316ac1ca1723f654bc8108d74cab32e6 (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.txt1
-rw-r--r--indra/cmake/Variables.cmake17
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)