aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden
diff options
context:
space:
mode:
authorAleric Inglewood2010-11-12 21:39:40 +0100
committerAleric Inglewood2010-11-12 22:38:18 +0100
commit86c2b6fd2a17f575998bd6efdcab5aa4bafc86b9 (patch)
treec48ad7fb84e460cda8398036e672212e96ab2171 /linden
parentMerge branch 'weekly' into SNOW-713 (diff)
downloadmeta-impy-86c2b6fd2a17f575998bd6efdcab5aa4bafc86b9.zip
meta-impy-86c2b6fd2a17f575998bd6efdcab5aa4bafc86b9.tar.gz
meta-impy-86c2b6fd2a17f575998bd6efdcab5aa4bafc86b9.tar.bz2
meta-impy-86c2b6fd2a17f575998bd6efdcab5aa4bafc86b9.tar.xz
Add support for using ld.gold on linux.
To use ld.gold configure with: -DCMAKE_EXE_LINKER_FLAGS:STRING="-Wl,-use-gold". ld.gold links the viewer on my machine in 8 seconds, as opposed to 19 seconds with ld.bfd. Moreover, it uses a LOT less memory during linking (about 750 MB instead of 2.5 GB!). Thanks to Siana Gearz for pointing out that ld.gold is so much faster.
Diffstat (limited to 'linden')
-rw-r--r--linden/indra/cmake/BerkeleyDB.cmake7
-rw-r--r--linden/indra/cmake/LLCommon.cmake10
-rw-r--r--linden/indra/llwindow/CMakeLists.txt1
3 files changed, 15 insertions, 3 deletions
diff --git a/linden/indra/cmake/BerkeleyDB.cmake b/linden/indra/cmake/BerkeleyDB.cmake
index d98e791..de62763 100644
--- a/linden/indra/cmake/BerkeleyDB.cmake
+++ b/linden/indra/cmake/BerkeleyDB.cmake
@@ -6,6 +6,11 @@ set(DB_FIND_REQUIRED ON)
6if (STANDALONE) 6if (STANDALONE)
7 include(FindBerkeleyDB) 7 include(FindBerkeleyDB)
8else (STANDALONE) 8else (STANDALONE)
9 set(DB_LIBRARIES db-4.2) 9 if (LINUX)
10 # Need to add dependency pthread explicitely to support ld.gold.
11 set(DB_LIBRARIES db-4.2 pthread)
12 else (LINUX)
13 set(DB_LIBRARIES db-4.2)
14 endif (LINUX)
10 set(DB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) 15 set(DB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
11endif (STANDALONE) 16endif (STANDALONE)
diff --git a/linden/indra/cmake/LLCommon.cmake b/linden/indra/cmake/LLCommon.cmake
index 410766e..d87d3c0 100644
--- a/linden/indra/cmake/LLCommon.cmake
+++ b/linden/indra/cmake/LLCommon.cmake
@@ -7,9 +7,15 @@ include(ZLIB)
7 7
8set(LLCOMMON_INCLUDE_DIRS 8set(LLCOMMON_INCLUDE_DIRS
9 ${LIBS_OPEN_DIR}/llcommon 9 ${LIBS_OPEN_DIR}/llcommon
10 ${APRUTIL_INCLUDE_DIR}
11 ${APR_INCLUDE_DIR} 10 ${APR_INCLUDE_DIR}
12 ${Boost_INCLUDE_DIRS} 11 ${Boost_INCLUDE_DIRS}
13 ) 12 )
14 13
15set(LLCOMMON_LIBRARIES llcommon) 14if (LINUX)
15 # In order to support using ld.gold on linux, we need to explicitely
16 # specify all libraries that llcommon uses.
17 # llcommon uses `clock_gettime' which is provided by librt on linux.
18 set(LLCOMMON_LIBRARIES llcommon rt)
19else (LINUX)
20 set(LLCOMMON_LIBRARIES llcommon)
21endif (LINUX)
diff --git a/linden/indra/llwindow/CMakeLists.txt b/linden/indra/llwindow/CMakeLists.txt
index 5224163..ea81abf 100644
--- a/linden/indra/llwindow/CMakeLists.txt
+++ b/linden/indra/llwindow/CMakeLists.txt
@@ -59,6 +59,7 @@ set(viewer_HEADER_FILES
59set(llwindow_LINK_LIBRARIES 59set(llwindow_LINK_LIBRARIES
60 ${UI_LIBRARIES} # for GTK 60 ${UI_LIBRARIES} # for GTK
61 ${SDL_LIBRARY} 61 ${SDL_LIBRARY}
62 fontconfig # For FCInit and other FC* functions.
62 ) 63 )
63 64
64if (DARWIN) 65if (DARWIN)