pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/57502: Badwolf web browser binary package errors with 'illegal instruction'
>Number: 57502
>Category: pkg
>Synopsis: Badwolf web browser binary package errors with 'illegal instruction'
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Jul 04 23:50:00 +0000 2023
>Originator: Tim
>Release: 9.3
>Organization:
>Environment:
NetBSD bob.local 9.3_STABLE NetBSD 9.3_STABLE (GENERIC) #1: Wed Nov 16 02:43:11 MST 2022 build@dia.local:/usr/obj/i386/netbsd-9/objdir/sys/arch/i386/compile/GENERIC i386
>Description:
I installed Badwolf web browser using pkgin, pointed at
http://cdn.NetBSD.org/pub/pkgsrc/packages/NetBSD/i386/9.3/All
After the install, launching 'badwolf' resulted in the error:
(badwolf:9439): GLib-GObject-CRITICAL **: 13:59:56.642: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
Illegal instruction (core dumped)
I spoke to Riastradh on the #netbsd IRC channel and here is some of the info that he requested:
Riastradh> yambo: OK, so when you do `gdb badwolf badwolf.core', and `bt' and `x/i $pc', what does it say?
yambo> Riastradh: => 0xb5553dd7 <_ZN3WTF8WallTime3nowEv+71>: cvtsi2sdl 0x28(%esp),%xmm0
Riastradh> yambo: What library is it in?
yambo> Riastradh: /usr/pkg/lib/libjavascriptcoregtk-4.0.so.18
Riastradh> so www/webkit-gtk
Riastradh> next, need to see what WallTime::now is doing, and whether it's reasonable
Riastradh> Can you share the output of `disas _ZN3WTF8WallTime3nowEv'?
(gdb) disas _ZN3WTF8WallTime3nowEv
Dump of assembler code for function _ZN3WTF8WallTime3nowEv:
0xb5553d90 <+0>: push %edi
0xb5553d91 <+1>: push %esi
0xb5553d92 <+2>: push %ebx
0xb5553d93 <+3>: call 0xb55bd7c8
0xb5553d98 <+8>: add $0x6d7268,%ebx
0xb5553d9e <+14>: sub $0x28,%esp
0xb5553da1 <+17>: mov -0x950(%ebx),%esi
0xb5553da7 <+23>: mov 0x38(%esp),%edi
0xb5553dab <+27>: movl $0x0,0x18(%esp)
0xb5553db3 <+35>: mov (%esi),%eax
0xb5553db5 <+37>: mov %eax,0x24(%esp)
0xb5553db9 <+41>: xor %eax,%eax
0xb5553dbb <+43>: lea 0x18(%esp),%eax
0xb5553dbf <+47>: movl $0x0,0x1c(%esp)
0xb5553dc7 <+55>: movl $0x0,0x20(%esp)
0xb5553dcf <+63>: push %eax
0xb5553dd0 <+64>: push $0x0
0xb5553dd2 <+66>: call 0xb50229d0 <__clock_gettime50@plt>
=> 0xb5553dd7 <+71>: cvtsi2sdl 0x28(%esp),%xmm0
0xb5553ddd <+77>: fildll 0x20(%esp)
0xb5553de1 <+81>: divsd -0x2dfb58(%ebx),%xmm0
0xb5553de9 <+89>: fstpl 0x10(%esp)
0xb5553ded <+93>: addsd 0x10(%esp),%xmm0
0xb5553df3 <+99>: add $0x10,%esp
0xb5553df6 <+102>: movsd %xmm0,(%edi)
0xb5553dfa <+106>: mov 0x1c(%esp),%edx
0xb5553dfe <+110>: xor (%esi),%edx
0xb5553e00 <+112>: jne 0xb5553e0d <_ZN3WTF8WallTime3nowEv+125>
0xb5553e02 <+114>: add $0x20,%esp
0xb5553e05 <+117>: mov %edi,%eax
0xb5553e07 <+119>: pop %ebx
0xb5553e08 <+120>: pop %esi
0xb5553e09 <+121>: pop %edi
0xb5553e0a <+122>: ret $0x4
0xb5553e0d <+125>: call 0xb5020c50 <__stack_chk_fail@plt>
End of assembler dump.
Riastradh> yambo: Can you file a PR with that information? Also can you include the output of `pkg_info -B webkit-gtk' in the PR?
Information for webkit-gtk-2.36.8nb4:
Build information:
ABI=
BUILD_DATE=2023-03-31 02:15:08 +0000
BUILD_HOST=NetBSD i386-nb9.netbsd.org 9.0 NetBSD 9.0 (LIBKVER) #0: Tue Jan 19 00:00:00 UTC 2038 root@localhost:/sys/arch/i386/compile/LIBKVER i386
BUILTIN_PKGS=zlib-1.2.10 sqlite3-3.26.0 bzip2-1.0.8 expat-2.2.8 libXrender-0.9.10 xorgproto-2018.4 libX11-1.6.8 libxcb-1.13.1 xcb-proto-1.13 libXext-1.3.4 pixman-0.38.4 xz-5.2.4 libepoxy-1.4.3 MesaLib-18.3.4 libXdamage-1.1.4 libXfixes-5.0.3 libXrandr-1.5.2 libxshmfence-1.3 libdrm-2.4.99 libXtst-1.2.3 xcursor-1.2.0 libXinerama-1.1.4
CATEGORIES=www
CC_VERSION=gcc-8.5.0
CFLAGS=-O2 -fPIC -D_FORTIFY_SOURCE=2 -DRELEASE_WITHOUT_OPTIMIZATIONS -march=i586 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/python3.10 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/gstreamer-1.0 -I/usr/X11R7/include/libdrm
CMAKE_ARGS=-DCMAKE_BUILD_TYPE=Release -DPORT=GTK -DENABLE_X11_TARGET=ON -DENABLE_MINIBROWSER=ON -DENABLE_GAMEPAD=OFF -DENABLE_GEOLOCATION=OFF -DENABLE_INTROSPECTION=ON -DENABLE_JOURNALD_LOG=OFF -DENABLE_BUBBLEWRAP_SANDBOX=OFF -DUSE_GSTREAMER_GL=OFF -DUSE_LIBHYPHEN=OFF -DUSE_OPENJPEG=OFF -DUSE_SOUP2=ON -DRUBY_EXECUTABLE=/usr/pkg/bin/ruby31 -DPYTHON_EXECUTABLE=/usr/pkg/bin/python3.10 -DENABLE_JIT=OFF -DUSE_OPENGL_OR_ES=ON -DENABLE_SPELLCHECK=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_WAYLAND_TARGET=ON -DUSE_WPE_RENDERER=OFF
CONFIGURE_ARGS=
CONFIGURE_ENV=PTHREAD_CFLAGS=\ -pthread\ PTHREAD_LDFLAGS=\ -pthread PTHREAD_LIBS= PTHREADBASE=/usr DL_CFLAGS=\ -pthread\ DL_LDFLAGS=\ -pthread DL_LIBS= BUILDLINK_DIR=/scratch/work/www/webkit-gtk/work/.buildlink FREETYPE_CONFIG=/usr/X11R7/bin/freetype-config INSTALL_INFO= MAKEINFO=/scratch/work/www/webkit-gtk/work/.tools/bin/makeinfo FLEX=/scratch/work/www/webkit-gtk/work/.tools/bin/flex BISON=/scratch/work/www/webkit-gtk/work/.tools/bin/bison ITSTOOL=/scratch/work/www/webkit-gtk/work/.tools/bin/itstool GDBUS_CODEGEN=/scratch/work/www/webkit-gtk/work/.tools/bin/gdbus-codegen PKG_CONFIG=/scratch/work/www/webkit-gtk/work/.tools/bin/pkg-config PKG_CONFIG_LIBDIR=/scratch/work/www/webkit-gtk/work/.buildlink/lib/pkgconfig:/scratch/work/www/webkit-gtk/work/.buildlink/share/pkgconfig PKG_CONFIG_LOG=/scratch/work/www/webkit-gtk/work/.pkg-config.log PKG_CONFIG_PATH= MAKE=make CWRAPPERS_CONFIG_DIR=/scratch/work/www/webkit-gtk/work/.cwrapper/config PYTHON=/usr/pkg/bin/python3.10 GI_SCANNER_DISA
BLE_CACHE=yes CC=gcc CFLAGS=-O2\ -fPIC\ -D_FORTIFY_SOURCE=2\ -DRELEASE_WITHOUT_OPTIMIZATIONS\ -march=i586\ -I/usr/pkg/include\ -I/usr/include\ -I/usr/pkg/include/python3.10\ -I/usr/pkg/include/glib-2.0\ -I/usr/pkg/include/gio-unix-2.0\ -I/usr/pkg/lib/glib-2.0/include\ -I/usr/X11R7/include\ -I/usr/X11R7/include/freetype2\ -I/usr/pkg/include/harfbuzz\ -I/usr/pkg/include/gstreamer-1.0\ -I/usr/X11R7/include/libdrm CPPFLAGS=-I/usr/pkg/include\ -I/usr/include\ -I/usr/pkg/include/python3.10\ -I/usr/pkg/include/glib-2.0\ -I/usr/pkg/include/gio-unix-2.0\ -I/usr/pkg/lib/glib-2.0/include\ -I/usr/X11R7/include\ -I/usr/X11R7/include/freetype2\ -I/usr/pkg/include/harfbuzz\ -I/usr/pkg/include/gstreamer-1.0\ -I/usr/X11R7/include/libdrm CXX=c++ CXXFLAGS=-O2\ -fPIC\ -D_FORTIFY_SOURCE=2\ -DRELEASE_WITHOUT_OPTIMIZATIONS\ -march=i586\ -I/usr/pkg/include\ -I/usr/include\ -I/usr/pkg/include/python3.10\ -I/usr/pkg/include/glib-2.0\ -I/usr/pkg/include/gio-unix-2.0\ -I/usr/pkg/lib/glib-2.0/include\ -I/usr/X1
1R7/include\ -I/usr/X11R7/include/freetype2\ -I/usr/pkg/include/harfbuzz\ -I/usr/pkg/include/gstreamer-1.0\ -I/usr/X11R7/include/libdrm COMPILER_RPATH_FLAG=-Wl,-R F77=gfortran FC=gfortran FFLAGS=-O LANG=C LC_ALL=C LC_COLLATE=C LC_CTYPE=C LC_MESSAGES=C LC_MONETARY=C LC_NUMERIC=C LC_TIME=C LDFLAGS=-L/usr/pkg/gcc8/lib/gcc/i486--netbsdelf/8.5.0\ -Wl,-R/usr/pkg/gcc8/lib/gcc/i486--netbsdelf/8.5.0\ -Wl,-zrelro\ -L/usr/pkg/lib\ -L/usr/lib\ -Wl,-R/usr/lib\ -Wl,-R/usr/pkg/lib\ -L/usr/X11R7/lib\ -Wl,-R/usr/X11R7/lib LINKER_RPATH_FLAG=-R PATH=/scratch/work/www/webkit-gtk/work/.cwrapper/bin:/scratch/work/www/webkit-gtk/work/.buildlink/bin:/scratch/work/www/webkit-gtk/work/.tools/bin:/scratch/work/www/webkit-gtk/work/.gcc/bin:/usr/pkg/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/pkg/bin:/usr/X11R7/bin PREFIX=/usr/pkg MAKELEVEL=0 CONFIG_SITE= PKG_SYSCONFDIR=/usr/pkg/etc HOME=/scratch/work/www/webkit-gtk/work/.home CWRAPPERS_CONFIG_DIR=/scratch/work/www/webkit-gtk/work/.cwrapper/config
CPE_URI=cpe:2.3:a:webkit-gtk:webkit-gtk:2.36.8:::::netbsd9:x86:4
CPPFLAGS= -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/python3.10 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/gstreamer-1.0 -I/usr/X11R7/include/libdrm
FFLAGS=-O
GMAKE=GNU Make 4.4
HOMEPAGE=https://www.webkitgtk.org/
JPEG_DEFAULT=jpeg
LDFLAGS= -L/usr/pkg/gcc8/lib/gcc/i486--netbsdelf/8.5.0 -Wl,-R/usr/pkg/gcc8/lib/gcc/i486--netbsdelf/8.5.0 -Wl,-zrelro -L/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib
LICENSE=2-clause-bsd AND gnu-lgpl-v2
LOCALBASE=/usr/pkg
MACHINE_ARCH=i386
MACHINE_GNU_ARCH=i486
MAINTAINER=pkgsrc-users%NetBSD.org@localhost
MULTI=RUBY_VER=31 PYTHON_VERSION_REQD=310
NO_BIN_ON_CDROM=
NO_BIN_ON_FTP=
NO_SRC_ON_CDROM=
NO_SRC_ON_FTP=
OBJECT_FMT=ELF
OPSYS=NetBSD
OS_VERSION=9.0
PKGGNUDIR=gnu/
PKGINFODIR=info
PKGMANDIR=man
PKGPATH=www/webkit-gtk
PKGTOOLS_VERSION=20091115
PKG_OPTIONS=enchant opengl wayland
PKG_SYSCONFBASEDIR=/usr/pkg/etc
PKG_SYSCONFDIR=/usr/pkg/etc
PROVIDES=/usr/pkg/lib/libjavascriptcoregtk-4.0.so
PROVIDES=/usr/pkg/lib/libjavascriptcoregtk-4.0.so.18
PROVIDES=/usr/pkg/lib/libjavascriptcoregtk-4.0.so.18.20.12
PROVIDES=/usr/pkg/lib/libwebkit2gtk-4.0.so
PROVIDES=/usr/pkg/lib/libwebkit2gtk-4.0.so.37
PROVIDES=/usr/pkg/lib/libwebkit2gtk-4.0.so.37.56.12
PROVIDES=/usr/pkg/lib/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so
PYTHON_VERSION_DEFAULT=310
REQUIRES=/usr/X11R7/lib/libEGL.so.0
REQUIRES=/usr/X11R7/lib/libGL.so.3
REQUIRES=/usr/X11R7/lib/libICE.so.7
REQUIRES=/usr/X11R7/lib/libSM.so.7
REQUIRES=/usr/X11R7/lib/libX11-xcb.so.1
REQUIRES=/usr/X11R7/lib/libX11.so.7
REQUIRES=/usr/X11R7/lib/libXau.so.7
REQUIRES=/usr/X11R7/lib/libXcomposite.so.2
REQUIRES=/usr/X11R7/lib/libXcursor.so.2
REQUIRES=/usr/X11R7/lib/libXdamage.so.2
REQUIRES=/usr/X11R7/lib/libXdmcp.so.7
REQUIRES=/usr/X11R7/lib/libXext.so.7
REQUIRES=/usr/X11R7/lib/libXfixes.so.4
REQUIRES=/usr/X11R7/lib/libXi.so.7
REQUIRES=/usr/X11R7/lib/libXinerama.so.2
REQUIRES=/usr/X11R7/lib/libXrandr.so.3
REQUIRES=/usr/X11R7/lib/libXrender.so.2
REQUIRES=/usr/X11R7/lib/libXt.so.7
REQUIRES=/usr/X11R7/lib/libXxf86vm.so.2
REQUIRES=/usr/X11R7/lib/libdrm.so.3
REQUIRES=/usr/X11R7/lib/libepoxy.so.0
REQUIRES=/usr/X11R7/lib/libfontconfig.so.2
REQUIRES=/usr/X11R7/lib/libfreetype.so.19
REQUIRES=/usr/X11R7/lib/libgbm.so.1
REQUIRES=/usr/X11R7/lib/libglapi.so.1
REQUIRES=/usr/X11R7/lib/libpixman-1.so.2
REQUIRES=/usr/X11R7/lib/libxcb-dri2.so.0
REQUIRES=/usr/X11R7/lib/libxcb-glx.so.0
REQUIRES=/usr/X11R7/lib/libxcb-render.so.0
REQUIRES=/usr/X11R7/lib/libxcb-shm.so.0
REQUIRES=/usr/X11R7/lib/libxcb-sync.so.1
REQUIRES=/usr/X11R7/lib/libxcb-xfixes.so.0
REQUIRES=/usr/X11R7/lib/libxcb.so.2
REQUIRES=/usr/X11R7/lib/libxshmfence.so.1
REQUIRES=/usr/lib/libbz2.so.1
REQUIRES=/usr/lib/libc.so.12
REQUIRES=/usr/lib/libelf.so.2
REQUIRES=/usr/lib/libexecinfo.so.0
REQUIRES=/usr/lib/libexpat.so.2
REQUIRES=/usr/lib/libgcc_s.so.1
REQUIRES=/usr/lib/libintl.so.1
REQUIRES=/usr/lib/liblzma.so.2
REQUIRES=/usr/lib/libm.so.0
REQUIRES=/usr/lib/libpci.so.2
REQUIRES=/usr/lib/libpthread.so.1
REQUIRES=/usr/lib/librt.so.1
REQUIRES=/usr/lib/libsqlite3.so.1
REQUIRES=/usr/lib/libstdc++.so.9
REQUIRES=/usr/lib/libz.so.1
REQUIRES=/usr/pkg/gcc8/i486--netbsdelf/lib/./libstdc++.so.7
REQUIRES=/usr/pkg/lib/libatk-1.0.so.0
REQUIRES=/usr/pkg/lib/libatk-bridge-2.0.so.0
REQUIRES=/usr/pkg/lib/libatspi.so.0
REQUIRES=/usr/pkg/lib/libbrotlicommon.so.1
REQUIRES=/usr/pkg/lib/libbrotlidec.so.1
REQUIRES=/usr/pkg/lib/libcairo-gobject.so.2
REQUIRES=/usr/pkg/lib/libcairo.so.2
REQUIRES=/usr/pkg/lib/libdbus-1.so.3
REQUIRES=/usr/pkg/lib/libenchant-2.so.2
REQUIRES=/usr/pkg/lib/libepoll-shim.so.0
REQUIRES=/usr/pkg/lib/libffi.so.8
REQUIRES=/usr/pkg/lib/libfribidi.so.0
REQUIRES=/usr/pkg/lib/libgcrypt.so.20
REQUIRES=/usr/pkg/lib/libgdk-3.so.0
REQUIRES=/usr/pkg/lib/libgdk_pixbuf-2.0.so.0
REQUIRES=/usr/pkg/lib/libgio-2.0.so.0
REQUIRES=/usr/pkg/lib/libglib-2.0.so.0
REQUIRES=/usr/pkg/lib/libgmodule-2.0.so.0
REQUIRES=/usr/pkg/lib/libgobject-2.0.so.0
REQUIRES=/usr/pkg/lib/libgpg-error.so.0
REQUIRES=/usr/pkg/lib/libgraphite2.so.3
REQUIRES=/usr/pkg/lib/libgstapp-1.0.so.0
REQUIRES=/usr/pkg/lib/libgstaudio-1.0.so.0
REQUIRES=/usr/pkg/lib/libgstbase-1.0.so.0
REQUIRES=/usr/pkg/lib/libgstfft-1.0.so.0
REQUIRES=/usr/pkg/lib/libgstpbutils-1.0.so.0
REQUIRES=/usr/pkg/lib/libgstreamer-1.0.so.0
REQUIRES=/usr/pkg/lib/libgsttag-1.0.so.0
REQUIRES=/usr/pkg/lib/libgstvideo-1.0.so.0
REQUIRES=/usr/pkg/lib/libgtk-3.so.0
REQUIRES=/usr/pkg/lib/libharfbuzz-icu.so.0
REQUIRES=/usr/pkg/lib/libharfbuzz.so.0
REQUIRES=/usr/pkg/lib/libicudata.so.72
REQUIRES=/usr/pkg/lib/libicui18n.so.72
REQUIRES=/usr/pkg/lib/libicuuc.so.72
REQUIRES=/usr/pkg/lib/libidn2.so.0
REQUIRES=/usr/pkg/lib/libjpeg.so.9
REQUIRES=/usr/pkg/lib/liblcms2.so.2
REQUIRES=/usr/pkg/lib/libnotify.so.4
REQUIRES=/usr/pkg/lib/libpango-1.0.so.0
REQUIRES=/usr/pkg/lib/libpangocairo-1.0.so.0
REQUIRES=/usr/pkg/lib/libpangoft2-1.0.so.0
REQUIRES=/usr/pkg/lib/libpcre2-8.so.0
REQUIRES=/usr/pkg/lib/libpng16.so.16
REQUIRES=/usr/pkg/lib/libpsl.so.5
REQUIRES=/usr/pkg/lib/libsecret-1.so.0
REQUIRES=/usr/pkg/lib/libsoup-2.4.so.1
REQUIRES=/usr/pkg/lib/libtasn1.so.6
REQUIRES=/usr/pkg/lib/libunistring.so.5
REQUIRES=/usr/pkg/lib/libwayland-client.so.0
REQUIRES=/usr/pkg/lib/libwayland-cursor.so.0
REQUIRES=/usr/pkg/lib/libwayland-egl.so.1
REQUIRES=/usr/pkg/lib/libwayland-server.so.0
REQUIRES=/usr/pkg/lib/libwebp.so.7
REQUIRES=/usr/pkg/lib/libwebpdemux.so.2
REQUIRES=/usr/pkg/lib/libwoff2common.so.1.0.2
REQUIRES=/usr/pkg/lib/libwoff2dec.so.1.0.2
REQUIRES=/usr/pkg/lib/libxkbcommon.so.0
REQUIRES=/usr/pkg/lib/libxml2.so.2
REQUIRES=/usr/pkg/lib/libxslt.so.1
RESTRICTED=
_PLIST_IGNORE_FILES=
_USE_DESTDIR=user-destdir
Installed information:
automatic=yes
>How-To-Repeat:
Install port/i386 on a PIII T23 laptop, install Badwolf with pkgin, launch from terminal with 'badwolf'.
>Fix:
This is the commentary from Riastradh:
<Riastradh> Looks like it's coming from this:
<Riastradh> WallTime WallTime::now()
<Riastradh> {
<Riastradh> return fromRawSeconds(currentTime());
<Riastradh> }
<Riastradh> static inline double currentTime()
<Riastradh> {
<Riastradh> struct timespec ts { };
<Riastradh> clock_gettime(CLOCK_REALTIME, &ts);
<Riastradh> return static_cast<double>(ts.tv_sec) + ts.tv_nsec / 1'000'000'000.0;
<Riastradh> }
<Riastradh> and if this is built for `i386' (which, as a NetBSD port, really means >=i486DX), it shouldn't be using SSE2 instructions here; it should be using x87.
<Riastradh> hmm
<Riastradh> might be an uphill battle, though
<Riastradh> # Force SSE2 fp on x86 builds.
<Riastradh> if (WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING)
<Riastradh> WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-msse2 -mfpmath=sse)
<Riastradh> include(DetectSSE2)
<Riastradh> if (NOT SSE2_SUPPORT_FOUND)
<Riastradh> message(FATAL_ERROR "SSE2 support is required to compile WebKit")
<Riastradh> endif ()
<Riastradh> endif ()
<Riastradh> It does appear have a cross-compiling option that disables this, so maybe it's not a completely lost cause -- but I bet none of the SSE2-requiring stuff has runtime conditionals, so, for the sake of all 32-bit x86 systems of the past quarter century, pkgsrc might be better off not messing with this.
<Riastradh> yambo: file a PR, we can figure out how to deal with it
Home |
Main Index |
Thread Index |
Old Index