summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2009-07-31 14:19:44 -0400
committerNat Goodspeed <nat@lindenlab.com>2009-07-31 14:19:44 -0400
commitaaf870733a6ba4e0ff2ef93226897983950da046 (patch)
tree3ccd176b149b01a9afa4839b582b3eccee198881
parent084983485f9e05ff9164fabe3244ffd6f33295cf (diff)
parent29607ab70edea79cfdceaa52d632d77e6699cb8f (diff)
Update with palmer's round 1 changes
-rw-r--r--indra/cmake/LLAddBuildTest.cmake2
-rw-r--r--indra/cmake/Linking.cmake1
-rw-r--r--indra/llcommon/CMakeLists.txt15
-rw-r--r--indra/llcommon/llapp.h2
-rw-r--r--indra/llcommon/llapr.h4
-rw-r--r--indra/llcommon/llerror.h2
-rw-r--r--indra/llcommon/llevent.h10
-rw-r--r--indra/llcommon/llevents.h2
-rw-r--r--indra/llcommon/lllog.h2
-rw-r--r--indra/llcommon/llmetrics.h2
-rw-r--r--indra/llcommon/llpreprocessor.h4
-rw-r--r--indra/llcommon/llrun.h2
-rw-r--r--indra/llcommon/llsdutil.h2
-rw-r--r--indra/llcommon/llstat.h2
-rw-r--r--indra/llcommon/llstring.h8
-rw-r--r--indra/llcommon/llthread.h6
-rw-r--r--indra/llcommon/lluri.h6
-rw-r--r--indra/llcommon/metaclass.h6
-rw-r--r--indra/llcommon/metaproperty.h4
-rw-r--r--indra/llcommon/reflective.h2
-rw-r--r--indra/newview/llappviewer.cpp10
21 files changed, 60 insertions, 34 deletions
diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake
index aa77bbac65..013cc5109f 100644
--- a/indra/cmake/LLAddBuildTest.cmake
+++ b/indra/cmake/LLAddBuildTest.cmake
@@ -123,7 +123,7 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
IF(WINDOWS)
set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR})
ELSE(WINDOWS)
- set(LD_LIBRARY_PATH ${ARCH_PREBUILT_DIRS}:/usr/lib)
+ set(LD_LIBRARY_PATH ${ARCH_PREBUILT_DIRS}:${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}:/usr/lib)
ENDIF(WINDOWS)
IF(LL_TEST_VERBOSE)
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index 578edf9989..30b3cc9994 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -14,6 +14,7 @@ if (NOT STANDALONE)
endif (VIEWER)
set(ARCH_PREBUILT_DIRS_RELEASE ${ARCH_PREBUILT_DIRS})
set(ARCH_PREBUILT_DIRS_DEBUG ${ARCH_PREBUILT_DIRS})
+ set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged .sos")
elseif (DARWIN)
set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release)
set(ARCH_PREBUILT_DIRS ${ARCH_PREBUILT_DIRS_RELEASE})
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index c46e2583f1..2ecd4ee5d4 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -245,6 +245,20 @@ if(LLCOMMON_LINK_SHARED)
# Also this directory is shared with RunBuildTest.cmake, y'know, for the tests.
set_target_properties(llcommon PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR})
endif(SHARED_LIB_STAGING_DIR)
+
+ get_target_property(LLCOMMON_PATH llcommon LOCATION)
+ get_filename_component(LLCOMMON_FILE ${LLCOMMON_PATH} NAME)
+ add_custom_command(
+ TARGET llcommon POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS
+ -E
+ copy_if_different
+ ${LLCOMMON_FILE}
+ ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/${LLCOMMON_FILE}
+ COMMENT "Copying llcommon to the staging folder."
+ )
+
else(LLCOMMON_LINK_SHARED)
add_library (llcommon ${llcommon_SOURCE_FILES})
endif(LLCOMMON_LINK_SHARED)
@@ -263,6 +277,7 @@ target_link_libraries(
add_dependencies(llcommon stage_third_party_libs)
+
include(LLAddBuildTest)
SET(llcommon_TEST_SOURCE_FILES
# WARNING: Please don't write tests against LLCommon or LLMath until this issue is resolved: https://jira.lindenlab.com/jira/browse/DEV-29456
diff --git a/indra/llcommon/llapp.h b/indra/llcommon/llapp.h
index cc60ba0b80..35f6f7028d 100644
--- a/indra/llcommon/llapp.h
+++ b/indra/llcommon/llapp.h
@@ -61,7 +61,7 @@ public:
};
#endif
-class LLApp
+class LL_COMMON_API LLApp
{
friend class LLErrorThread;
public:
diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h
index f968eabc18..0898aeec47 100644
--- a/indra/llcommon/llapr.h
+++ b/indra/llcommon/llapr.h
@@ -167,8 +167,8 @@ private:
apr_uint32_t mData;
};
-typedef LL_COMMON_API LLAtomic32<U32> LLAtomicU32;
-typedef LL_COMMON_API LLAtomic32<S32> LLAtomicS32;
+typedef LLAtomic32<U32> LLAtomicU32;
+typedef LLAtomic32<S32> LLAtomicS32;
// File IO convenience functions.
// Returns NULL if the file fails to openm sets *sizep to file size of not NULL
diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h
index 6ccdf2174b..4f68fb9f76 100644
--- a/indra/llcommon/llerror.h
+++ b/indra/llcommon/llerror.h
@@ -129,7 +129,7 @@ namespace LLError
They are not intended for general use.
*/
- class LL_COMMON_API CallSite;
+ class CallSite;
class LL_COMMON_API Log
{
diff --git a/indra/llcommon/llevent.h b/indra/llcommon/llevent.h
index 192cb84fea..0ea7cf4ae8 100644
--- a/indra/llcommon/llevent.h
+++ b/indra/llcommon/llevent.h
@@ -41,10 +41,10 @@
namespace LLOldEvents
{
-class LL_COMMON_API LLEventListener;
-class LL_COMMON_API LLEvent;
-class LL_COMMON_API LLEventDispatcher;
-class LL_COMMON_API LLObservable;
+class LLEventListener;
+class LLEvent;
+class LLEventDispatcher;
+class LLObservable;
// Abstract event. All events derive from LLEvent
class LL_COMMON_API LLEvent : public LLThreadSafeRefCount
@@ -104,7 +104,7 @@ protected:
std::vector<LLEventDispatcher *> mDispatchers;
};
-class LL_COMMON_API LLObservable; // defined below
+class LLObservable; // defined below
// A structure which stores a Listener and its metadata
struct LLListenerEntry
diff --git a/indra/llcommon/llevents.h b/indra/llcommon/llevents.h
index 8ebffc008f..6df418fe5a 100644
--- a/indra/llcommon/llevents.h
+++ b/indra/llcommon/llevents.h
@@ -172,7 +172,7 @@ private:
/*****************************************************************************
* LLEventPumps
*****************************************************************************/
-class LL_COMMON_API LLEventPump;
+class LLEventPump;
/**
* LLEventPumps is a Singleton manager through which one typically accesses
diff --git a/indra/llcommon/lllog.h b/indra/llcommon/lllog.h
index b0ec570c01..4b6777bb9c 100644
--- a/indra/llcommon/lllog.h
+++ b/indra/llcommon/lllog.h
@@ -39,7 +39,7 @@
class LLLogImpl;
class LLApp;
-class LL_COMMON_API LLSD;
+class LLSD;
class LL_COMMON_API LLLog
{
diff --git a/indra/llcommon/llmetrics.h b/indra/llcommon/llmetrics.h
index 11e10a5a2e..f6f49eb456 100644
--- a/indra/llcommon/llmetrics.h
+++ b/indra/llcommon/llmetrics.h
@@ -36,7 +36,7 @@
#define LL_LLMETRICS_H
class LLMetricsImpl;
-class LL_COMMON_API LLSD;
+class LLSD;
class LL_COMMON_API LLMetrics
{
diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h
index ed6ca9a25f..671e85b16f 100644
--- a/indra/llcommon/llpreprocessor.h
+++ b/indra/llcommon/llpreprocessor.h
@@ -138,12 +138,14 @@
#if LL_WINDOWS
#define LL_DLLEXPORT __declspec(dllexport)
#define LL_DLLIMPORT __declspec(dllimport)
+#elif LL_LINUX
+#define LL_DLLEXPORT __attribute__ ((visibility("default")))
+#define LL_DLLIMPORT
#else
#define LL_DLLEXPORT
#define LL_DLLIMPORT
#endif // LL_WINDOWS
-
#if LL_COMMON_LINK_SHARED
# if LL_COMMON_BUILD
# define LL_COMMON_API LL_DLLEXPORT
diff --git a/indra/llcommon/llrun.h b/indra/llcommon/llrun.h
index afe65fd734..1fc9925df9 100644
--- a/indra/llcommon/llrun.h
+++ b/indra/llcommon/llrun.h
@@ -38,7 +38,7 @@
#include <vector>
#include <boost/shared_ptr.hpp>
-class LL_COMMON_API LLRunnable;
+class LLRunnable;
/**
* @class LLRunner
diff --git a/indra/llcommon/llsdutil.h b/indra/llcommon/llsdutil.h
index 8cb459d81b..6a6c396687 100644
--- a/indra/llcommon/llsdutil.h
+++ b/indra/llcommon/llsdutil.h
@@ -35,7 +35,7 @@
#ifndef LL_LLSDUTIL_H
#define LL_LLSDUTIL_H
-class LL_COMMON_API LLSD;
+class LLSD;
// U32
LL_COMMON_API LLSD ll_sd_from_U32(const U32);
diff --git a/indra/llcommon/llstat.h b/indra/llcommon/llstat.h
index 5d77215beb..64ea8e5b40 100644
--- a/indra/llcommon/llstat.h
+++ b/indra/llcommon/llstat.h
@@ -40,7 +40,7 @@
#include "llframetimer.h"
#include "llfile.h"
-class LL_COMMON_API LLSD;
+class LLSD;
// Set this if longer stats are needed
#define ENABLE_LONG_TIME_STATS 0
diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h
index eb36dafee3..24a8d49a54 100644
--- a/indra/llcommon/llstring.h
+++ b/indra/llcommon/llstring.h
@@ -345,9 +345,9 @@ public:
template<class T> std::basic_string<T> LLStringUtilBase<T>::null;
template<class T> std::string LLStringUtilBase<T>::sLocale;
-typedef LL_COMMON_API LLStringUtilBase<char> LLStringUtil;
-typedef LL_COMMON_API LLStringUtilBase<llwchar> LLWStringUtil;
-typedef LL_COMMON_API std::basic_string<llwchar> LLWString;
+typedef LLStringUtilBase<char> LLStringUtil;
+typedef LLStringUtilBase<llwchar> LLWStringUtil;
+typedef std::basic_string<llwchar> LLWString;
//@ Use this where we want to disallow input in the form of "foo"
// This is used to catch places where english text is embedded in the code
@@ -419,7 +419,7 @@ LL_COMMON_API std::string rawstr_to_utf8(const std::string& raw);
//
// We should never use UTF16 except when communicating with Win32!
//
-typedef LL_COMMON_API std::basic_string<U16> llutf16string;
+typedef std::basic_string<U16> llutf16string;
LL_COMMON_API LLWString utf16str_to_wstring(const llutf16string &utf16str, S32 len);
LL_COMMON_API LLWString utf16str_to_wstring(const llutf16string &utf16str);
diff --git a/indra/llcommon/llthread.h b/indra/llcommon/llthread.h
index e6bf95aaa9..c3d7650bd9 100644
--- a/indra/llcommon/llthread.h
+++ b/indra/llcommon/llthread.h
@@ -38,9 +38,9 @@
#include "apr_thread_cond.h"
-class LL_COMMON_API LLThread;
-class LL_COMMON_API LLMutex;
-class LL_COMMON_API LLCondition;
+class LLThread;
+class LLMutex;
+class LLCondition;
class LL_COMMON_API LLThread
{
diff --git a/indra/llcommon/lluri.h b/indra/llcommon/lluri.h
index 33fd88b497..eb5c5203eb 100644
--- a/indra/llcommon/lluri.h
+++ b/indra/llcommon/lluri.h
@@ -37,9 +37,9 @@
#include <string>
-class LL_COMMON_API LLSD;
-class LL_COMMON_API LLUUID;
-class LL_COMMON_API LLApp;
+class LLSD;
+class LLUUID;
+class LLApp;
/**
*
diff --git a/indra/llcommon/metaclass.h b/indra/llcommon/metaclass.h
index 8b93e0d6d5..f38bcd2d57 100644
--- a/indra/llcommon/metaclass.h
+++ b/indra/llcommon/metaclass.h
@@ -40,9 +40,9 @@
#include "stdtypes.h"
-class LL_COMMON_API LLReflective;
-class LL_COMMON_API LLMetaProperty;
-class LL_COMMON_API LLMetaMethod;
+class LLReflective;
+class LLMetaProperty;
+class LLMetaMethod;
class LL_COMMON_API LLMetaClass
{
public:
diff --git a/indra/llcommon/metaproperty.h b/indra/llcommon/metaproperty.h
index 96e1b314a4..6c016c56dd 100644
--- a/indra/llcommon/metaproperty.h
+++ b/indra/llcommon/metaproperty.h
@@ -39,8 +39,8 @@
#include "llsd.h"
#include "reflective.h"
-class LL_COMMON_API LLMetaClass;
-class LL_COMMON_API LLReflective;
+class LLMetaClass;
+class LLReflective;
class LL_COMMON_API LLMetaProperty
{
public:
diff --git a/indra/llcommon/reflective.h b/indra/llcommon/reflective.h
index 541712538b..a13537681d 100644
--- a/indra/llcommon/reflective.h
+++ b/indra/llcommon/reflective.h
@@ -35,7 +35,7 @@
#ifndef LL_REFLECTIVE_H
#define LL_REFLECTIVE_H
-class LL_COMMON_API LLMetaClass;
+class LLMetaClass;
class LL_COMMON_API LLReflective
{
public:
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 17984b8eae..5a1ccb2047 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1162,7 +1162,9 @@ bool LLAppViewer::cleanup()
apr_status_t rv = apr_dso_sym((apr_dso_handle_sym_t*)&ll_plugin_stop_func, *i, "ll_plugin_stop");
ll_plugin_stop_func();
- rv = apr_dso_unload(*i);
+ // *NOTE - disabled unloading as partial solution to DEV-35406 crash on shutdown
+ //rv = apr_dso_unload(*i);
+ (void)rv;
}
mPlugins.clear();
@@ -4123,6 +4125,12 @@ void LLAppViewer::loadEventHostModule(S32 listen_port)
gDirUtilp->getAppRODataDir(),
gDirUtilp->getExecutableDir());
+ if(dso_path == "")
+ {
+ llwarns << "QAModeEventHost requested but module \"" << dso_name << "\" not found!" << llendl;
+ return;
+ }
+
apr_dso_handle_t * eventhost_dso_handle = NULL;
apr_pool_t * eventhost_dso_memory_pool = NULL;