DRTVWR-510 remove all LL_SOLARIS conditionals
parent
18ddd70d96
commit
7cd076c796
|
|
@ -29,7 +29,7 @@
|
|||
#ifndef LL_LLAPR_H
|
||||
#define LL_LLAPR_H
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
#include <sys/param.h> // Need PATH_MAX in APR headers...
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
|
||||
#if LL_WINDOWS
|
||||
#include "lltimer.h"
|
||||
#elif LL_LINUX || LL_SOLARIS
|
||||
#elif LL_LINUX
|
||||
#include <sys/time.h>
|
||||
#include <sched.h>
|
||||
#include "lltimer.h"
|
||||
|
|
@ -64,7 +64,7 @@ bool BlockTimer::sLog = false;
|
|||
std::string BlockTimer::sLogName = "";
|
||||
bool BlockTimer::sMetricLog = false;
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
U64 BlockTimer::sClockResolution = 1000000000; // Nanosecond resolution
|
||||
#else
|
||||
U64 BlockTimer::sClockResolution = 1000000; // Microsecond resolution
|
||||
|
|
@ -151,12 +151,12 @@ void BlockTimer::setLogLock(LLMutex* lock)
|
|||
|
||||
|
||||
//static
|
||||
#if (LL_DARWIN || LL_LINUX || LL_SOLARIS) && !(defined(__i386__) || defined(__amd64__))
|
||||
#if (LL_DARWIN || LL_LINUX) && !(defined(__i386__) || defined(__amd64__))
|
||||
U64 BlockTimer::countsPerSecond()
|
||||
{
|
||||
return sClockResolution;
|
||||
}
|
||||
#else // windows or x86-mac or x86-linux or x86-solaris
|
||||
#else // windows or x86-mac or x86-linux
|
||||
U64 BlockTimer::countsPerSecond()
|
||||
{
|
||||
#if LL_FASTTIMER_USE_RDTSC || !LL_WINDOWS
|
||||
|
|
|
|||
|
|
@ -125,9 +125,9 @@ public:
|
|||
#endif
|
||||
|
||||
|
||||
#if (LL_LINUX || LL_SOLARIS) && !(defined(__i386__) || defined(__amd64__))
|
||||
#if (LL_LINUX) && !(defined(__i386__) || defined(__amd64__))
|
||||
//
|
||||
// Linux and Solaris implementation of CPU clock - non-x86.
|
||||
// Linux implementation of CPU clock - non-x86.
|
||||
// This is accurate but SLOW! Only use out of desperation.
|
||||
//
|
||||
// Try to use the MONOTONIC clock if available, this is a constant time counter
|
||||
|
|
@ -153,12 +153,12 @@ public:
|
|||
return (U32)(getCPUClockCount64() >> 8);
|
||||
}
|
||||
|
||||
#endif // (LL_LINUX || LL_SOLARIS) && !(defined(__i386__) || defined(__amd64__))
|
||||
#endif // (LL_LINUX) && !(defined(__i386__) || defined(__amd64__))
|
||||
|
||||
|
||||
#if (LL_LINUX || LL_SOLARIS || LL_DARWIN) && (defined(__i386__) || defined(__amd64__))
|
||||
#if (LL_LINUX || LL_DARWIN) && (defined(__i386__) || defined(__amd64__))
|
||||
//
|
||||
// Mac+Linux+Solaris FAST x86 implementation of CPU clock
|
||||
// Mac+Linux FAST x86 implementation of CPU clock
|
||||
static U32 getCPUClockCount32()
|
||||
{
|
||||
U32 low(0),high(0);
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
# include <sys/types.h>
|
||||
# include <mach/task.h>
|
||||
# include <mach/mach_init.h>
|
||||
#elif LL_LINUX || LL_SOLARIS
|
||||
#elif LL_LINUX
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -309,35 +309,6 @@ U64 LLMemory::getCurrentRSS()
|
|||
return rss;
|
||||
}
|
||||
|
||||
#elif LL_SOLARIS
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#define _STRUCTURED_PROC 1
|
||||
#include <sys/procfs.h>
|
||||
|
||||
U64 LLMemory::getCurrentRSS()
|
||||
{
|
||||
char path [LL_MAX_PATH]; /* Flawfinder: ignore */
|
||||
|
||||
sprintf(path, "/proc/%d/psinfo", (int)getpid());
|
||||
int proc_fd = -1;
|
||||
if((proc_fd = open(path, O_RDONLY)) == -1){
|
||||
LL_WARNS() << "LLmemory::getCurrentRSS() unable to open " << path << ". Returning 0 RSS!" << LL_ENDL;
|
||||
return 0;
|
||||
}
|
||||
psinfo_t proc_psinfo;
|
||||
if(read(proc_fd, &proc_psinfo, sizeof(psinfo_t)) != sizeof(psinfo_t)){
|
||||
LL_WARNS() << "LLmemory::getCurrentRSS() Unable to read from " << path << ". Returning 0 RSS!" << LL_ENDL;
|
||||
close(proc_fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
close(proc_fd);
|
||||
|
||||
return((U64)proc_psinfo.pr_rssize * 1024);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
U64 LLMemory::getCurrentRSS()
|
||||
|
|
|
|||
|
|
@ -34,16 +34,7 @@
|
|||
#include <endian.h>
|
||||
#endif // LL_LINUX
|
||||
|
||||
#if LL_SOLARIS
|
||||
# ifdef __sparc // Since we're talking Solaris 10 and up, only 64 bit is supported.
|
||||
# define LL_BIG_ENDIAN 1
|
||||
# define LL_SOLARIS_ALIGNED_CPU 1 // used to designate issues where SPARC alignment is addressed
|
||||
# define LL_SOLARIS_NON_MESA_GL 1 // The SPARC GL does not provide a MESA-based GL API
|
||||
# endif
|
||||
# include <sys/isa_defs.h> // ensure we know which end is up
|
||||
#endif // LL_SOLARIS
|
||||
|
||||
#if (defined(LL_WINDOWS) || (defined(LL_LINUX) && (__BYTE_ORDER == __LITTLE_ENDIAN)) || (defined(LL_DARWIN) && defined(__LITTLE_ENDIAN__)) || (defined(LL_SOLARIS) && defined(__i386)))
|
||||
#if (defined(LL_WINDOWS) || (defined(LL_LINUX) && (__BYTE_ORDER == __LITTLE_ENDIAN)) || (defined(LL_DARWIN) && defined(__LITTLE_ENDIAN__)))
|
||||
#define LL_LITTLE_ENDIAN 1
|
||||
#else
|
||||
#define LL_BIG_ENDIAN 1
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
#if LL_WINDOWS
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# include <winsock2.h> // for htonl
|
||||
#elif LL_LINUX || LL_SOLARIS
|
||||
#elif LL_LINUX
|
||||
# include <netinet/in.h>
|
||||
#elif LL_DARWIN
|
||||
# include <arpa/inet.h>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
#include <map>
|
||||
#include "llformat.h"
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
#include <wctype.h>
|
||||
#include <wchar.h>
|
||||
#endif
|
||||
|
|
@ -45,16 +45,10 @@
|
|||
#include <string.h>
|
||||
#include <boost/scoped_ptr.hpp>
|
||||
|
||||
#if LL_SOLARIS
|
||||
// stricmp and strnicmp do not exist on Solaris:
|
||||
#define stricmp strcasecmp
|
||||
#define strnicmp strncasecmp
|
||||
#endif
|
||||
|
||||
const char LL_UNKNOWN_CHAR = '?';
|
||||
class LLSD;
|
||||
|
||||
#if LL_DARWIN || LL_LINUX || LL_SOLARIS
|
||||
#if LL_DARWIN || LL_LINUX
|
||||
// Template specialization of char_traits for U16s. Only necessary on Mac and Linux (exists on Windows already)
|
||||
#include <cstring>
|
||||
|
||||
|
|
|
|||
|
|
@ -87,17 +87,6 @@ using namespace llsd;
|
|||
# include <stdexcept>
|
||||
const char MEMINFO_FILE[] = "/proc/meminfo";
|
||||
# include <gnu/libc-version.h>
|
||||
#elif LL_SOLARIS
|
||||
# include <stdio.h>
|
||||
# include <unistd.h>
|
||||
# include <sys/utsname.h>
|
||||
# define _STRUCTURED_PROC 1
|
||||
# include <sys/procfs.h>
|
||||
# include <sys/types.h>
|
||||
# include <sys/stat.h>
|
||||
# include <fcntl.h>
|
||||
# include <errno.h>
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
LLCPUInfo gSysCPU;
|
||||
|
|
@ -543,8 +532,6 @@ const std::string& LLOSInfo::getOSVersionString() const
|
|||
U32 LLOSInfo::getProcessVirtualSizeKB()
|
||||
{
|
||||
U32 virtual_size = 0;
|
||||
#if LL_WINDOWS
|
||||
#endif
|
||||
#if LL_LINUX
|
||||
# define STATUS_SIZE 2048
|
||||
LLFILE* status_filep = LLFile::fopen("/proc/self/status", "rb");
|
||||
|
|
@ -564,24 +551,6 @@ U32 LLOSInfo::getProcessVirtualSizeKB()
|
|||
}
|
||||
fclose(status_filep);
|
||||
}
|
||||
#elif LL_SOLARIS
|
||||
char proc_ps[LL_MAX_PATH];
|
||||
sprintf(proc_ps, "/proc/%d/psinfo", (int)getpid());
|
||||
int proc_fd = -1;
|
||||
if((proc_fd = open(proc_ps, O_RDONLY)) == -1){
|
||||
LL_WARNS() << "unable to open " << proc_ps << LL_ENDL;
|
||||
return 0;
|
||||
}
|
||||
psinfo_t proc_psinfo;
|
||||
if(read(proc_fd, &proc_psinfo, sizeof(psinfo_t)) != sizeof(psinfo_t)){
|
||||
LL_WARNS() << "Unable to read " << proc_ps << LL_ENDL;
|
||||
close(proc_fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
close(proc_fd);
|
||||
|
||||
virtual_size = proc_psinfo.pr_size;
|
||||
#endif
|
||||
return virtual_size;
|
||||
}
|
||||
|
|
@ -590,8 +559,6 @@ U32 LLOSInfo::getProcessVirtualSizeKB()
|
|||
U32 LLOSInfo::getProcessResidentSizeKB()
|
||||
{
|
||||
U32 resident_size = 0;
|
||||
#if LL_WINDOWS
|
||||
#endif
|
||||
#if LL_LINUX
|
||||
LLFILE* status_filep = LLFile::fopen("/proc/self/status", "rb");
|
||||
if (status_filep != NULL)
|
||||
|
|
@ -610,24 +577,6 @@ U32 LLOSInfo::getProcessResidentSizeKB()
|
|||
}
|
||||
fclose(status_filep);
|
||||
}
|
||||
#elif LL_SOLARIS
|
||||
char proc_ps[LL_MAX_PATH];
|
||||
sprintf(proc_ps, "/proc/%d/psinfo", (int)getpid());
|
||||
int proc_fd = -1;
|
||||
if((proc_fd = open(proc_ps, O_RDONLY)) == -1){
|
||||
LL_WARNS() << "unable to open " << proc_ps << LL_ENDL;
|
||||
return 0;
|
||||
}
|
||||
psinfo_t proc_psinfo;
|
||||
if(read(proc_fd, &proc_psinfo, sizeof(psinfo_t)) != sizeof(psinfo_t)){
|
||||
LL_WARNS() << "Unable to read " << proc_ps << LL_ENDL;
|
||||
close(proc_fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
close(proc_fd);
|
||||
|
||||
resident_size = proc_psinfo.pr_rssize;
|
||||
#endif
|
||||
return resident_size;
|
||||
}
|
||||
|
|
@ -772,11 +721,6 @@ U32Kilobytes LLMemoryInfo::getPhysicalMemoryKB() const
|
|||
phys = (U64)(getpagesize()) * (U64)(get_phys_pages());
|
||||
return U64Bytes(phys);
|
||||
|
||||
#elif LL_SOLARIS
|
||||
U64 phys = 0;
|
||||
phys = (U64)(getpagesize()) * (U64)(sysconf(_SC_PHYS_PAGES));
|
||||
return U64Bytes(phys);
|
||||
|
||||
#else
|
||||
return 0;
|
||||
|
||||
|
|
@ -1074,13 +1018,6 @@ LLSD LLMemoryInfo::loadStatsMap()
|
|||
}
|
||||
}
|
||||
|
||||
#elif LL_SOLARIS
|
||||
U64 phys = 0;
|
||||
|
||||
phys = (U64)(sysconf(_SC_PHYS_PAGES)) * (U64)(sysconf(_SC_PAGESIZE)/1024);
|
||||
|
||||
stats.add("Total Physical KB", phys);
|
||||
|
||||
#elif LL_LINUX
|
||||
std::ifstream meminfo(MEMINFO_FILE);
|
||||
if (meminfo.is_open())
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
#include "lltracethreadrecorder.h"
|
||||
#include "llexception.h"
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
#include <sched.h>
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
#if LL_WINDOWS
|
||||
# include "llwin32headerslean.h"
|
||||
#elif LL_LINUX || LL_SOLARIS || LL_DARWIN
|
||||
#elif LL_LINUX || LL_DARWIN
|
||||
# include <errno.h>
|
||||
# include <sys/time.h>
|
||||
#else
|
||||
|
|
@ -74,7 +74,7 @@ U32 micro_sleep(U64 us, U32 max_yields)
|
|||
ms_sleep((U32)(us / 1000));
|
||||
return 0;
|
||||
}
|
||||
#elif LL_LINUX || LL_SOLARIS || LL_DARWIN
|
||||
#elif LL_LINUX || LL_DARWIN
|
||||
static void _sleep_loop(struct timespec& thiswait)
|
||||
{
|
||||
struct timespec nextwait;
|
||||
|
|
@ -187,7 +187,7 @@ F64 calc_clock_frequency()
|
|||
#endif // LL_WINDOWS
|
||||
|
||||
|
||||
#if LL_LINUX || LL_DARWIN || LL_SOLARIS
|
||||
#if LL_LINUX || LL_DARWIN
|
||||
// Both Linux and Mac use gettimeofday for accurate time
|
||||
F64 calc_clock_frequency()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
#ifndef LL_TIMER_H
|
||||
#define LL_TIMER_H
|
||||
|
||||
#if LL_LINUX || LL_DARWIN || LL_SOLARIS
|
||||
#if LL_LINUX || LL_DARWIN
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
|
|
|
|||
|
|
@ -601,9 +601,7 @@ S32 LLUUID::getNodeID(unsigned char *node_id)
|
|||
#define HAVE_NETINET_IN_H
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
#if LL_SOLARIS
|
||||
#include <sys/sockio.h>
|
||||
#elif !LL_DARWIN
|
||||
#if !LL_DARWIN
|
||||
#include <linux/sockios.h>
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ typedef unsigned __int64 U64;
|
|||
#else
|
||||
typedef long long int S64;
|
||||
typedef long long unsigned int U64;
|
||||
#if LL_DARWIN || LL_LINUX || LL_SOLARIS
|
||||
#if LL_DARWIN || LL_LINUX
|
||||
#define S64L(a) (a##LL)
|
||||
#define U64L(a) (a##ULL)
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -47,9 +47,6 @@
|
|||
#elif (LL_LINUX && __GNUC__ <= 2)
|
||||
#define llisnan(val) isnan(val)
|
||||
#define llfinite(val) isfinite(val)
|
||||
#elif LL_SOLARIS
|
||||
#define llisnan(val) isnan(val)
|
||||
#define llfinite(val) (val <= std::numeric_limits<double>::max())
|
||||
#else
|
||||
#define llisnan(val) std::isnan(val)
|
||||
#define llfinite(val) std::isfinite(val)
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
#if LL_WINDOWS
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# include <winsock2.h> // for htonl
|
||||
#elif LL_LINUX || LL_SOLARIS
|
||||
#elif LL_LINUX
|
||||
# include <netinet/in.h>
|
||||
#elif LL_DARWIN
|
||||
# include <arpa/inet.h>
|
||||
|
|
|
|||
|
|
@ -35,10 +35,6 @@
|
|||
#include <netinet/in.h>
|
||||
#endif
|
||||
|
||||
#if LL_SOLARIS
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
|
||||
#if LL_WINDOWS
|
||||
#include "winsock2.h" // htons etc.
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ LLMatrix4 gGLObliqueProjectionInverse;
|
|||
|
||||
std::list<LLGLUpdate*> LLGLUpdate::sGLQ;
|
||||
|
||||
#if (LL_WINDOWS || LL_LINUX || LL_SOLARIS) && !LL_MESA_HEADLESS
|
||||
#if (LL_WINDOWS || LL_LINUX) && !LL_MESA_HEADLESS
|
||||
// ATI prototypes
|
||||
|
||||
#if LL_WINDOWS
|
||||
|
|
@ -328,7 +328,7 @@ PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB = NULL;
|
|||
#endif
|
||||
|
||||
// vertex shader prototypes
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB = NULL;
|
||||
PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB = NULL;
|
||||
PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB = NULL;
|
||||
|
|
@ -347,7 +347,7 @@ PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB = NULL;
|
|||
PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB = NULL;
|
||||
PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB = NULL;
|
||||
PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB = NULL;
|
||||
#endif // LL_LINUX || LL_SOLARIS
|
||||
#endif // LL_LINUX
|
||||
PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4nbvARB = NULL;
|
||||
PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4nivARB = NULL;
|
||||
PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4nsvARB = NULL;
|
||||
|
|
@ -355,7 +355,7 @@ PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4nubARB = NULL;
|
|||
PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4nubvARB = NULL;
|
||||
PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4nuivARB = NULL;
|
||||
PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4nusvARB = NULL;
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB = NULL;
|
||||
PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB = NULL;
|
||||
PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB = NULL;
|
||||
|
|
@ -393,7 +393,7 @@ PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB = NULL;
|
|||
PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB = NULL;
|
||||
PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB = NULL;
|
||||
PFNGLISPROGRAMARBPROC glIsProgramARB = NULL;
|
||||
#endif // LL_LINUX || LL_SOLARIS
|
||||
#endif // LL_LINUX
|
||||
PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB = NULL;
|
||||
PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB = NULL;
|
||||
PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB = NULL;
|
||||
|
|
@ -1093,7 +1093,7 @@ void LLGLManager::initExtensions()
|
|||
mHasFragmentShader = ExtensionExists("GL_ARB_fragment_shader", gGLHExts.mSysExts) && (LLRender::sGLCoreProfile || ExtensionExists("GL_ARB_shading_language_100", gGLHExts.mSysExts));
|
||||
#endif
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
LL_INFOS() << "initExtensions() checking shell variables to adjust features..." << LL_ENDL;
|
||||
// Our extension support for the Linux Client is very young with some
|
||||
// potential driver gotchas, so offer a semi-secret way to turn it off.
|
||||
|
|
@ -1163,7 +1163,7 @@ void LLGLManager::initExtensions()
|
|||
if (strchr(blacklist,'u')) mHasDepthClamp = FALSE;
|
||||
|
||||
}
|
||||
#endif // LL_LINUX || LL_SOLARIS
|
||||
#endif // LL_LINUX
|
||||
|
||||
if (!mHasMultitexture)
|
||||
{
|
||||
|
|
@ -1241,7 +1241,7 @@ void LLGLManager::initExtensions()
|
|||
glGetIntegerv(GL_MAX_ELEMENTS_INDICES, (GLint*) &mGLMaxIndexRange);
|
||||
glGetIntegerv(GL_MAX_TEXTURE_SIZE, (GLint*) &mGLMaxTextureSize);
|
||||
|
||||
#if (LL_WINDOWS || LL_LINUX || LL_SOLARIS) && !LL_MESA_HEADLESS
|
||||
#if (LL_WINDOWS || LL_LINUX) && !LL_MESA_HEADLESS
|
||||
LL_DEBUGS("RenderInit") << "GL Probe: Getting symbols" << LL_ENDL;
|
||||
if (mHasVertexBufferObject)
|
||||
{
|
||||
|
|
@ -1340,7 +1340,7 @@ void LLGLManager::initExtensions()
|
|||
glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC) GLH_EXT_GET_PROC_ADDRESS("glDebugMessageCallbackARB");
|
||||
glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC) GLH_EXT_GET_PROC_ADDRESS("glGetDebugMessageLogARB");
|
||||
}
|
||||
#if (!LL_LINUX && !LL_SOLARIS) || LL_LINUX_NV_GL_HEADERS
|
||||
#if (!LL_LINUX) || LL_LINUX_NV_GL_HEADERS
|
||||
// This is expected to be a static symbol on Linux GL implementations, except if we use the nvidia headers - bah
|
||||
glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)GLH_EXT_GET_PROC_ADDRESS("glDrawRangeElements");
|
||||
if (!glDrawRangeElements)
|
||||
|
|
|
|||
|
|
@ -27,242 +27,7 @@
|
|||
#ifndef LL_LLGLHEADERS_H
|
||||
#define LL_LLGLHEADERS_H
|
||||
|
||||
#if LL_SOLARIS
|
||||
# if defined(__sparc)
|
||||
# define I_NEED_OS2_H // avoiding BOOL conflicts
|
||||
# endif
|
||||
# include "GL/gl.h"
|
||||
# if defined(__sparc)
|
||||
# undef I_NEED_OS2_H
|
||||
# ifdef BOOL
|
||||
# undef BOOL // now get rid of Xmd.h crap
|
||||
# endif
|
||||
# endif
|
||||
# include "GL/glx.h"
|
||||
# define GL_GLEXT_PROTOTYPES 1
|
||||
# include "GL/glext.h"
|
||||
# include "GL/glu.h"
|
||||
# include "GL/glx.h"
|
||||
# define GLX_GLXEXT_PROTOTYPES 1
|
||||
# include "GL/glxext.h"
|
||||
//# define GLH_EXT_GET_PROC_ADDRESS(p) glXGetProcAddressARB((const GLubyte*)(p))
|
||||
# define GLH_EXT_GET_PROC_ADDRESS(p) glXGetProcAddress((const GLubyte*)(p))
|
||||
|
||||
// The __APPLE__ kludge is to make glh_extensions.h not symbol-clash horribly
|
||||
// This header is distributed with SL. You'll find it in linden/libraries/include/GL/
|
||||
# define __APPLE__
|
||||
# include "GL/glh_extensions.h"
|
||||
# undef __APPLE__
|
||||
|
||||
|
||||
// GL_ARB_vertex_buffer_object
|
||||
extern PFNGLBINDBUFFERARBPROC glBindBufferARB;
|
||||
extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
|
||||
extern PFNGLGENBUFFERSARBPROC glGenBuffersARB;
|
||||
extern PFNGLISBUFFERARBPROC glIsBufferARB;
|
||||
extern PFNGLBUFFERDATAARBPROC glBufferDataARB;
|
||||
extern PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB;
|
||||
extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
|
||||
extern PFNGLMAPBUFFERARBPROC glMapBufferARB;
|
||||
extern PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB;
|
||||
extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
|
||||
extern PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointervARB;
|
||||
|
||||
// GL_ARB_vertex_array_object
|
||||
extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
|
||||
extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
|
||||
extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
|
||||
extern PFNGLISVERTEXARRAYPROC glIsVertexArray;
|
||||
|
||||
// GL_ARB_sync
|
||||
extern PFNGLFENCESYNCPROC glFenceSync;
|
||||
extern PFNGLISSYNCPROC glIsSync;
|
||||
extern PFNGLDELETESYNCPROC glDeleteSync;
|
||||
extern PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
|
||||
extern PFNGLWAITSYNCPROC glWaitSync;
|
||||
extern PFNGLGETINTEGER64VPROC glGetInteger64v;
|
||||
extern PFNGLGETSYNCIVPROC glGetSynciv;
|
||||
|
||||
// GL_APPLE_flush_buffer_range
|
||||
extern PFNGLBUFFERPARAMETERIAPPLEPROC glBufferParameteriAPPLE;
|
||||
extern PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC glFlushMappedBufferRangeAPPLE;
|
||||
|
||||
// GL_ARB_map_buffer_range
|
||||
extern PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
|
||||
extern PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
|
||||
|
||||
// GL_ATI_vertex_array_object
|
||||
extern PFNGLNEWOBJECTBUFFERATIPROC glNewObjectBufferATI;
|
||||
extern PFNGLISOBJECTBUFFERATIPROC glIsObjectBufferATI;
|
||||
extern PFNGLUPDATEOBJECTBUFFERATIPROC glUpdateObjectBufferATI;
|
||||
extern PFNGLGETOBJECTBUFFERFVATIPROC glGetObjectBufferfvATI;
|
||||
extern PFNGLGETOBJECTBUFFERIVATIPROC glGetObjectBufferivATI;
|
||||
extern PFNGLFREEOBJECTBUFFERATIPROC glFreeObjectBufferATI;
|
||||
extern PFNGLARRAYOBJECTATIPROC glArrayObjectATI;
|
||||
extern PFNGLVERTEXATTRIBARRAYOBJECTATIPROC glVertexAttribArrayObjectATI;
|
||||
extern PFNGLGETARRAYOBJECTFVATIPROC glGetArrayObjectfvATI;
|
||||
extern PFNGLGETARRAYOBJECTIVATIPROC glGetArrayObjectivATI;
|
||||
extern PFNGLVARIANTARRAYOBJECTATIPROC glVariantObjectArrayATI;
|
||||
extern PFNGLGETVARIANTARRAYOBJECTFVATIPROC glGetVariantArrayObjectfvATI;
|
||||
extern PFNGLGETVARIANTARRAYOBJECTIVATIPROC glGetVariantArrayObjectivATI;
|
||||
|
||||
// GL_ARB_occlusion_query
|
||||
extern PFNGLGENQUERIESARBPROC glGenQueriesARB;
|
||||
extern PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB;
|
||||
extern PFNGLISQUERYARBPROC glIsQueryARB;
|
||||
extern PFNGLBEGINQUERYARBPROC glBeginQueryARB;
|
||||
extern PFNGLENDQUERYARBPROC glEndQueryARB;
|
||||
extern PFNGLGETQUERYIVARBPROC glGetQueryivARB;
|
||||
extern PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB;
|
||||
extern PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB;
|
||||
|
||||
// GL_ARB_timer_query
|
||||
extern PFNGLQUERYCOUNTERPROC glQueryCounter;
|
||||
extern PFNGLGETQUERYOBJECTI64VPROC glGetQueryObjecti64v;
|
||||
extern PFNGLGETQUERYOBJECTUI64VPROC glGetQueryObjectui64v;
|
||||
|
||||
// GL_ARB_point_parameters
|
||||
extern PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB;
|
||||
extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB;
|
||||
|
||||
// GL_ARB_shader_objects
|
||||
extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
|
||||
extern PFNGLGETHANDLEARBPROC glGetHandleARB;
|
||||
extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
|
||||
extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
|
||||
extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
|
||||
extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
|
||||
extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
|
||||
extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
|
||||
extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
|
||||
extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
|
||||
extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
|
||||
extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
|
||||
extern PFNGLUNIFORM2FARBPROC glUniform2fARB;
|
||||
extern PFNGLUNIFORM3FARBPROC glUniform3fARB;
|
||||
extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
|
||||
extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
|
||||
extern PFNGLUNIFORM2IARBPROC glUniform2iARB;
|
||||
extern PFNGLUNIFORM3IARBPROC glUniform3iARB;
|
||||
extern PFNGLUNIFORM4IARBPROC glUniform4iARB;
|
||||
extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB;
|
||||
extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
|
||||
extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
|
||||
extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
|
||||
extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB;
|
||||
extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB;
|
||||
extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB;
|
||||
extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
|
||||
extern PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB;
|
||||
extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
|
||||
extern PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv;
|
||||
extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
|
||||
extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB;
|
||||
extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
|
||||
extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
|
||||
extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
|
||||
extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
|
||||
extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
|
||||
extern PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB;
|
||||
extern PFNGLGETUNIFORMIVARBPROC glGetUniformivARB;
|
||||
extern PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB;
|
||||
|
||||
// GL_ARB_vertex_shader
|
||||
extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
|
||||
extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
|
||||
extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
|
||||
extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
|
||||
extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
|
||||
extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
|
||||
extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
|
||||
extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
|
||||
extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
|
||||
extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
|
||||
extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
|
||||
extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
|
||||
extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
|
||||
extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
|
||||
extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
|
||||
extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
|
||||
extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
|
||||
extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
|
||||
extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4nbvARB;
|
||||
extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4nivARB;
|
||||
extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4nsvARB;
|
||||
extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4nubARB;
|
||||
extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4nubvARB;
|
||||
extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4nuivARB;
|
||||
extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4nusvARB;
|
||||
extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
|
||||
extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
|
||||
extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
|
||||
extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
|
||||
extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
|
||||
extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
|
||||
extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
|
||||
extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
|
||||
extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
|
||||
extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
|
||||
extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
|
||||
extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
|
||||
extern PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
|
||||
extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
|
||||
extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
|
||||
extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
|
||||
extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
|
||||
extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
|
||||
extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
|
||||
extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
|
||||
extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
|
||||
extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
|
||||
extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
|
||||
extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
|
||||
extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
|
||||
extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
|
||||
extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
|
||||
extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
|
||||
extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
|
||||
extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
|
||||
extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
|
||||
extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
|
||||
extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
|
||||
extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
|
||||
extern PFNGLISPROGRAMARBPROC glIsProgramARB;
|
||||
extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
|
||||
extern PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB;
|
||||
extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
|
||||
|
||||
extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB;
|
||||
extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB;
|
||||
|
||||
extern PFNGLCOLORTABLEEXTPROC glColorTableEXT;
|
||||
|
||||
//GL_EXT_blend_func_separate
|
||||
extern PFNGLBLENDFUNCSEPARATEEXTPROC glBlendFuncSeparateEXT;
|
||||
|
||||
//GL_EXT_framebuffer_object
|
||||
extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
|
||||
extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
|
||||
extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
|
||||
extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
|
||||
extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
|
||||
extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT;
|
||||
extern PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT;
|
||||
extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
|
||||
extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
|
||||
extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
|
||||
extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
|
||||
extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT;
|
||||
extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
|
||||
extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT;
|
||||
extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
|
||||
extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT;
|
||||
extern PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT;
|
||||
|
||||
#elif LL_MESA
|
||||
#if LL_MESA
|
||||
//----------------------------------------------------------------------------
|
||||
// MESA headers
|
||||
// quotes so we get libraries/.../GL/ version
|
||||
|
|
|
|||
|
|
@ -295,9 +295,6 @@ const std::string LLLocale::SYSTEM_LOCALE("English_United States.1252");
|
|||
#elif LL_DARWIN
|
||||
const std::string LLLocale::USER_LOCALE("en_US.iso8859-1");// = LLStringUtil::null;
|
||||
const std::string LLLocale::SYSTEM_LOCALE("en_US.iso8859-1");
|
||||
#elif LL_SOLARIS
|
||||
const std::string LLLocale::USER_LOCALE("en_US.ISO8859-1");
|
||||
const std::string LLLocale::SYSTEM_LOCALE("C");
|
||||
#else // LL_LINUX likes this
|
||||
const std::string LLLocale::USER_LOCALE("en_US.utf8");
|
||||
const std::string LLLocale::SYSTEM_LOCALE("C");
|
||||
|
|
|
|||
|
|
@ -61,9 +61,6 @@ LLDir_Win32 gDirUtil;
|
|||
#elif LL_DARWIN
|
||||
#include "lldir_mac.h"
|
||||
LLDir_Mac gDirUtil;
|
||||
#elif LL_SOLARIS
|
||||
#include "lldir_solaris.h"
|
||||
LLDir_Solaris gDirUtil;
|
||||
#else
|
||||
#include "lldir_linux.h"
|
||||
LLDir_Linux gDirUtil;
|
||||
|
|
|
|||
|
|
@ -27,11 +27,6 @@
|
|||
#ifndef LL_LLDIR_H
|
||||
#define LL_LLDIR_H
|
||||
|
||||
#if LL_SOLARIS
|
||||
#include <sys/param.h>
|
||||
#define MAX_PATH MAXPATHLEN
|
||||
#endif
|
||||
|
||||
// these numbers are read from settings_files.xml, so we need to be explicit
|
||||
typedef enum ELLPath
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,266 +0,0 @@
|
|||
/**
|
||||
* @file fmodwrapper.cpp
|
||||
* @brief dummy source file for building a shared library to wrap libfmod.a
|
||||
*
|
||||
* $LicenseInfo:firstyear=2005&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "linden_common.h"
|
||||
|
||||
#include "lldir_solaris.h"
|
||||
#include "llerror.h"
|
||||
#include "llrand.h"
|
||||
#include "llstring.h"
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <glob.h>
|
||||
#include <pwd.h>
|
||||
#include <sys/utsname.h>
|
||||
#define _STRUCTURED_PROC 1
|
||||
#include <sys/procfs.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
static std::string getCurrentUserHome(char* fallback)
|
||||
{
|
||||
// fwiw this exactly duplicates getCurrentUserHome() in lldir_linux.cpp...
|
||||
// we should either derive both from LLDir_Posix or just axe Solaris.
|
||||
const uid_t uid = getuid();
|
||||
struct passwd *pw;
|
||||
|
||||
pw = getpwuid(uid);
|
||||
if ((pw != NULL) && (pw->pw_dir != NULL))
|
||||
{
|
||||
return pw->pw_dir;
|
||||
}
|
||||
|
||||
LL_INFOS() << "Couldn't detect home directory from passwd - trying $HOME" << LL_ENDL;
|
||||
auto home_env = LLStringUtil::getoptenv("HOME");
|
||||
if (home_env)
|
||||
{
|
||||
return *home_env;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Couldn't detect home directory! Falling back to " << fallback << LL_ENDL;
|
||||
return fallback;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
LLDir_Solaris::LLDir_Solaris()
|
||||
{
|
||||
mDirDelimiter = "/";
|
||||
mCurrentDirIndex = -1;
|
||||
mCurrentDirCount = -1;
|
||||
mDirp = NULL;
|
||||
|
||||
char tmp_str[LL_MAX_PATH]; /* Flawfinder: ignore */
|
||||
if (getcwd(tmp_str, LL_MAX_PATH) == NULL)
|
||||
{
|
||||
strcpy(tmp_str, "/tmp");
|
||||
LL_WARNS() << "Could not get current directory; changing to "
|
||||
<< tmp_str << LL_ENDL;
|
||||
if (chdir(tmp_str) == -1)
|
||||
{
|
||||
LL_ERRS() << "Could not change directory to " << tmp_str << LL_ENDL;
|
||||
}
|
||||
}
|
||||
|
||||
mExecutableFilename = "";
|
||||
mExecutablePathAndName = "";
|
||||
mExecutableDir = strdup(tmp_str);
|
||||
mWorkingDir = strdup(tmp_str);
|
||||
mAppRODataDir = strdup(tmp_str);
|
||||
mOSUserDir = getCurrentUserHome(tmp_str);
|
||||
mOSUserAppDir = "";
|
||||
mLindenUserDir = "";
|
||||
|
||||
char path [LL_MAX_PATH]; /* Flawfinder: ignore */
|
||||
|
||||
sprintf(path, "/proc/%d/psinfo", (int)getpid());
|
||||
int proc_fd = -1;
|
||||
if((proc_fd = open(path, O_RDONLY)) == -1){
|
||||
LL_WARNS() << "unable to open " << path << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
psinfo_t proc_psinfo;
|
||||
if(read(proc_fd, &proc_psinfo, sizeof(psinfo_t)) != sizeof(psinfo_t)){
|
||||
LL_WARNS() << "Unable to read " << path << LL_ENDL;
|
||||
close(proc_fd);
|
||||
return;
|
||||
}
|
||||
|
||||
close(proc_fd);
|
||||
|
||||
mExecutableFilename = strdup(proc_psinfo.pr_fname);
|
||||
LL_INFOS() << "mExecutableFilename = [" << mExecutableFilename << "]" << LL_ENDL;
|
||||
|
||||
sprintf(path, "/proc/%d/path/a.out", (int)getpid());
|
||||
|
||||
char execpath[LL_MAX_PATH];
|
||||
if(readlink(path, execpath, LL_MAX_PATH) == -1){
|
||||
LL_WARNS() << "Unable to read link from " << path << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
char *p = execpath; // nuke trash in link, if any exists
|
||||
int i = 0;
|
||||
while(*p != NULL && ++i < LL_MAX_PATH && isprint((int)(*p++)));
|
||||
*p = NULL;
|
||||
|
||||
mExecutablePathAndName = strdup(execpath);
|
||||
LL_INFOS() << "mExecutablePathAndName = [" << mExecutablePathAndName << "]" << LL_ENDL;
|
||||
|
||||
//NOTE: Why force people to cd into the package directory?
|
||||
// Look for SECONDLIFE env variable and use it, if set.
|
||||
|
||||
auto SECONDLIFE(LLDirUtil::getoptenv("SECONDLIFE"));
|
||||
if(SECONDLIFE){
|
||||
mExecutableDir = add(*SECONDLIFE, "bin"); //NOTE: make sure we point at the bin
|
||||
}else{
|
||||
mExecutableDir = getDirName(execpath);
|
||||
LL_INFOS() << "mExecutableDir = [" << mExecutableDir << "]" << LL_ENDL;
|
||||
}
|
||||
|
||||
mLLPluginDir = add(mExecutableDir, "llplugin");
|
||||
|
||||
// *TODO: don't use /tmp, use $HOME/.secondlife/tmp or something.
|
||||
mTempDir = "/tmp";
|
||||
}
|
||||
|
||||
LLDir_Solaris::~LLDir_Solaris()
|
||||
{
|
||||
}
|
||||
|
||||
// Implementation
|
||||
|
||||
|
||||
void LLDir_Solaris::initAppDirs(const std::string &app_name,
|
||||
const std::string& app_read_only_data_dir)
|
||||
{
|
||||
// Allow override so test apps can read newview directory
|
||||
if (!app_read_only_data_dir.empty())
|
||||
{
|
||||
mAppRODataDir = app_read_only_data_dir;
|
||||
mSkinBaseDir = add(mAppRODataDir, "skins");
|
||||
}
|
||||
mAppName = app_name;
|
||||
|
||||
std::string upper_app_name(app_name);
|
||||
LLStringUtil::toUpper(upper_app_name);
|
||||
|
||||
auto app_home_env(LLStringUtil::getoptenv(upper_app_name + "_USER_DIR"));
|
||||
if (app_home_env)
|
||||
{
|
||||
// user has specified own userappdir i.e. $SECONDLIFE_USER_DIR
|
||||
mOSUserAppDir = *app_home_env;
|
||||
}
|
||||
else
|
||||
{
|
||||
// traditionally on unixoids, MyApp gets ~/.myapp dir for data
|
||||
mOSUserAppDir = mOSUserDir;
|
||||
mOSUserAppDir += "/";
|
||||
mOSUserAppDir += ".";
|
||||
std::string lower_app_name(app_name);
|
||||
LLStringUtil::toLower(lower_app_name);
|
||||
mOSUserAppDir += lower_app_name;
|
||||
}
|
||||
|
||||
// create any directories we expect to write to.
|
||||
|
||||
int res = LLFile::mkdir(mOSUserAppDir);
|
||||
if (res == -1)
|
||||
{
|
||||
LL_WARNS() << "Couldn't create app user dir " << mOSUserAppDir << LL_ENDL;
|
||||
LL_WARNS() << "Default to base dir" << mOSUserDir << LL_ENDL;
|
||||
mOSUserAppDir = mOSUserDir;
|
||||
}
|
||||
|
||||
res = LLFile::mkdir(getExpandedFilename(LL_PATH_LOGS,""));
|
||||
if (res == -1)
|
||||
{
|
||||
LL_WARNS() << "Couldn't create LL_PATH_LOGS dir " << getExpandedFilename(LL_PATH_LOGS,"") << LL_ENDL;
|
||||
}
|
||||
|
||||
res = LLFile::mkdir(getExpandedFilename(LL_PATH_USER_SETTINGS,""));
|
||||
if (res == -1)
|
||||
{
|
||||
LL_WARNS() << "Couldn't create LL_PATH_USER_SETTINGS dir " << getExpandedFilename(LL_PATH_USER_SETTINGS,"") << LL_ENDL;
|
||||
}
|
||||
|
||||
res = LLFile::mkdir(getExpandedFilename(LL_PATH_CACHE,""));
|
||||
if (res == -1)
|
||||
{
|
||||
LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << getExpandedFilename(LL_PATH_CACHE,"") << LL_ENDL;
|
||||
}
|
||||
|
||||
mCAFile = getExpandedFilename(LL_PATH_EXECUTABLE, "ca-bundle.crt");
|
||||
}
|
||||
|
||||
U32 LLDir_Solaris::countFilesInDir(const std::string &dirname, const std::string &mask)
|
||||
{
|
||||
U32 file_count = 0;
|
||||
glob_t g;
|
||||
|
||||
std::string tmp_str;
|
||||
tmp_str = dirname;
|
||||
tmp_str += mask;
|
||||
|
||||
if(glob(tmp_str.c_str(), GLOB_NOSORT, NULL, &g) == 0)
|
||||
{
|
||||
file_count = g.gl_pathc;
|
||||
|
||||
globfree(&g);
|
||||
}
|
||||
|
||||
return (file_count);
|
||||
}
|
||||
|
||||
std::string LLDir_Solaris::getCurPath()
|
||||
{
|
||||
char tmp_str[LL_MAX_PATH]; /* Flawfinder: ignore */
|
||||
if (getcwd(tmp_str, LL_MAX_PATH) == NULL)
|
||||
{
|
||||
LL_WARNS() << "Could not get current directory" << LL_ENDL;
|
||||
tmp_str[0] = '\0';
|
||||
}
|
||||
return tmp_str;
|
||||
}
|
||||
|
||||
|
||||
bool LLDir_Solaris::fileExists(const std::string &filename) const
|
||||
{
|
||||
struct stat stat_data;
|
||||
// Check the age of the file
|
||||
// Now, we see if the files we've gathered are recent...
|
||||
int res = stat(filename.c_str(), &stat_data);
|
||||
if (!res)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
/**
|
||||
* @file fmodwrapper.cpp
|
||||
* @brief dummy source file for building a shared library to wrap libfmod.a
|
||||
*
|
||||
* $LicenseInfo:firstyear=2005&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#if !LL_SOLARIS
|
||||
#error This header must not be included when compiling for any target other than Solaris. Consider including lldir.h instead.
|
||||
#endif // !LL_SOLARIS
|
||||
|
||||
#ifndef LL_LLDIR_SOLARIS_H
|
||||
#define LL_LLDIR_SOLARIS_H
|
||||
|
||||
#include "lldir.h"
|
||||
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
|
||||
class LLDir_Solaris : public LLDir
|
||||
{
|
||||
public:
|
||||
LLDir_Solaris();
|
||||
virtual ~LLDir_Solaris();
|
||||
|
||||
/*virtual*/ void initAppDirs(const std::string &app_name,
|
||||
const std::string& app_read_only_data_dir);
|
||||
|
||||
virtual std::string getCurPath();
|
||||
virtual U32 countFilesInDir(const std::string &dirname, const std::string &mask);
|
||||
/*virtual*/ bool fileExists(const std::string &filename) const;
|
||||
|
||||
private:
|
||||
DIR *mDirp;
|
||||
int mCurrentDirIndex;
|
||||
int mCurrentDirCount;
|
||||
std::string mCurrentDir;
|
||||
};
|
||||
|
||||
#endif // LL_LLDIR_SOLARIS_H
|
||||
|
||||
|
||||
|
|
@ -33,10 +33,6 @@
|
|||
#include <map>
|
||||
#if LL_WINDOWS
|
||||
#include <share.h>
|
||||
#elif LL_SOLARIS
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#else
|
||||
#include <sys/file.h>
|
||||
#endif
|
||||
|
|
@ -2146,12 +2142,6 @@ LLFILE *LLVFS::openAndLock(const std::string& filename, const char* mode, BOOL r
|
|||
int fd;
|
||||
|
||||
// first test the lock in a non-destructive way
|
||||
#if LL_SOLARIS
|
||||
struct flock fl;
|
||||
fl.l_whence = SEEK_SET;
|
||||
fl.l_start = 0;
|
||||
fl.l_len = 1;
|
||||
#else // !LL_SOLARIS
|
||||
if (strchr(mode, 'w') != NULL)
|
||||
{
|
||||
fp = LLFile::fopen(filename, "rb"); /* Flawfinder: ignore */
|
||||
|
|
@ -2167,19 +2157,13 @@ LLFILE *LLVFS::openAndLock(const std::string& filename, const char* mode, BOOL r
|
|||
fclose(fp);
|
||||
}
|
||||
}
|
||||
#endif // !LL_SOLARIS
|
||||
|
||||
// now actually open the file for use
|
||||
fp = LLFile::fopen(filename, mode); /* Flawfinder: ignore */
|
||||
if (fp)
|
||||
{
|
||||
fd = fileno(fp);
|
||||
#if LL_SOLARIS
|
||||
fl.l_type = read_lock ? F_RDLCK : F_WRLCK;
|
||||
if (fcntl(fd, F_SETLK, &fl) == -1)
|
||||
#else
|
||||
if (flock(fd, (read_lock ? LOCK_SH : LOCK_EX) | LOCK_NB) == -1)
|
||||
#endif
|
||||
{
|
||||
fclose(fp);
|
||||
fp = NULL;
|
||||
|
|
@ -2207,14 +2191,6 @@ void LLVFS::unlockAndClose(LLFILE *fp)
|
|||
flock(fd, LOCK_UN);
|
||||
#endif
|
||||
*/
|
||||
#if LL_SOLARIS
|
||||
struct flock fl;
|
||||
fl.l_whence = SEEK_SET;
|
||||
fl.l_start = 0;
|
||||
fl.l_len = 1;
|
||||
fl.l_type = F_UNLCK;
|
||||
fcntl(fileno(fp), F_SETLK, &fl);
|
||||
#endif
|
||||
fclose(fp);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,13 +51,13 @@ extern "C" {
|
|||
# include "fontconfig/fontconfig.h"
|
||||
}
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
// not necessarily available on random SDL platforms, so #if LL_LINUX
|
||||
// for execv(), waitpid(), fork()
|
||||
# include <unistd.h>
|
||||
# include <sys/types.h>
|
||||
# include <sys/wait.h>
|
||||
#endif // LL_LINUX || LL_SOLARIS
|
||||
#endif // LL_LINUX
|
||||
|
||||
extern BOOL gDebugWindowProc;
|
||||
|
||||
|
|
@ -323,12 +323,6 @@ static int x11_detect_VRAM_kb_fp(FILE *fp, const char *prefix_str)
|
|||
|
||||
static int x11_detect_VRAM_kb()
|
||||
{
|
||||
#if LL_SOLARIS && defined(__sparc)
|
||||
// NOTE: there's no Xorg server on SPARC so just return 0
|
||||
// and allow SDL to attempt to get the amount of VRAM
|
||||
return(0);
|
||||
#else
|
||||
|
||||
std::string x_log_location("/var/log/");
|
||||
std::string fname;
|
||||
int rtn = 0; // 'could not detect'
|
||||
|
|
@ -409,7 +403,6 @@ static int x11_detect_VRAM_kb()
|
|||
}
|
||||
}
|
||||
return rtn;
|
||||
#endif // LL_SOLARIS
|
||||
}
|
||||
#endif // LL_X11
|
||||
|
||||
|
|
@ -484,27 +477,10 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B
|
|||
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
|
||||
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE,8);
|
||||
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
|
||||
#if !LL_SOLARIS
|
||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, (bits <= 16) ? 16 : 24);
|
||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, (bits <= 16) ? 16 : 24);
|
||||
// We need stencil support for a few (minor) things.
|
||||
if (!getenv("LL_GL_NO_STENCIL"))
|
||||
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
|
||||
#else
|
||||
// NOTE- use smaller Z-buffer to enable more graphics cards
|
||||
// - This should not affect better GPUs and has been proven
|
||||
// to provide 24-bit z-buffers when available.
|
||||
//
|
||||
// As the API states:
|
||||
//
|
||||
// GLX_DEPTH_SIZE Must be followed by a nonnegative
|
||||
// minimum size specification. If this
|
||||
// value is zero, visuals with no depth
|
||||
// buffer are preferred. Otherwise, the
|
||||
// largest available depth buffer of at
|
||||
// least the minimum size is preferred.
|
||||
|
||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
|
||||
#endif
|
||||
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, (bits <= 16) ? 1 : 8);
|
||||
|
||||
// *FIX: try to toggle vsync here?
|
||||
|
|
@ -682,25 +658,13 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B
|
|||
// fixme: actually, it's REALLY important for picking that we get at
|
||||
// least 8 bits each of red,green,blue. Alpha we can be a bit more
|
||||
// relaxed about if we have to.
|
||||
#if LL_SOLARIS && defined(__sparc)
|
||||
// again the __sparc required because Xsun support, 32bit are very pricey on SPARC
|
||||
if(colorBits < 24) //HACK: on SPARC allow 24-bit color
|
||||
#else
|
||||
if (colorBits < 32)
|
||||
#endif
|
||||
{
|
||||
close();
|
||||
setupFailure(
|
||||
#if LL_SOLARIS && defined(__sparc)
|
||||
"Second Life requires at least 24-bit color on SPARC to run in a window.\n"
|
||||
"Please use fbconfig to set your default color depth to 24 bits.\n"
|
||||
"You may also need to adjust the X11 setting in SMF. To do so use\n"
|
||||
" 'svccfg -s svc:/application/x11/x11-server setprop options/default_depth=24'\n"
|
||||
#else
|
||||
"Second Life requires True Color (32-bit) to run in a window.\n"
|
||||
"Please go to Control Panels -> Display -> Settings and\n"
|
||||
"set the screen to 32-bit color.\n"
|
||||
#endif
|
||||
"Alternately, if you choose to run fullscreen, Second Life\n"
|
||||
"will automatically adjust the screen each time it runs.",
|
||||
"Error",
|
||||
|
|
@ -2503,7 +2467,7 @@ BOOL LLWindowSDL::dialogColorPicker( F32 *r, F32 *g, F32 *b)
|
|||
}
|
||||
#endif // LL_GTK
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
// extracted from spawnWebBrowser for clarity and to eliminate
|
||||
// compiler confusion regarding close(int fd) vs. LLWindow::close()
|
||||
void exec_cmd(const std::string& cmd, const std::string& arg)
|
||||
|
|
@ -2559,7 +2523,7 @@ void LLWindowSDL::spawnWebBrowser(const std::string& escaped_url, bool async)
|
|||
|
||||
LL_INFOS() << "spawn_web_browser: " << escaped_url << LL_ENDL;
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
# if LL_X11
|
||||
if (mSDL_Display)
|
||||
{
|
||||
|
|
@ -2578,7 +2542,7 @@ void LLWindowSDL::spawnWebBrowser(const std::string& escaped_url, bool async)
|
|||
cmd += "launch_url.sh";
|
||||
arg = escaped_url;
|
||||
exec_cmd(cmd, arg);
|
||||
#endif // LL_LINUX || LL_SOLARIS
|
||||
#endif // LL_LINUX
|
||||
|
||||
LL_INFOS() << "spawn_web_browser returning." << LL_ENDL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -255,9 +255,9 @@
|
|||
// define a self-registering event API object
|
||||
#include "llappviewerlistener.h"
|
||||
|
||||
#if (LL_LINUX || LL_SOLARIS) && LL_GTK
|
||||
#if LL_LINUX && LL_GTK
|
||||
#include "glib.h"
|
||||
#endif // (LL_LINUX || LL_SOLARIS) && LL_GTK
|
||||
#endif // (LL_LINUX) && LL_GTK
|
||||
|
||||
#if LL_MSVC
|
||||
// disable boost::lexical_cast warning
|
||||
|
|
|
|||
|
|
@ -73,10 +73,6 @@ static void exceptionTerminateHandler()
|
|||
|
||||
int main( int argc, char **argv )
|
||||
{
|
||||
#if LL_SOLARIS && defined(__sparc)
|
||||
asm ("ta\t6"); // NOTE: Make sure memory alignment is enforced on SPARC
|
||||
#endif
|
||||
|
||||
gArgC = argc;
|
||||
gArgV = argv;
|
||||
|
||||
|
|
@ -336,8 +332,6 @@ void LLAppViewerLinux::initCrashReporting(bool reportFreeze)
|
|||
cmd += gDirUtilp->getDirDelimiter();
|
||||
#if LL_LINUX
|
||||
cmd += "linux-crash-logger.bin";
|
||||
#elif LL_SOLARIS
|
||||
cmd += "solaris-crash-logger";
|
||||
#else
|
||||
# error Unknown platform
|
||||
#endif
|
||||
|
|
@ -394,9 +388,6 @@ bool LLAppViewerLinux::beingDebugged()
|
|||
{
|
||||
static enum {unknown, no, yes} debugged = unknown;
|
||||
|
||||
#if LL_SOLARIS
|
||||
return debugged == no; // BUG: fix this for Solaris
|
||||
#else
|
||||
if (debugged == unknown)
|
||||
{
|
||||
pid_t ppid = getppid();
|
||||
|
|
@ -431,7 +422,6 @@ bool LLAppViewerLinux::beingDebugged()
|
|||
}
|
||||
|
||||
return debugged == yes;
|
||||
#endif
|
||||
}
|
||||
|
||||
void LLAppViewerLinux::initLoggingAndGetLastDuration()
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
#include "llviewercontrol.h"
|
||||
#include "llwin32headerslean.h"
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS || LL_DARWIN
|
||||
#if LL_LINUX || LL_DARWIN
|
||||
# include "llfilepicker.h"
|
||||
#endif
|
||||
|
||||
|
|
@ -187,7 +187,7 @@ std::string LLDirPicker::getDirName()
|
|||
return mFilePicker->getFirstFile();
|
||||
}
|
||||
|
||||
#elif LL_LINUX || LL_SOLARIS
|
||||
#elif LL_LINUX
|
||||
|
||||
LLDirPicker::LLDirPicker() :
|
||||
mFileName(NULL),
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ private:
|
|||
void buildDirname( void );
|
||||
bool check_local_file_access_enabled();
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS || LL_DARWIN
|
||||
#if LL_LINUX || LL_DARWIN
|
||||
// On Linux we just implement LLDirPicker on top of LLFilePicker
|
||||
LLFilePicker *mFilePicker;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -771,12 +771,7 @@ void LLFeatureManager::applyBaseMasks()
|
|||
maskFeatures("RAM256MB");
|
||||
}
|
||||
|
||||
#if LL_SOLARIS && defined(__sparc) // even low MHz SPARCs are fast
|
||||
#error The 800 is hinky. Would something like a LL_MIN_MHZ make more sense here?
|
||||
if (gSysCPU.getMHz() < 800)
|
||||
#else
|
||||
if (gSysCPU.getMHz() < 1100)
|
||||
#endif
|
||||
{
|
||||
maskFeatures("CPUSlow");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
#include "llwindowsdl.h" // for some X/GTK utils to help with filepickers
|
||||
#endif // LL_SDL
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
#if LL_LINUX
|
||||
#include "llhttpconstants.h" // file picker uses some of thes constants on Linux
|
||||
#endif
|
||||
|
||||
|
|
@ -939,7 +939,7 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename,
|
|||
}
|
||||
//END LL_DARWIN
|
||||
|
||||
#elif LL_LINUX || LL_SOLARIS
|
||||
#elif LL_LINUX
|
||||
|
||||
# if LL_GTK
|
||||
|
||||
|
|
@ -1504,4 +1504,4 @@ BOOL LLFilePicker::getMultipleOpenFiles( ELoadFilter filter, bool blocking)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
#endif // LL_LINUX || LL_SOLARIS
|
||||
#endif // LL_LINUX
|
||||
|
|
|
|||
|
|
@ -746,9 +746,6 @@ LLSD LLFloaterReporter::gatherReport()
|
|||
const char* platform = "Mac";
|
||||
#elif LL_LINUX
|
||||
const char* platform = "Lnx";
|
||||
#elif LL_SOLARIS
|
||||
const char* platform = "Sol";
|
||||
const char* short_platform = "O:S";
|
||||
#else
|
||||
const char* platform = "???";
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
#include "m4math.h"
|
||||
#include "llmatrix4a.h"
|
||||
|
||||
#if !LL_DARWIN && !LL_LINUX && !LL_SOLARIS
|
||||
#if !LL_DARWIN && !LL_LINUX
|
||||
extern PFNGLWEIGHTPOINTERARBPROC glWeightPointerARB;
|
||||
extern PFNGLWEIGHTFVARBPROC glWeightfvARB;
|
||||
extern PFNGLVERTEXBLENDARBPROC glVertexBlendARB;
|
||||
|
|
|
|||
|
|
@ -1917,8 +1917,8 @@ LLViewerWindow::LLViewerWindow(const Params& p)
|
|||
ms_sleep(5000) ; //wait for 5 seconds.
|
||||
|
||||
LLSplashScreen::update(LLTrans::getString("ShuttingDown"));
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
LL_WARNS() << "Unable to create window, be sure screen is set at 32-bit color and your graphics driver is configured correctly. See README-linux.txt or README-solaris.txt for further information."
|
||||
#if LL_LINUX
|
||||
LL_WARNS() << "Unable to create window, be sure screen is set at 32-bit color and your graphics driver is configured correctly. See README-linux.txt for further information."
|
||||
<< LL_ENDL;
|
||||
#else
|
||||
LL_WARNS("Window") << "Unable to create window, be sure screen is set at 32-bit color in Control Panels->Display->Settings"
|
||||
|
|
|
|||
|
|
@ -359,7 +359,7 @@ LLVivoxVoiceClient::LLVivoxVoiceClient() :
|
|||
// gMuteListp->addObserver(&mutelist_listener);
|
||||
|
||||
|
||||
#if LL_DARWIN || LL_LINUX || LL_SOLARIS
|
||||
#if LL_DARWIN || LL_LINUX
|
||||
// HACK: THIS DOES NOT BELONG HERE
|
||||
// When the vivox daemon dies, the next write attempt on our socket generates a SIGPIPE, which kills us.
|
||||
// This should cause us to ignore SIGPIPE and handle the error through proper channels.
|
||||
|
|
|
|||
Loading…
Reference in New Issue