Add ipv6 hint
[linux_from_scratch_hints.git] / PREVIOUS_FORMAT / pth.txt
bloba92def2b2c2737629071abe9c42b36eff2c1dfff
1 TITLE:          pth library
2 LFS VERSION:    any
3 AUTHOR:         Randy Hron <rwhron (at) earthlink.net>
5 SYNOPSIS:
6         How to build pth library
8 HINT:
10 pth is a portable threading library from GNU.  It is an alternative to
11 glibc-linuxthreads.
14 Configure
15 ---------
17 This is the meat of the hint.   Here is what worked for me:
19 /configure --disable-nls --with-mctx-mth=sjlj --with-mctx-dsp=ssjlj --with-mctx-stk=sas
21 --disable-nls is up to you.  May not make any difference at all for pth.  I use it 
22 because I'm happy with the Common locale.
24 Make
25 ----
27 make && make test && make install
30 Why pth?
31 --------
33 Before:
35 ldd /usr/local/bin/mp3blaster
37         libvorbisfile.so.0 => /usr/local/lib/libvorbisfile.so.0 (0x4001f000)
38         libvorbis.so.0 => /usr/local/lib/libvorbis.so.0 (0x40024000)
39         libncurses.so.5 => /lib/libncurses.so.5 (0x4003a000)
40         libpthread.so.0 => /lib/libpthread.so.0 (0x4007d000)
41         libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x40091000)
42         libm.so.6 => /lib/libm.so.6 (0x400dc000)
43         libc.so.6 => /lib/libc.so.6 (0x400ff000)
44         libogg.so.0 => /usr/local/lib/libogg.so.0 (0x40222000)
45         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
47 root@rushmore:/usr/src/sources/m# ps aux|egrep 'mp3|VSZ'
48 USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
49 hrandoz  28961  0.1  0.2 10976 1508 tty5     S    19:09   0:00 mp3blaster
50 hrandoz  28962  0.0  0.2 10976 1508 tty5     S    19:09   0:00 mp3blaster
51 hrandoz  28963  0.0  0.2 10976 1508 tty5     S    19:09   0:00 mp3blaster
53 That's mp3blaster at startup.
55 Play a few big mp3's:
57 ps aux|egrep 'mp3|VSZ'
58 USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
59 hrandoz  28961  0.0  0.8 46356 4320 tty5     S    19:09   0:00 mp3blaster
60 hrandoz  28962  0.0  0.8 46356 4320 tty5     S    19:09   0:00 mp3blaster
61 hrandoz  28963  3.4  0.8 46356 4320 tty5     S    19:09   0:04 mp3blaster
62 hrandoz  28977  0.3  0.8 46356 4320 tty5     S    19:11   0:00 mp3blaster
65 See how the VSZ got big?
67 After:
68 ------
70 Recompile mp3blaster:
72 /configure --disable-nls --with-pthreads=no --with-pth=yes
75 ldd /usr/local/bin/mp3blaster
77         libvorbisfile.so.0 => /usr/local/lib/libvorbisfile.so.0 (0x4001f000)
78         libvorbis.so.0 => /usr/local/lib/libvorbis.so.0 (0x40024000)
79         libncurses.so.5 => /lib/libncurses.so.5 (0x4003a000)
80         libpth.so.14 => /usr/lib/libpth.so.14 (0x4007d000)
81         libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4008f000)
82         libm.so.6 => /lib/libm.so.6 (0x400da000)
83         libc.so.6 => /lib/libc.so.6 (0x400fd000)
84         libogg.so.0 => /usr/local/lib/libogg.so.0 (0x40220000)
85         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
88 Before playing anything:
90 USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
91 hrandoz  30442  0.0  0.2  2940 1504 tty5     S    19:16   0:00 mp3blaster
94 Note, there is only one thread.
96 After playing a bunch of songs:
98 root@rushmore:/usr/src/sources/m/mp3blaster-3.0# ps aux|egrep 'VSZ|mp3'
99 USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
100 hrandoz  30442  4.1  0.3  3004 1744 tty5     S    19:16   0:05 mp3blaster
102 Hey, it's much smaller.  :)
105 Note that under extreme load, mp3blaster skips more with pth than
106 glibc-linuxthreads.
108 Thu Jan  3 00:29:50 EST 2002