mkdir tdi
cd tdi
wget http://www.informatik.hu-berlin.de/~mueller/ftp/pub/PART/pthreads.tar.gz
wget http://www.informatik.hu-berlin.de/~mueller/ftp/pub/mueller/software/gdb-4.18-TDI-04.patch
wget http://www.informatik.hu-berlin.de/~mueller/ftp/pub/mueller/software/TDI-alpha-release-4.tgz
wget ftp://ftp/pub/gnu/gdb/gdb-4.18.tar.gz
mkdir lib
mkdir include

tar xzf TDI*
cd TDI
./configure --prefix=`pwd`/..
make
make install
cd ..

tar xzf gdb-4.18.tar.gz 
patch -p 0 < gdb-4.18-TDI-04.patch 
cd gdb-4.18
./configure --enable-TDI
make
cd ..

tar xzf pthreads.tar.gz
cd threads/src
./configure
#make
cd ..

mkdir tests
cd tests
cp ~mueller/threads/tests/Makefile .
cp ~mueller/threads/tests/create_thread.c .
edit Makefile:
# Linux: add -rdynamic -ldl in 2nd $(CC) ...
# SunOS: add -ldl in 2nd $(CC) ...
make create_thread

for csh/tcsh:
  setenv LD_LIBRARY_PATH ../../lib/:$LD_LIBRARY_PATH
for bash:
  export LD_LIBRARY_PATH=../../lib/:$LD_LIBRARY_PATH
../../gdb-4.18/gdb/gdb create_thread
b 22
b 27
r
info pthreads (SEGV on SunOS 4.1.x/Linux, skip this, continue below)
c
info pthreads
where
ptstack 3 [or "ptstack x" if x is main] (IOT trap on SunOS 4.1.x in gdb)
c -cs (SEGV on SunOS w/o ptstack, but OK if "n","i pt","c")
info pthreads
c
q

modified in alpha-3:
threads/src/tdi-dl.c
gdb-4.18/gdb/pthread.c
TDI/Server/configure.in
TDI/Server/Makefile.in
TDI/Server/tdi-dlgen
TDI/Client/configure.in
TDI/Client/Makefile.in

reasons for changes in threads/src/tdi-dl.c:
- SunOS libdl doesn't check LD_LIBRARY_PATH -> dlopen w/ abs pathname
- ifdef TDI_STATIC ensures load_TDI_Server even for STATIC binding

modified in alpha-4:
threads/src/internals.h
threads/src/pthread.c
threads/src/signal.c
 . add suspension of currently running thread (via SIGALRM)
threads/src/tdi-dl.c
TDI/Server/tdi-server.c
 . SOLARIS fix to allow reference of static sym. from dyn. lib (Solaris bug?)
TDI/Server/tdi-access.c
 . bug fix: fall back onto ShortResult if calloc for WholeResult fails
gdb-4.18/gdb/pthread.c
 . fix SEGV: no make_run_cleanup if pthread_init present
 . fix deleted user breakpoints: avoid "delete" command for all breakpoints
 . add "continue -addcs"


-- gdb-tdi_0.4-1.deb:
cd ~/
mkdir tdi-deb
cd tdi-deb
wget gdb-tdi_0.4-1.deb
dpkg-deb -e gdb-tdi_0.4-1.deb 
dpkg-deb -x gdb-tdi_0.4-1.deb .
cp ../tdi/gdb-4.18/gdb/gdb usr/bin/gdb-tdi
cp ../tdi/lib/libTDI* usr/lib/
du usr -> edit DEBIAN/control: Installed-Size: ..., Version: 0.x
rm DEBIAN/control~
chgrp root DEBIAN
chmod 755 DEBIAN
dpkg -b . ../gdb-tdi_0.4-1.deb 
as user on eiche: cp gdb-tdi_0.4-1.deb ~/.public_html/ftp/pub/mueller/software/
cd ..
rm -fr tdi-deb

-- gdb-tdi-0.4-2.i386.rpm:
rlogin weide -l frank
su
cp ~/tdi-deb/gdb-tdi_0.4-1.deb .
alien -r gdb-tdi_0.4-1.deb
rm gdb-tdi_0.4-1.deb
on eiche: cp /vol/weide-vol2/mueller/gdb-tdi-0.4-2.i386.rpm ~/.public_html/ftp/pub/mueller/software/
rm *.deb *.rpm

-- gdb-tdi_0.4-1-solaris2.tgz
mkdir -p usr/local/bin
cd usr/local/
ln -s ../../lib/ .
cd bin/
ln -s ../../../gdb-4.18/gdb/gdb gdb-tdi
cd ../../..
tar chvzf gdb-tdi_0.4-1-solaris2.tgz usr
cp gdb-tdi_0.4-1-solaris2.tgz ~/.public_html/ftp/pub/mueller/software/

-- gdb-tdi_0.4-1-sunos41.tgz
mkdir -p usr/local/bin
cd usr/local/
ln -s ../../lib/ .
cd bin/
ln -s ../../../gdb-4.18/gdb/gdb gdb-tdi
cd ../../..
tar chvzf gdb-tdi_0.4-1-sunos41.tgz usr
cp gdb-tdi_0.4-1-sunos41.tgz ~/.public_html/ftp/pub/mueller/software/

