• Bug#264920: file on mips needs too much memory (1/4)

    From Martin Michlmayr@1:229/2 to All on Thu Aug 12 19:50:07 2004
    From: [email protected]

    * Matthias Klose <[email protected]> [2004-08-11 16:07]:
    Noticed during gcc builds, that the calls to `file' during the gcc
    build (i.e. calls to dh_strip) need too much memory, 'file' eating
    up to 1GB of RAM. I didn't see this behaviour on other
    architectures.

    - fakeroot debian/rules binary-arch

    If I'm not totally mistaken, this looks like a fakeroot problem to me.
    I can run "file cpp-3.3" just fine, but "fakeroot file cpp-3.3"
    segfaults (and works on i386). During "fakeroot debian/rules
    binary-arch", dh_strip calls file which takes all memory. When I run "debian/rules binary-arch" as root, it works.

    I added "strace file" to dh_strip and get this when I run it with
    fakeroot:

    dh_strip -pcpp-3.3
    execve("/usr/bin/file", ["file", "cpp-3.3"], [/* 19 vars */]) = 0 uname({sys="Linux", node="denial.cyrius.com", ...}) = 0
    brk(0) = 0x10000290 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aac2000
    open("/usr/lib/libfakeroot/libfakeroot.so.0", O_RDONLY) = 3
    read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\36"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0755, st_size=29676, ...}) = 0
    old_mmap(NULL, 287760, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x2ab02000 mprotect(0x2ab08000, 263184, PROT_NONE) = 0
    old_mmap(0x2ab42000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2ab42000
    close(3) = 0
    open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/libfakeroot/libmagic.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/lib64/libfakeroot/libmagic.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
    stat64(0x7fff7160, 0x7fff7190) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3
    fstat64(3, {st_mode=S_IFREG|0644, st_size=11527, ...}) = 0
    old_mmap(NULL, 11527, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2aac3000
    close(3) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/usr/lib/libmagic.so.1", O_RDONLY) = 3
    read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\33"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0644, st_size=69404, ...}) = 0
    old_mmap(NULL, 327600, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x2ab49000 mprotect(0x2ab59000, 262064, PROT_NONE) = 0
    old_mmap(0x2ab89000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2ab89000
    close(3) = 0 open("/usr/lib/libfakeroot/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/usr/lib/libz.so.1", O_RDONLY) = 3
    read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\025"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0644, st_size=81560, ...}) = 0
    old_mmap(NULL, 339824, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x2ab99000 mprotect(0x2abac000, 262000, PROT_NONE) = 0
    old_mmap(0x2abeb000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12000) = 0x2abeb000
    close(3) = 0 open("/usr/lib/libfakeroot/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/libc.so.6", O_RDONLY) = 3
    read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\1PD"..., 512) = 512 lseek(3, 588, SEEK_SET) = 588
    read(3, "\0\0\0\4\0\0\0\20\0\0\0\1GNU\0\0\0\0\0\0\0\0\2\0\0\0\4"..., 32) = 32 fstat64(3, {st_mode=S_IFREG|0644, st_size=1693704, ...}) = 0
    old_mmap(NULL, 1874512, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x2abec000 mprotect(0x2ad69000, 313936, PROT_NONE) = 0
    old_mmap(0x2ada8000, 45056, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x17c000) = 0x2ada8000
    old_mmap(0x2adb3000, 10832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2adb3000
    close(3) = 0 open("/usr/lib/libfakeroot/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/libdl.so.2", O_RDONLY) = 3
    read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\16"..., 512) = 512
    lseek(3, 564, SEEK_SET) = 564
    read(3, "\0\0\0\4\0\0\0\20\0\0\0\1GNU\0\0\0\0\0\0\0\0\2\0\0\0\4"..., 32) = 32 fstat64(3, {st_mode=S_IFREG|0644, st_size=12240, ...}) = 0
    old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aac6000
    old_mmap(NULL, 272320, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x2adb6000 mprotect(0x2adb9000, 260032, PROT_NONE) = 0
    old_mmap(0x2adf8000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2000) = 0x2adf8000
    close(3) = 0
    munmap(0x2aac3000, 11527) = 0
    brk(0) = 0x10000290
    brk(0x10021290) = 0x10021290
    brk(0) = 0x10021290
    brk(0x10022000) = 0x10022000

    doko@denial:~/gcc-3.3-3.3.4$ file ./debian/cpp-3.3/usr/bin/cpp-3.3 ./debian/cpp-3.3/usr/bin/cpp-3.3: ELF 32-bit MSB MIPS-I executable, MIPS, version 1 (SYSV), for GNU/Linux 2.4.0, dynamically linked (uses shared libs), not stripped
    doko@denial:~/gcc-3.3-3.3.4$ fakeroot file ./debian/cpp-3.3/usr/bin/cpp-3.3 /usr/bin/fakeroot: line 148: 23964 Segmentation fault FAKEROOTKEY=$FAKEROOTKEY LD_LIBRARY_PATH="$PATHS" LD_PRELOAD="$LIB" "$@"

    doko@denial:~/gcc-3.3-3.3.4$ strace fakeroot file ./debian/cpp-3.3/usr/bin/cpp-3.3
    execve("/usr/bin/fakeroot", ["fakeroot", "file", "./debian/cpp-3.3/usr/bin/cpp-3.3"], [/* 12 vars */]) = 0
    uname({sys="Linux", node="denial.cyrius.com", ...}) = 0
    brk(0) = 0x1000cd20 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aac2000

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)