From 1fc0936f2eff90370404fa3c03fb64a266ac06bd Mon Sep 17 00:00:00 2001 From: Armin Weatherwax Date: Fri, 4 Dec 2009 11:03:07 +0100 Subject: Trying the new 64bit libs and adding the adjustments needed. (Backported from d057e71bc) @nochangelog --- linden/indra/cmake/LLWindow.cmake | 4 +- linden/indra/develop.py | 2 + linden/indra/newview/linux_tools/wrapper.sh | 50 +++++++++---- linden/indra/newview/llappviewerlinux.cpp | 3 +- linden/indra/newview/viewer_manifest.py | 107 +++++++++++++++++++++++++++- 5 files changed, 147 insertions(+), 19 deletions(-) (limited to 'linden/indra') diff --git a/linden/indra/cmake/LLWindow.cmake b/linden/indra/cmake/LLWindow.cmake index c0efa27..babba64 100644 --- a/linden/indra/cmake/LLWindow.cmake +++ b/linden/indra/cmake/LLWindow.cmake @@ -17,7 +17,9 @@ else (STANDALONE) use_prebuilt_binary(mesa) if (LINUX AND VIEWER) set (SDL_FOUND TRUE) - set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/i686-linux) +#awfixme set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/i686-linux) +#awfixme set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${ARCH}-linux) + set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/x86_64-linux) set (SDL_LIBRARY SDL) endif (LINUX AND VIEWER) endif (STANDALONE) diff --git a/linden/indra/develop.py b/linden/indra/develop.py index 85837ba..8f4ec3f 100755 --- a/linden/indra/develop.py +++ b/linden/indra/develop.py @@ -224,6 +224,8 @@ class UnixSetup(PlatformSetup): cpu = 'i386' elif cpu.endswith('86'): cpu = 'i686' + elif cpu in ('x86_64'): + cpu = 'x86_64' elif cpu in ('athlon',): cpu = 'i686' elif cpu == 'Power Macintosh': diff --git a/linden/indra/newview/linux_tools/wrapper.sh b/linden/indra/newview/linux_tools/wrapper.sh index 2834947..d6db100 100755 --- a/linden/indra/newview/linux_tools/wrapper.sh +++ b/linden/indra/newview/linux_tools/wrapper.sh @@ -41,6 +41,20 @@ ## driver bug, try enabling this option and report whether it helps: #export LL_ATI_MOUSE_CURSOR_BUG=x +## - If you experience crashes with streaming video and music, you can +## disable these by enabling this option: +#export LL_DISABLE_GSTREAMER=x + +## - GStreamer is automatically disabled - for now - on 64-bit systems due +## to common fatal incompatibilities; remove/comment these lines if you want +## to try anyway. + +#FIXME:-> +#if [ "`uname -m`" = "x86_64" ]; then +# export LL_DISABLE_GSTREAMER=x +# echo '64-bit Linux detected: Disabling GStreamer (streaming video and music) by default; edit ./secondlife to re-enable.' +#fi +#FIXME:<- ## Everything below this line is just for advanced troubleshooters. ##------------------------------------------------------------------- @@ -106,8 +120,11 @@ if [ -n "$LL_TCMALLOC" ]; then fi export GST_PLUGIN_PATH="${GST_PLUGIN_PATH}:${RUN_PATH}/lib/gstreamer-plugins/" - -export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"`pwd`"/app_settings/mozilla-runtime-linux-i686:"${LD_LIBRARY_PATH}"' +if [ "`uname -m`" = "x86_64" ]; then + export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"`pwd`"/app_settings/mozilla-runtime-linux-x86_64:"${LD_LIBRARY_PATH}"' +else + export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"`pwd`"/app_settings/mozilla-runtime-linux-i686:"${LD_LIBRARY_PATH}"' +fi export SL_CMD='$LL_WRAPPER bin/do-not-directly-run-imprudence-bin' export SL_OPT="`cat gridargs.dat` $@" @@ -119,18 +136,21 @@ if [ -n "$LL_RUN_ERR" ]; then LL_RUN_ERR_MSG="" if [ "$LL_RUN_ERR" = "runerr" ]; then # generic error running the binary - echo '*** Unclean shutdown. ***' - if [ "`uname -m`" = "x86_64" ]; then - echo - cat << EOFMARKER -You are running the Imprudence Viewer on a x86_64 platform. The -most common problems when launching the Viewer (particularly -'bin/do-not-directly-run-imprudence-bin: not found' and 'error while -loading shared libraries') may be solved by installing your Linux -distribution's 32-bit compatibility packages. -For example, on Ubuntu and other Debian-based Linuxes you might run: -$ sudo apt-get install ia32-libs ia32-libs-gtk ia32-libs-kde ia32-libs-sdl -EOFMARKER - fi + echo '*** Bad shutdown. ***' + +#FIXME: -> +# if [ "`uname -m`" = "x86_64" ]; then +# echo +# cat << EOFMARKER +#You are running the Imprudence Viewer on a x86_64 platform. The +#most common problems when launching the Viewer (particularly +#'bin/do-not-directly-run-imprudence-bin: not found' and 'error while +#loading shared libraries') may be solved by installing your Linux +#distribution's 32-bit compatibility packages. +#For example, on Ubuntu and other Debian-based Linuxes you might run: +#$ sudo apt-get install ia32-libs ia32-libs-gtk ia32-libs-kde ia32-libs-sdl +#EOFMARKER +# fi +#FIXME: <- fi fi diff --git a/linden/indra/newview/llappviewerlinux.cpp b/linden/indra/newview/llappviewerlinux.cpp index ad90b82..1eadce5 100644 --- a/linden/indra/newview/llappviewerlinux.cpp +++ b/linden/indra/newview/llappviewerlinux.cpp @@ -256,7 +256,8 @@ static inline BOOL do_elfio_glibc_backtrace() size_t btpos; for (btpos = 0; btpos < btsize; ++btpos) { - fprintf(StraceFile, "%d:\t", btpos); + // the format of the StraceFile is very specific, to allow (kludgy) machine-parsing + fprintf(StraceFile, "%-3ld ", (long)btpos); int symidx; for (symidx = 0; symidx < nSymNo; ++symidx) { diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py index a914550..2a81c5e 100755 --- a/linden/indra/newview/viewer_manifest.py +++ b/linden/indra/newview/viewer_manifest.py @@ -769,7 +769,6 @@ class LinuxManifest(ViewerManifest): # 'dst': self.get_dst_prefix(), # 'inst': self.build_path_of(installer_name)}) - class Linux_i686Manifest(LinuxManifest): def construct(self): super(Linux_i686Manifest, self).construct() @@ -892,6 +891,7 @@ class Linux_x86_64Manifest(LinuxManifest): super(Linux_x86_64Manifest, self).construct() self.path("imprudence-stripped","bin/do-not-directly-run-imprudence-bin") # self.path("../linux_crash_logger/linux-crash-logger-stripped","linux-crash-logger.bin") + self.path("linux_tools/launch_url.sh","launch_url.sh") if self.prefix("res-sdl"): self.path("*") @@ -899,7 +899,110 @@ class Linux_x86_64Manifest(LinuxManifest): self.end_prefix("res-sdl") self.path("featuretable_linux.txt") - self.path("secondlife-i686.supp") + #self.path("secondlife-x86_64.supp") + + self.path("app_settings/mozilla-runtime-linux-x86_64") + + if self.prefix("../../libraries/x86_64-linux/lib_release_client", dst="lib"): + self.path("libapr-1.so.0") + self.path("libaprutil-1.so.0") + self.path("libdb-4.2.so") + self.path("libcrypto.so.0.9.8") + self.path("libexpat.so.1") + self.path("libssl.so.0.9.8") + self.path("libuuid.so", "libuuid.so.1") + self.path("libSDL-1.2.so.0") + self.path("libELFIO.so") + self.path("libopenjpeg.so.1.3.0", "libopenjpeg.so.1.3") + self.path("libxml2.so.2") + self.path("libz.so.1") + + # OpenAL + self.path("libopenal.so.1") + self.path("libalut.so.0") + + # GTK+ and dependencies + self.path("libatk-1.0.so.0") + self.path("libcairo.so.2") + self.path("libfontconfig.so.1") + self.path("libfreetype.so.6") + self.path("libgdk_pixbuf-2.0.so.0") + self.path("libgdk-x11-2.0.so.0") + self.path("libgtk-x11-2.0.so.0") + self.path("libpango-1.0.so.0") + self.path("libpangoft2-1.0.so.0") + self.path("libpangox-1.0.so.0") + self.path("libpangoxft-1.0.so.0") + self.path("libpixman-1.so.0") + + # Gstreamer libs + self.path("libgstbase-0.10.so.0") + self.path("libgstreamer-0.10.so.0") + self.path("libgstaudio-0.10.so.0") + self.path("libgstbase-0.10.so.0") + self.path("libgstcontroller-0.10.so.0") + self.path("libgstdataprotocol-0.10.so.0") + self.path("libgstinterfaces-0.10.so.0") + self.path("libgstnetbuffer-0.10.so.0") + self.path("libgstpbutils-0.10.so.0") + self.path("libgstriff-0.10.so.0") + self.path("libgstrtp-0.10.so.0") + self.path("libgstrtsp-0.10.so.0") + self.path("libgstsdp-0.10.so.0") + self.path("libgsttag-0.10.so.0") + self.path("libgstvideo-0.10.so.0") + + # Gstreamer plugin dependencies + self.path("libogg.so.0") + self.path("libtheora.so.0") + self.path("libvorbis.so.0") + self.path("libvorbisenc.so.2") + self.path("liboil-0.3.so.0") + + # Gstreamer plugins + if self.prefix("gstreamer-plugins"): + self.path("libgstalsa.so") + self.path("libgstasf.so") + self.path("libgstaudioconvert.so") + self.path("libgstaudioresample.so") + self.path("libgstautodetect.so") + self.path("libgstavi.so") + self.path("libgstcoreelements.so") + self.path("libgstcoreindexers.so") + self.path("libgstdecodebin2.so") + self.path("libgstdecodebin.so") + self.path("libgstesd.so") + self.path("libgstffmpeg.so") + self.path("libgstffmpegcolorspace.so") + self.path("libgstgnomevfs.so") + self.path("libgsticydemux.so") + self.path("libgstid3demux.so") + self.path("libgstmpegdemux.so") + self.path("libgstmultifile.so") + self.path("libgstmultipart.so") + self.path("libgstogg.so") + self.path("libgstossaudio.so") + self.path("libgstplaybin.so") + self.path("libgstpulse.so") + self.path("libgstqtdemux.so") + self.path("libgstqueue2.so") + self.path("libgsttcp.so") + self.path("libgsttheora.so") + self.path("libgsttypefindfunctions.so") + self.path("libgstudp.so") + self.path("libgstvideoscale.so") + self.path("libgstvolume.so") + self.path("libgstvorbis.so") + self.path("libgstwavparse.so") + + self.end_prefix("gstreamer-plugins") + self.end_prefix("lib") + + # Vivox runtimes + #if self.prefix(src="vivox-runtime/i686-linux", dst="bin"): + # self.path("SLVoice") + # self.end_prefix() + if __name__ == "__main__": main() -- cgit v1.1