From 88e7a631b3e4c3d63aa80fe9b3e7f2595d3f45f8 Mon Sep 17 00:00:00 2001
From: "Boroondas Gupte (daggyfied changeset by Techwolf Lupindo, original fix
 by Robin Cornelius)" <hg@boroon.dasgupta.ch>
Date: Thu, 16 Sep 2010 13:26:45 +0200
Subject: [PATCH] SNOW-512/SNOW-287: Build of LLPlugin fails on 64bit linux due
 to non PIC code linking into the DSO Formatting, cleanup, and one minor
 change by Techwolf Lupindo. Minor change was a move of the hunk in
 indra/media_plugins/webkit/CmakeLists.txt to same area as the other plugins
 CmakeLists.txt files.

daggyfied version of https://bitbucket.org/Techwolf/viewer-development/changeset/00bd21962052
---
 doc/contributions.txt                           | 2 ++
 indra/llcommon/CMakeLists.txt                   | 7 +++++++
 indra/llplugin/CMakeLists.txt                   | 8 ++++++++
 indra/media_plugins/base/CMakeLists.txt         | 8 ++++++++
 indra/media_plugins/example/CMakeLists.txt      | 8 ++++++++
 indra/media_plugins/gstreamer010/CMakeLists.txt | 8 ++++++++
 indra/media_plugins/webkit/CMakeLists.txt       | 8 ++++++++
 7 files changed, 49 insertions(+)

diff --git a/doc/contributions.txt b/doc/contributions.txt
index 2e4d8032525..461ddeb6b9e 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -502,6 +502,8 @@ Ringo Tuxing
 Robin Cornelius
 	SNOW-108
 	SNOW-204
+	SNOW-287
+	SNOW-512
 	VWR-2488
 	VWR-9557
 	VWR-11128
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index 9ead183a9e0..feb6d507994 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -250,6 +250,13 @@ list(APPEND llcommon_SOURCE_FILES ${llcommon_HEADER_FILES})
 
 if(LLCOMMON_LINK_SHARED)
     add_library (llcommon SHARED ${llcommon_SOURCE_FILES})
+    if(NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+      if(WINDOWS)
+        add_definitions(/FIXED:NO)
+      else(WINDOWS) # not windows therefore gcc LINUX and DARWIN
+        add_definitions(-fPIC)
+      endif(WINDOWS)
+    endif(NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
     ll_stage_sharedlib(llcommon)
 else(LLCOMMON_LINK_SHARED)
     add_library (llcommon ${llcommon_SOURCE_FILES})
diff --git a/indra/llplugin/CMakeLists.txt b/indra/llplugin/CMakeLists.txt
index 6706775d4fe..d9b623d5c02 100644
--- a/indra/llplugin/CMakeLists.txt
+++ b/indra/llplugin/CMakeLists.txt
@@ -48,6 +48,14 @@ set(llplugin_HEADER_FILES
 set_source_files_properties(${llplugin_HEADER_FILES}
                             PROPERTIES HEADER_FILE_ONLY TRUE)
 
+if(NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+	if(WINDOWS)
+		add_definitions(/FIXED:NO)
+	else(WINDOWS) # not windows therefore gcc LINUX and DARWIN
+		add_definitions(-fPIC)
+	endif(WINDOWS)
+endif (NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+
 list(APPEND llplugin_SOURCE_FILES ${llplugin_HEADER_FILES})
 
 add_library (llplugin ${llplugin_SOURCE_FILES})
diff --git a/indra/media_plugins/base/CMakeLists.txt b/indra/media_plugins/base/CMakeLists.txt
index f8d2dabc6ca..16fd0241398 100644
--- a/indra/media_plugins/base/CMakeLists.txt
+++ b/indra/media_plugins/base/CMakeLists.txt
@@ -25,6 +25,14 @@ include_directories(
 
 ### media_plugin_base
 
+if(NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+  if(WINDOWS)
+    add_definitions(/FIXED:NO)
+  else(WINDOWS) # not windows therefore gcc LINUX and DARWIN
+    add_definitions(-fPIC)
+  endif(WINDOWS)
+endif (NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+
 set(media_plugin_base_SOURCE_FILES
     media_plugin_base.cpp
 )
diff --git a/indra/media_plugins/example/CMakeLists.txt b/indra/media_plugins/example/CMakeLists.txt
index 4d82f2747c0..7e4cdb0dafe 100644
--- a/indra/media_plugins/example/CMakeLists.txt
+++ b/indra/media_plugins/example/CMakeLists.txt
@@ -29,6 +29,14 @@ include_directories(
 
 ### media_plugin_example
 
+if(NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+  if(WINDOWS)
+    add_definitions(/FIXED:NO)
+  else(WINDOWS) # not windows therefore gcc LINUX and DARWIN
+    add_definitions(-fPIC)
+  endif(WINDOWS)
+endif (NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+
 set(media_plugin_example_SOURCE_FILES
     media_plugin_example.cpp
     )
diff --git a/indra/media_plugins/gstreamer010/CMakeLists.txt b/indra/media_plugins/gstreamer010/CMakeLists.txt
index 3b73e04786f..d6d697ba812 100644
--- a/indra/media_plugins/gstreamer010/CMakeLists.txt
+++ b/indra/media_plugins/gstreamer010/CMakeLists.txt
@@ -30,6 +30,14 @@ include_directories(
 
 ### media_plugin_gstreamer010
 
+if(NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+  if(WINDOWS)
+    add_definitions(/FIXED:NO)
+  else(WINDOWS) # not windows therefore gcc LINUX and DARWIN
+    add_definitions(-fPIC)
+  endif(WINDOWS)
+endif (NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+
 set(media_plugin_gstreamer010_SOURCE_FILES
     media_plugin_gstreamer010.cpp
     llmediaimplgstreamer_syms.cpp
diff --git a/indra/media_plugins/webkit/CMakeLists.txt b/indra/media_plugins/webkit/CMakeLists.txt
index 5bccd589d80..2073ee00deb 100644
--- a/indra/media_plugins/webkit/CMakeLists.txt
+++ b/indra/media_plugins/webkit/CMakeLists.txt
@@ -29,6 +29,14 @@ include_directories(
 
 ### media_plugin_webkit
 
+if(NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+  if(WINDOWS)
+    add_definitions(/FIXED:NO)
+  else(WINDOWS) # not windows therefore gcc LINUX and DARWIN
+    add_definitions(-fPIC)
+  endif(WINDOWS)
+endif (NOT CMAKE_SIZEOF_VOID_P MATCHES 4)
+
 set(media_plugin_webkit_SOURCE_FILES
     media_plugin_webkit.cpp
     )
-- 
GitLab