Compiling the viewer (FreeBSD)
The viewer has been compiled under FreeBSD 6.2. In this case, the viewer source and the artwork file were saved in /tmp, slviewer-src-FL-1.13.3.57876.tar.gz and slviewer-artwork-FL-1.13.3.57876.zip. The directions were followed for compiling under linux. All of the libraries were available under the ports system with the exception of xmlrpc-epi. In this case the source files were saved in /tmp/linden/xmlrpc-epi-0.51 where they were compiled. There was an additional problem with the openjpeg port. One of the include files was not available, so the sources from /usr/ports/distfiles were untarred into the directory /tmp/linden/OpenJPEG. A symbolic link, /tmp/linden/OpenJPEG/include, was created that points to /tmp/linden/OpenJPEG/dist.
The path for the dynamic libraries must be set:
export LD_LIBRARY_PATH=../../libraries/i686-linux/lib_release_client:/usr/local/lib:/tmp/linden/xmlrpc-epi-0.51/src/.libs
Then the compilation was started using the command:
scons DISTCC=no BTARGET=client BUILD=release
A number of small problems arose during the compilation process. A list of the changes are given below. These changes were found by untarring the original source in a directory called /tmp/virgin. Then a perl script was used to compare every file using "diff -C 5". The output from the differences is given below.
*** ./linden/indra/SConstruct Sat Feb 10 00:49:19 2007
--- /tmp/linden/indra/SConstruct Tue Feb 13 13:38:58 2007
***************
*** 21,30 ****
--- 21,31 ----
import glob
platform = sys.platform
if platform == 'linux2':
platform = 'linux'
+ platform = 'linux'
######################
# GET VERSION #
######################
***************
*** 114,123 ****
--- 115,135 ----
./llcommon ./llmath ./llwindow ./llaudio ./llcharacter
./lldatabase ./llhavok ./llimage ./llinventory ./llmedia ./llmessage
./llprimitive ./llrender ./llscene ./llui ./llvfs ./llwindow
./llxml ./lscript
../libraries/include
+ /usr/local/include
+ /usr/local/include/boost
+ /tmp/linden/OpenJPEG
+ /usr/local/include/pango-1.0
+ /usr/local/include/atk-1.0
+ /usr/local/include/glib-2.0
+ /usr/local/include/cairo
+ /usr/X11R6/include
+ /usr/local/include/freetype2
+ /usr/local/include/gtk-2.0
+ /tmp/linden/xmlrpc-epi-0.51
../libraries/include/havok
""" +
'../libraries/' + system_str + '/include' )
client_external_libs = []
***************
*** 178,199 ****
if platform == 'linux':
# Linux-only flags
flags += '-DLL_LINUX=1 '
if build_target == 'client':
! flags += '-DAPPID=secondlife -DLL_SDL=1 -DLL_X11=1 '
flags += '-DLL_GTK=1 '
! client_external_libs += [ 'gtk-x11-2.0', 'elfio' ]
include_dirs += [ '../libraries/' + system_str + '/include/gtk-2.0' ]
include_dirs += [ '../libraries/' + system_str + '/include/glib-2.0']
include_dirs += [ '../libraries/' + system_str + '/include/pango-1.0' ]
include_dirs += [ '../libraries/' + system_str + '/include/atk-1.0' ]
include_dirs += [ '../libraries/' + system_str + '/include/ELFIO' ]
include_dirs += [ '../libraries/' + system_str + '/include/llfreetype2' ]
else:
# Mac-only flags
! flags += '-x c++ -arch ppc -pipe -Wno-trigraphs -fpascal-strings -faltivec -fasm-blocks -g -O2 -fmessage-length=0 -mtune=G4 -Wno-deprecated-declarations -Wno-invalid-offsetof -mmacosx-version-min=10.3 -DLL_DARWIN=1 -Wmost -Wno-sign-compare -Wno-switch -fpch-preprocess -F./newview/build/Deployment -fconstant-cfstrings -ffor-scope -Wno-reorder -isysroot /Developer/SDKs/MacOSX10.3.9.sdk '
### Build type-specific flags ###
debug_opts = flags + '-fno-inline -O0 -D_DEBUG -DLL_DEBUG=1 '
release_opts = flags + '-O2 -DNDEBUG -DLL_RELEASE=1 '
--- 190,212 ----
if platform == 'linux':
# Linux-only flags
flags += '-DLL_LINUX=1 '
if build_target == 'client':
! flags += '-DAPPID=secondlife -DLL_SDL=1 -DLL_FMOD=0 -DLL_X11=1 '
flags += '-DLL_GTK=1 '
! # client_external_libs += [ 'gtk-x11-2.0', 'elfio' ]
! client_external_libs += [ 'gtk-x11-2.0', 'ELFIO' ]
include_dirs += [ '../libraries/' + system_str + '/include/gtk-2.0' ]
include_dirs += [ '../libraries/' + system_str + '/include/glib-2.0']
include_dirs += [ '../libraries/' + system_str + '/include/pango-1.0' ]
include_dirs += [ '../libraries/' + system_str + '/include/atk-1.0' ]
include_dirs += [ '../libraries/' + system_str + '/include/ELFIO' ]
include_dirs += [ '../libraries/' + system_str + '/include/llfreetype2' ]
else:
# Mac-only flags
! flags += ' '
### Build type-specific flags ###
debug_opts = flags + '-fno-inline -O0 -D_DEBUG -DLL_DEBUG=1 '
release_opts = flags + '-O2 -DNDEBUG -DLL_RELEASE=1 '
***************
*** 202,212 ****
################
# ENVIRONMENT #
################
! gcc_bin = 'g++-3.4'
# If you strip more aggressively than -S then the quality of crash-
# logger backtraces deteriorates.
strip_cmd = 'strip -S -o $TARGET $SOURCE'
# hidesyms_cmd is something which copies an executable while 'hiding'
--- 215,226 ----
################
# ENVIRONMENT #
################
! # gcc_bin = 'g++-3.4'
! gcc_bin = 'g++'
# If you strip more aggressively than -S then the quality of crash-
# logger backtraces deteriorates.
strip_cmd = 'strip -S -o $TARGET $SOURCE'
# hidesyms_cmd is something which copies an executable while 'hiding'
***************
*** 219,229 ****
hidesyms_cmd = 'objcopy --keep-global-symbols ' + exposed_symbols_file + ' $SOURCE $TARGET'
else:
hidesyms_cmd = 'cp -f $SOURCE $TARGET'
if build_target != 'client':
! gcc_bin = 'g++-3.3'
if arch == 'x86_64':
gcc_bin = '/opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-gcc'
strip_cmd = '/opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/bin/strip -S -o $TARGET $SOURCE'
--- 233,244 ----
hidesyms_cmd = 'objcopy --keep-global-symbols ' + exposed_symbols_file + ' $SOURCE $TARGET'
else:
hidesyms_cmd = 'cp -f $SOURCE $TARGET'
if build_target != 'client':
! #gcc_bin = 'g++-3.3'
! gcc_bin = 'g++'
if arch == 'x86_64':
gcc_bin = '/opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-gcc'
strip_cmd = '/opt/crosstool/gcc-4.0.2-glibc-2.3.6/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/bin/strip -S -o $TARGET $SOURCE'
***************
*** 232,242 ****
if enable_distcc == 'yes':
compiler = 'distcc ' + gcc_bin
base_env = Environment(CXX = compiler,
CPPPATH = include_dirs,
! LIBPATH = [lib_dir] + [system_lib_dir],
LINKFLAGS = system_link_flags + '--no-keep-memory --reduce-memory-overheads ' )
### Environments for various build types ###
env = base_env.Copy(CPPFLAGS = releasefordownload_opts)
--- 247,257 ----
if enable_distcc == 'yes':
compiler = 'distcc ' + gcc_bin
base_env = Environment(CXX = compiler,
CPPPATH = include_dirs,
! LIBPATH = [lib_dir] + [system_lib_dir] + ['/usr/local/lib'] +['/tmp/linden/xmlrpc-epi-0.51/src/.libs'] + ['/usr/X11R6/lib'],
LINKFLAGS = system_link_flags + '--no-keep-memory --reduce-memory-overheads ' )
### Environments for various build types ###
env = base_env.Copy(CPPFLAGS = releasefordownload_opts)
***************
*** 372,382 ****
if platform == 'linux':
#############################
# BUILD LINUX_CRASH_LOGGER #
#############################
output_crashlogger_bin = 'linux_crash_logger/linux-crash-logger-' + arch + '-bin'
! external_libs = net_external_libs + [ 'db-4.2', 'gtk-x11-2.0' ]
external_libs.remove('cares')
internal_libs = [ 'llvfs', 'llmath', 'llcommon' ]
create_executable(output_crashlogger_bin + '-globalsyms', 'linux_crash_logger', internal_libs + external_libs)
env.Command(output_crashlogger_bin, output_crashlogger_bin + '-globalsyms', hidesyms_cmd)
--- 387,398 ----
if platform == 'linux':
#############################
# BUILD LINUX_CRASH_LOGGER #
#############################
output_crashlogger_bin = 'linux_crash_logger/linux-crash-logger-' + arch + '-bin'
! #external_libs = net_external_libs + [ 'db-4.2', 'gtk-x11-2.0' ]
! external_libs = net_external_libs + [ 'db41', 'gtk-x11-2.0' ]
external_libs.remove('cares')
internal_libs = [ 'llvfs', 'llmath', 'llcommon' ]
create_executable(output_crashlogger_bin + '-globalsyms', 'linux_crash_logger', internal_libs + external_libs)
env.Command(output_crashlogger_bin, output_crashlogger_bin + '-globalsyms', hidesyms_cmd)
***************
*** 391,401 ****
##################
# BUILD NEWVIEW #
##################
output_bin = 'newview/secondlife-' + arch + '-bin'
! external_libs = client_external_libs + common_external_libs + [ 'freetype', 'jpeg', 'SDL', 'GL', 'GLU', 'ogg', 'vorbisenc', 'vorbisfile', 'vorbis', 'fmod-3.75', 'db-4.2', 'openjpeg' ]
external_libs.remove('cares')
internal_libs = [ 'lscript', 'llwindow', 'llrender', 'llprimitive',
'llmedia', 'llinventory',
'llimage', 'llimagej2coj',
--- 407,418 ----
##################
# BUILD NEWVIEW #
##################
output_bin = 'newview/secondlife-' + arch + '-bin'
! #external_libs = client_external_libs + common_external_libs + [ 'freetype', 'jpeg', 'SDL', 'GL', 'GLU', 'ogg', 'vorbisenc', 'vorbisfile', 'vorbis', 'fmod-3.75', 'db-4.2', 'openjpeg' ]
! external_libs = client_external_libs + common_external_libs + [ 'freetype', 'jpeg', 'SDL', 'GL', 'GLU', 'ogg', 'vorbisenc', 'vorbisfile', 'vorbis', 'db41', 'openjpeg' ]
external_libs.remove('cares')
internal_libs = [ 'lscript', 'llwindow', 'llrender', 'llprimitive',
'llmedia', 'llinventory',
'llimage', 'llimagej2coj',
*** ./linden/indra/llcommon/llpagemem.h Sat Feb 10 00:49:20 2007
--- /tmp/linden/indra/llcommon/llpagemem.h Tue Feb 13 10:51:48 2007
***************
*** 25,35 ****
*/
#ifndef LL_LLPAGEMEM_H
#define LL_LLPAGEMEM_H
#if !LL_DARWIN
! #include "malloc.h"
#endif
#include "llrand.h"
--- 25,36 ----
*/
#ifndef LL_LLPAGEMEM_H
#define LL_LLPAGEMEM_H
#if !LL_DARWIN
! /* #include "malloc.h" */
! #include <stdlib.h>
#endif
#include "llrand.h"
*** ./linden/indra/llcommon/llpreprocessor.h Sat Feb 10 00:49:20 2007
--- /tmp/linden/indra/llcommon/llpreprocessor.h Tue Feb 13 08:40:00 2007
***************
*** 30,40 ****
#define LLPREPROCESSOR_H
// Figure out endianness of platform
#ifdef LL_LINUX
#define __ENABLE_WSTRING
! #include <endian.h>
#endif // LL_LINUX
#if (defined(LL_WINDOWS) || (defined(LL_LINUX) && (__BYTE_ORDER == __LITTLE_ENDIAN)) || (defined(LL_DARWIN) && defined(__LITTLE_ENDIAN__)))
#define LL_LITTLE_ENDIAN 1
#else
--- 30,40 ----
#define LLPREPROCESSOR_H
// Figure out endianness of platform
#ifdef LL_LINUX
#define __ENABLE_WSTRING
! /* #include <endian.h> */
#endif // LL_LINUX
#if (defined(LL_WINDOWS) || (defined(LL_LINUX) && (__BYTE_ORDER == __LITTLE_ENDIAN)) || (defined(LL_DARWIN) && defined(__LITTLE_ENDIAN__)))
#define LL_LITTLE_ENDIAN 1
#else
*** ./linden/indra/llcommon/llsdserialize_xml.cpp Sat Feb 10 00:49:20 2007
--- /tmp/linden/indra/llcommon/llsdserialize_xml.cpp Tue Feb 13 08:41:26 2007
***************
*** 33,43 ****
#include "apr-1/apr_base64.h"
extern "C"
{
! #include "expat/expat.h"
}
/**
* LLSDXMLFormatter
*/
--- 33,43 ----
#include "apr-1/apr_base64.h"
extern "C"
{
! #include "expat.h"
}
/**
* LLSDXMLFormatter
*/
*** ./linden/indra/llcommon/llsys.cpp Sat Feb 10 00:49:20 2007
--- /tmp/linden/indra/llcommon/llsys.cpp Tue Feb 13 08:52:44 2007
***************
*** 28,47 ****
#include "linden_common.h"
#include "llsys.h"
#include <iostream>
! #include <zlib/zlib.h>
#include "processor.h"
#if LL_WINDOWS
# define WIN32_LEAN_AND_MEAN
# include <winsock2.h>
# include <windows.h>
#elif LL_DARWIN
! # include <sys/sysctl.h>
! # include <sys/utsname.h>
#elif LL_LINUX
# include <sys/utsname.h>
const char MEMINFO_FILE[] = "/proc/meminfo";
const char CPUINFO_FILE[] = "/proc/cpuinfo";
#endif
--- 28,47 ----
#include "linden_common.h"
#include "llsys.h"
#include <iostream>
! #include <zlib.h>
#include "processor.h"
#if LL_WINDOWS
# define WIN32_LEAN_AND_MEAN
# include <winsock2.h>
# include <windows.h>
#elif LL_DARWIN
! include <sys/sysctl.h>
! include <sys/utsname.h>
#elif LL_LINUX
# include <sys/utsname.h>
const char MEMINFO_FILE[] = "/proc/meminfo";
const char CPUINFO_FILE[] = "/proc/cpuinfo";
#endif
***************
*** 393,403 ****
{
}
#if LL_LINUX
#include <unistd.h>
! #include <sys/sysinfo.h>
#endif
U32 LLMemoryInfo::getPhysicalMemory() const
{
#if LL_WINDOWS
--- 393,404 ----
{
}
#if LL_LINUX
#include <unistd.h>
! /* #include <sys/sysinfo.h> */
! #include <sys/sysctl.h>
#endif
U32 LLMemoryInfo::getPhysicalMemory() const
{
#if LL_WINDOWS
***************
*** 405,426 ****
state.dwLength = sizeof(state);
GlobalMemoryStatus(&state);
return (U32)state.dwTotalPhys;
! #elif LL_DARWIN
// This might work on Linux as well. Someone check...
unsigned int phys = 0;
int mib[2] = { CTL_HW, HW_PHYSMEM };
size_t len = sizeof(phys);
sysctl(mib, 2, &phys, &len, NULL, 0);
return phys;
#elif LL_LINUX
! return getpagesize() * get_phys_pages();
#else
return 0;
#endif
--- 406,435 ----
state.dwLength = sizeof(state);
GlobalMemoryStatus(&state);
return (U32)state.dwTotalPhys;
! #elif LL_DARWIN
// This might work on Linux as well. Someone check...
unsigned int phys = 0;
int mib[2] = { CTL_HW, HW_PHYSMEM };
size_t len = sizeof(phys);
sysctl(mib, 2, &phys, &len, NULL, 0);
return phys;
#elif LL_LINUX
+ // This might work on Linux as well. Someone check...
+ unsigned int phys = 0;
+ int mib[2] = { CTL_HW, HW_PHYSMEM };
+
+ size_t len = sizeof(phys);
+ sysctl(mib, 2, &phys, &len, NULL, 0);
+
+ return phys;
! /* return getpagesize() * get_phys_pages(); */
#else
return 0;
#endif
*** ./linden/indra/llimage/llimagejpeg.h Sat Feb 10 00:49:20 2007
--- /tmp/linden/indra/llimage/llimagejpeg.h Tue Feb 13 09:02:04 2007
***************
*** 31,43 ****
#include <setjmp.h>
#include "llimage.h"
extern "C" {
! #include "jpeglib/jinclude.h"
! #include "jpeglib/jpeglib.h"
! #include "jpeglib/jerror.h"
}
class LLImageJPEG : public LLImageFormatted
{
protected:
--- 31,43 ----
#include <setjmp.h>
#include "llimage.h"
extern "C" {
! #include "jinclude.h"
! #include "jpeglib.h"
! #include "jerror.h"
}
class LLImageJPEG : public LLImageFormatted
{
protected:
*** ./linden/indra/llmath/lluuid.cpp Sat Feb 10 00:49:21 2007
--- /tmp/linden/indra/llmath/lluuid.cpp Tue Feb 13 08:53:49 2007
***************
*** 606,616 ****
#include <net/if.h>
#define HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#if !LL_DARWIN
! #include <linux/sockios.h>
#endif
#endif
// static
S32 LLUUID::getNodeID(unsigned char *node_id)
--- 606,616 ----
#include <net/if.h>
#define HAVE_NETINET_IN_H
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#if !LL_DARWIN
! /* #include <linux/sockios.h> */
#endif
#endif
// static
S32 LLUUID::getNodeID(unsigned char *node_id)
*** ./linden/indra/llmessage/message.h Sat Feb 10 00:49:22 2007
--- /tmp/linden/indra/llmessage/message.h Tue Feb 13 08:55:29 2007
***************
*** 32,42 ****
#include <stdio.h>
#include <map>
#include <set>
#if LL_LINUX
! #include <endian.h>
#include <netinet/in.h>
#endif
#if LL_WINDOWS
#include "winsock2.h" // htons etc.
--- 32,42 ----
#include <stdio.h>
#include <map>
#include <set>
#if LL_LINUX
! #include <sys/endian.h>
#include <netinet/in.h>
#endif
#if LL_WINDOWS
#include "winsock2.h" // htons etc.
*** ./linden/indra/llmessage/llhttpassetstorage.cpp Sat Feb 10 00:49:22 2007
--- /tmp/linden/indra/llmessage/llhttpassetstorage.cpp Tue Feb 13 08:58:34 2007
***************
*** 32,42 ****
#include "indra_constants.h"
#include "llvfile.h"
#include "llvfs.h"
! #include "zlib/zlib.h"
const F32 MAX_PROCESSING_TIME = 0.005f;
const S32 CURL_XFER_BUFFER_SIZE = 65536;
// Try for 30 minutes for now.
const F32 GET_URL_TO_FILE_TIMEOUT = 1800.0f;
--- 32,42 ----
#include "indra_constants.h"
#include "llvfile.h"
#include "llvfs.h"
! #include "zlib.h"
const F32 MAX_PROCESSING_TIME = 0.005f;
const S32 CURL_XFER_BUFFER_SIZE = 65536;
// Try for 30 minutes for now.
const F32 GET_URL_TO_FILE_TIMEOUT = 1800.0f;
*** ./linden/indra/llrender/llfont.cpp Sat Feb 10 00:49:23 2007
--- /tmp/linden/indra/llrender/llfont.cpp Tue Feb 13 09:25:00 2007
***************
*** 29,56 ****
#include "llfont.h"
// Freetype stuff
#if LL_LINUX // I had to do some work to avoid the system-installed FreeType headers... --ryan.
! #include "llfreetype2/freetype/ft2build.h"
#else
#include <ft2build.h>
#endif
// For some reason, this won't work if it's not wrapped in the ifdef
#ifdef FT_FREETYPE_H
! #include FT_FREETYPE_H
#endif
#include "llerror.h"
#include "llimage.h"
//#include "llimagej2c.h"
#include "llmath.h" // Linden math
#include "llstring.h"
//#include "imdebug.h"
! FT_Render_Mode gFontRenderMode = FT_RENDER_MODE_NORMAL;
LLFontManager *gFontManagerp = NULL;
FT_Library gFTLibrary = NULL;
--- 29,58 ----
#include "llfont.h"
// Freetype stuff
#if LL_LINUX // I had to do some work to avoid the system-installed FreeType headers... --ryan.
! /* #include "llfreetype2/freetype/ft2build.h" */
! #include <ft2build.h>
#else
#include <ft2build.h>
#endif
// For some reason, this won't work if it's not wrapped in the ifdef
#ifdef FT_FREETYPE_H
! /* #include FT_FREETYPE_H */
! #include <freetype/freetype.h>
#endif
#include "llerror.h"
#include "llimage.h"
//#include "llimagej2c.h"
#include "llmath.h" // Linden math
#include "llstring.h"
//#include "imdebug.h"
! FT_Render_Mode_ gFontRenderMode = FT_RENDER_MODE_NORMAL;
LLFontManager *gFontManagerp = NULL;
FT_Library gFTLibrary = NULL;
*** ./linden/indra/llxml/llxmlnode.h Sat Feb 10 00:49:24 2007
--- /tmp/linden/indra/llxml/llxmlnode.h Tue Feb 13 09:02:45 2007
***************
*** 27,37 ****
#ifndef LL_LLXMLNODE_H
#define LL_LLXMLNODE_H
#define XML_STATIC
! #include "expat/expat.h"
#include <map>
#include "indra_constants.h"
#include "llmemory.h"
#include "llthread.h"
--- 27,37 ----
#ifndef LL_LLXMLNODE_H
#define LL_LLXMLNODE_H
#define XML_STATIC
! #include "expat.h"
#include <map>
#include "indra_constants.h"
#include "llmemory.h"
#include "llthread.h"
*** ./linden/indra/llxml/llxmlparser.h Sat Feb 10 00:49:24 2007
--- /tmp/linden/indra/llxml/llxmlparser.h Tue Feb 13 09:04:17 2007
***************
*** 27,37 ****
#ifndef LL_LLXMLPARSER_H
#define LL_LLXMLPARSER_H
#define XML_STATIC
! #include "expat/expat.h"
class LLXmlParser
{
public:
LLXmlParser();
--- 27,37 ----
#ifndef LL_LLXMLPARSER_H
#define LL_LLXMLPARSER_H
#define XML_STATIC
! #include "expat.h"
class LLXmlParser
{
public:
LLXmlParser();
*** ./linden/indra/linux_crash_logger/linux_crash_logger.cpp Sat Feb 10 00:49:25 2007
--- /tmp/linden/indra/linux_crash_logger/linux_crash_logger.cpp Tue Feb 13 10:02:37 2007
***************
*** 454,464 ****
// llinfos << "File " << mFilename << " is present..." << llendl;
if(!gCrashInPreviousExec && isCrashLog)
{
// Make sure the file isn't too old.
! double age = difftime(gLaunchTime, stat_data.st_mtim.tv_sec);
// llinfos << "age is " << age << llendl;
if(age > 60.0)
{
--- 454,465 ----
// llinfos << "File " << mFilename << " is present..." << llendl;
if(!gCrashInPreviousExec && isCrashLog)
{
// Make sure the file isn't too old.
! // double age = difftime(gLaunchTime, stat_data.st_mtime.tv_sec);
! double age = difftime(gLaunchTime, stat_data.st_mtime);
// llinfos << "age is " << age << llendl;
if(age > 60.0)
{
*** ./linden/indra/linux_crash_logger/linux_crash_logger.cpp Sat Feb 10 00:49:25 2007
--- /tmp/linden/indra/linux_crash_logger/linux_crash_logger.cpp Tue Feb 13 10:02:37 2007
***************
*** 454,464 ****
// llinfos << "File " << mFilename << " is present..." << llendl;
if(!gCrashInPreviousExec && isCrashLog)
{
// Make sure the file isn't too old.
! double age = difftime(gLaunchTime, stat_data.st_mtim.tv_sec);
// llinfos << "age is " << age << llendl;
if(age > 60.0)
{
--- 454,465 ----
// llinfos << "File " << mFilename << " is present..." << llendl;
if(!gCrashInPreviousExec && isCrashLog)
{
// Make sure the file isn't too old.
! // double age = difftime(gLaunchTime, stat_data.st_mtime.tv_sec);
! double age = difftime(gLaunchTime, stat_data.st_mtime);
// llinfos << "age is " << age << llendl;
if(age > 60.0)
{
*** ./linden/indra/newview/lltexturefetch.h Sat Feb 10 00:49:29 2007
--- /tmp/linden/indra/newview/lltexturefetch.h Tue Feb 13 13:10:15 2007
***************
*** 97,102 ****
queue_t mNetworkQueue;
LLFrameTimer mNetworkTimer;
};
! #endif LL_LLTEXTUREFETCH_H
--- 97,102 ----
queue_t mNetworkQueue;
LLFrameTimer mNetworkTimer;
};
! #endif /* LL_LLTEXTUREFETCH_H */
*** ./linden/indra/newview/viewer.cpp Sat Feb 10 00:49:30 2007
--- /tmp/linden/indra/newview/viewer.cpp Tue Feb 13 13:22:51 2007
***************
*** 68,78 ****
# include <netinet/in.h>
# include <arpa/inet.h> // inet_ntoa()
#if LL_LINUX
# include <dlfcn.h> // RTLD_LAZY
! # include <execinfo.h> // backtrace - glibc only
#define LL_ELFBIN 1
# if LL_ELFBIN
# include <cxxabi.h> // for symbol demangling
# include "ELFIO.h" // for better backtraces
# endif // LL_ELFBIN
--- 68,78 ----
# include <netinet/in.h>
# include <arpa/inet.h> // inet_ntoa()
#if LL_LINUX
# include <dlfcn.h> // RTLD_LAZY
! // # include <execinfo.h> // backtrace - glibc only
#define LL_ELFBIN 1
# if LL_ELFBIN
# include <cxxabi.h> // for symbol demangling
# include "ELFIO.h" // for better backtraces
# endif // LL_ELFBIN
***************
*** 2252,2263 ****
size_t size;
char **strings;
size_t i;
BOOL success = FALSE;
! size = backtrace(array, MAX_STACK_TRACE_DEPTH);
! strings = backtrace_symbols(array, size);
std::string strace_filename = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"stack_trace.log");
llinfos << "Opening stack trace file " << strace_filename << llendl;
FILE* StraceFile = LLFile::fopen(strace_filename.c_str(), "w"); /* Flawfinder: ignore */
if (!StraceFile)
--- 2252,2263 ----
size_t size;
char **strings;
size_t i;
BOOL success = FALSE;
! size = 0; // backtrace(array, MAX_STACK_TRACE_DEPTH);
! strings = NULL; //backtrace_symbols(array, size);
std::string strace_filename = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"stack_trace.log");
llinfos << "Opening stack trace file " << strace_filename << llendl;
FILE* StraceFile = LLFile::fopen(strace_filename.c_str(), "w"); /* Flawfinder: ignore */
if (!StraceFile)
***************
*** 2303,2314 ****
llinfos << "Opening stack trace file " << strace_filename << " failed. Using stderr." << llendl;
StraceFile = stderr;
}
// get backtrace address list and basic symbol info
! btsize = backtrace(array, MAX_STACK_TRACE_DEPTH);
! strings = backtrace_symbols(array, btsize);
// create ELF reader for our app binary
IELFI* pReader;
const IELFISection* pSec = NULL;
IELFISymbolTable* pSymTbl = 0;
--- 2303,2314 ----
llinfos << "Opening stack trace file " << strace_filename << " failed. Using stderr." << llendl;
StraceFile = stderr;
}
// get backtrace address list and basic symbol info
! btsize = 0; // backtrace(array, MAX_STACK_TRACE_DEPTH);
! strings = NULL; // backtrace_symbols(array, btsize);
// create ELF reader for our app binary
IELFI* pReader;
const IELFISection* pSec = NULL;
IELFISymbolTable* pSymTbl = 0;
*** ./linden/indra/newview/llviewerobjectlist.cpp Sat Feb 10 00:49:33 2007
--- /tmp/linden/indra/newview/llviewerobjectlist.cpp Tue Feb 13 12:58:13 2007
***************
*** 58,68 ****
#include "lltoolpie.h"
#include "llkeyboard.h"
#include "u64.h"
#include "llviewerimagelist.h"
#include "lldatapacker.h"
! #include <zlib/zlib.h>
#include "object_flags.h"
extern BOOL gVelocityInterpolate;
extern BOOL gPingInterpolate;
extern F32 gMinObjectDistance;
--- 58,69 ----
#include "lltoolpie.h"
#include "llkeyboard.h"
#include "u64.h"
#include "llviewerimagelist.h"
#include "lldatapacker.h"
! /* #include <zlib/zlib.h> */
! #include <zlib.h>
#include "object_flags.h"
extern BOOL gVelocityInterpolate;
extern BOOL gPingInterpolate;
extern F32 gMinObjectDistance;