Bug report
Dale Gallagher <[email protected]> Fri, 25 Feb 2005 10:03:24 +0200
| Newsgroups | gmane.comp.web.fnord |
|---|---|
| Message-ID | <[email protected]> |
Hi Felix
I tried to build gatling, but didn't succeed, so I installed fnord. All
seemed to go well until fnord processes failed to exit and started
hogging memory. The entire build process is included below - I've only
included output where errors were indicated. fnord was serving plain
HTML content (off-line copy of cr.yp.to).
Let me know if you need anything else.
Upfront, I changed the following lines in httpd.c to the following:
#define CGI
/* #define NORMALIZE_HOST */
/* #define CHROOT */
N.B. same problem even with NORMALIZE_HOST and CHROOT defined
Details follow:
$ uname -a
Linux samadhi 2.6.9 #1 Sun Oct 31 18:31:06 PST 2004 i686 unknown unknown \
GNU/Linux
$ cd ~build
$ tar xjf ../src/dietlibc-0.28
$ cd dietlibc-0.28
$ make
..
$ su
# make install
install -d /opt/diet/lib-i386 /opt/diet/man/man1 /opt/diet/bin
install bin-i386/start.o /opt/diet/lib-i386/start.o
install -m 644 bin-i386/libm.a bin-i386/libpthread.a bin-i386/librpc.a \
bin-i386/liblatin1.a bin-i386/libcompat.a bin-i386/libcrypt.a \
/opt/diet/lib-i386
install -m 644 bin-i386/dietlibc.a /opt/diet/lib-i386/libc.a
install bin-i386/diet-i /opt/diet/bin/diet
install pic-i386/diet-dyn-i /opt/diet/bin/diet-dyn
install: cannot stat `pic-i386/diet-dyn-i': No such file or directory
make: [install] Error 1 (ignored)
install bin-i386/pstart.o bin-i386/libgmon.a bin-i386/dyn_start.o \
bin-i386/dyn_stop.o /opt/diet/lib-i386
install: cannot stat `bin-i386/pstart.o': No such file or directory
install: cannot stat `bin-i386/libgmon.a': No such file or directory
make: [install] Error 1 (ignored)
install pic-i386/libc.so /opt/diet/lib-i386/libc.so
install: cannot stat `pic-i386/libc.so': No such file or directory
make: [install] Error 1 (ignored)
install pic-i386/libpthread.so /opt/diet/lib-i386/libpthread.so
install: cannot stat `pic-i386/libpthread.so': No such file or directory
make: [install] Error 1 (ignored)
install pic-i386/libdl.so /opt/diet/lib-i386/libdl.so
install: cannot stat `pic-i386/libdl.so': No such file or directory
make: [install] Error 1 (ignored)
install pic-i386/libcompat.so /opt/diet/lib-i386/libcompat.so
install: cannot stat `pic-i386/libcompat.so': No such file or directory
make: [install] Error 1 (ignored)
install pic-i386/libm.so /opt/diet/lib-i386/libm.so
install: cannot stat `pic-i386/libm.so': No such file or directory
make: [install] Error 1 (ignored)
install pic-i386/dyn_start.o /opt/diet/lib-i386/dyn_dstart.o
install: cannot stat `pic-i386/dyn_start.o': No such file or directory
make: [install] Error 1 (ignored)
install pic-i386/dyn_stop.o /opt/diet/lib-i386/dyn_dstop.o
install: cannot stat `pic-i386/dyn_stop.o': No such file or directory
make: [install] Error 1 (ignored)
install pic-i386/dstart.o pic-i386/dyn_so_start.o /opt/diet/lib-i386
install: cannot stat `pic-i386/dstart.o': No such file or directory
install: cannot stat `pic-i386/dyn_so_start.o': No such file or directory
make: [install] Error 1 (ignored)
install -m 644 diet.1 /opt/diet/man/man1/diet.1
if test -f pic-i386/libc.so -a ! -f /etc/diet.ld.conf; then echo \
"/opt/diet/lib-i386" > /etc/diet.ld
.conf; fi
for i in `find include -name \*.h`; do install -m 644 -D $i \
/opt/diet/$i; done
# ln -s /opt/diet/bin/diet diet
# logout
$ cd ..
$ tar xjf ../src/fnord-1.9.tar.bz2
$ cd fnord-1.9
$ vim httpd.c
Changed lines to the following:
#define CGI
/* #define NORMALIZE_HOST */
/* #define CHROOT */
$ make
diet -Os gcc -pipe -Os -fomit-frame-pointer -c httpd.c \
-DFNORD=\"fnord/1.9\"
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c buffer_1.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c buffer_puts.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c buffer_flush.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c buffer_put.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c buffer_putulong.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c buffer_2.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c buffer_putspace.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c buffer_stubborn.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c buffer_putflush.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c str_copy.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c fmt_ulong.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c byte_diff.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c byte_copy.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c str_len.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c str_diff.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c str_chr.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c str_diffn.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c str_start.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -pipe -Os -fomit-frame-pointer -c scan_ulong.c
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
ar cru libowfat.a httpd.o buffer_1.o buffer_puts.o buffer_flush.o \
buffer_put.o buffer_putulong.o buffer_2.o buffer_putspace.o \
buffer_stubborn.o buffer_putflush.o str_copy.o fmt_ulong.o \
byte_diff.o byte_copy.o str_len.o str_diff.o str_chr.o str_diffn.o \
str_start.o scan_ulong.o
ranlib libowfat.a
diet -Os gcc -o httpd httpd.o libowfat.a -Os -fomit-frame-pointer
/opt/diet/lib-i386/libc.a(__sendfile64.o)(.text+0x80): In function \
`sendfile64':
: warning: sendfile is not portable
/opt/diet/lib-i386/libc.a(__sendfile64.o): warning: sendfile64 is not \
portable
cp -p httpd fnord
strip -R .note -R .comment fnord
diet -Os gcc -pipe -Os -fomit-frame-pointer -c httpd.c -o httpd-cgi.o \
-DCGI -DFNORD=\"fnord/1.9\"
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
httpd.c:28:1: warning: "CGI" redefined
<command line>:4:1: warning: this is the location of the previous \
definition
diet -Os gcc -o fnord-cgi httpd-cgi.o libowfat.a -Os \
-fomit-frame-pointer
/opt/diet/lib-i386/libc.a(__sendfile64.o)(.text+0x80): In function \
`sendfile64':
: warning: sendfile is not portable
/opt/diet/lib-i386/libc.a(__sendfile64.o): warning: sendfile64 is not \
portable
strip -R .note -R .comment fnord-cgi
diet -Os gcc -pipe -Os -fomit-frame-pointer -c httpd.c -o httpd-idx.o \
-DDIR_LIST -DFNORD=\"fnord/1.9\"
cc1: warning: -malign-loops is obsolete, use -falign-loops
cc1: warning: -malign-jumps is obsolete, use -falign-jumps
cc1: warning: -malign-functions is obsolete, use -falign-functions
diet -Os gcc -o fnord-idx httpd-idx.o libowfat.a -Os \
-fomit-frame-pointer
/opt/diet/lib-i386/libc.a(__sendfile64.o)(.text+0x80): In function \
`sendfile64':
: warning: sendfile is not portable
/opt/diet/lib-i386/libc.a(__sendfile64.o): warning: sendfile64 is not \
portable
strip -R .note -R .comment fnord-idx
$ su
# install fnord /usr/local/bin/
# cat /service/fnord/run
#!/bin/sh
echo "Starting"
ROOT=`head -1 ./env/ROOT`
USER=`head -1 ./env/USER`
PORT=`head -1 ./env/PORT`
CONN=`head -1 ./env/CONN`
cd $ROOT
exec tcpserver -DPHRv -c $CONN -l 0 0 ${PORT} \
setuidgid ${USER} /usr/local/bin/fnord 2>&1
I had to place 'setuidgid' before invoking fnord, otherwise it runs as
root only!
# gcc -v
Reading specs from /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/specs
Configured with: ../gcc-3.3.4/configure --prefix=/usr --enable-shared \
--enable-threads=posix --enable-__cxa_atexit --disable-checking \
--with-gnu-ld --verbose --target=i486-slackware-linux \
--host=i486-slackware-linux
Thread model: posix
gcc version 3.3.4