Linux startup crash appears to be due to static/global C++ init of LLAtomic
types. The initializer with explicit value makes some runtime calls and it
looks like these assume, at least on Linux, that apr_initialize() has been
called. So move the static POST count to a member and provide accessors
and increment/decrement. Command queue was built on a pointer to a class
in anonymous namespace and that's not quite valid. Made it a nested
class (really a nested forward declaration) while keeping the derived
classes in anonymous.
Legacy of the LLSD::Map-to-LLSD::Array conversion, this ended up
performing an erase on the array rather than the map taking out
all the regions. So, there *was* a metrics report, it was just empty
of regions. Fixed and scanned for more array/map problems and
corrected the data type for duration sorts (should have been Real).
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!).
VWR-24254: Don't link with fontconfig on non-linux.
While we already added fontconfig in the above patch,
that code turned out to also be used by Windows and
Darwin (contrary to the comments in the code).
After looking at the history of commits and a
discussion on IRC it was decided that the original
coder (Kyle Ambroff <ambroff@lindenlab.com>) really
meant (LINUX AND VIEWER) instead of (NOT LINUX OR VIEWER).
If tut/tut.hpp isn't installed in a standard include directory all tests
fail because the found include directory for tut isn't passed to the compiler.
This patch fixes this by passing it.
Note that using include_directories() in a Find*.cmake file is bad practise.
The correct way is to set an include dir variable and call
include_directories() once. It certainly doesn't work for the tests anyway
because the tests are all over the place and include_directories is on a
per folder basis. What is needed is to set it for each (test) target.
However, there is no TARGET_INCLUDE_DIRECTORIES. The closest thing that we
have is to set the COMPILE_FLAGS property for a target.
Fortunately, standalone is only used for linux, so we can just use
-I${TUT_INCLUDE_DIR} to get the effect we want.
The old one just assumed that libndof is installed,
even on standalone.
This patch looks for it on standalone, unless configured
with -DNDOF:BOOL=OFF, and when not found prints an error
message (including telling about -DNDOF:BOOL=OFF).