Re: Bug#661283: cmor: FTBFS on kfreebsd-amd64
Hi,
Building cmor 2.8.0-2 fails for me in exactly the same place but with
different error codes. This is kfreebsd-i386 with up-to-date Wheezy,
running in VirtualBox limited to 512MiB RAM and no swap:
> GNU C (Debian 4.6.2-12) version 4.6.2 (i486-kfreebsd-gnu)
> compiled by GNU C version 4.6.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
> warning: GMP header version 5.0.2 differs from library version 5.0.4.
> GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=63924
> Compiler executable checksum: 4df8d7c1419473a950dfe25eff95f5f2
> COLLECT_GCC_OPTIONS='-v' '-D' '_FORTIFY_SOURCE=2' '-I' 'include' '-I' 'include/cdTime' '-L/usr/lib' '-I' '/usr/include' '-L.' '-I' '/usr/include/ossp' '-o' 'ipcc_test_code' '-mtune=generic' '-march=i586'
> as --32 -o /tmp/cculu0Td.o /tmp/ccwmv5NU.s
> COMPILER_PATH=/usr/lib/gcc/i486-kfreebsd-gnu/4.6/:/usr/lib/gcc/i486-kfreebsd-gnu/4.6/:/usr/lib/gcc/i486-kfreebsd-gnu/:/usr/lib/gcc/i486-kfreebsd-gnu/4.6/:/usr/lib/gcc/i486-kfreebsd-gnu/
> LIBRARY_PATH=/usr/lib/gcc/i486-kfreebsd-gnu/4.6/:/usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../i386-kfreebsd-gnu/:/usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../:/lib/i386-kfreebsd-gnu/:/lib/:/usr/lib/i386-kfreebsd-gnu/:/usr/lib/
> COLLECT_GCC_OPTIONS='-v' '-D' '_FORTIFY_SOURCE=2' '-I' 'include' '-I' 'include/cdTime' '-L/usr/lib' '-I' '/usr/include' '-L.' '-I' '/usr/include/ossp' '-o' 'ipcc_test_code' '-mtune=generic' '-march=i586'
> /usr/lib/gcc/i486-kfreebsd-gnu/4.6/collect2 --build-id --no-add-needed --eh-frame-hdr -m elf_i386_fbsd --hash-style=both -dynamic-linker /lib/ld.so.1 -o ipcc_test_code /usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../i386-kfreebsd-gnu/crt1.o /usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../i386-kfreebsd-gnu/crti.o /usr/lib/gcc/i486-kfreebsd-gnu/4.6/crtbegin.o -L/usr/lib -L. -L/usr/lib/gcc/i486-kfreebsd-gnu/4.6 -L/usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../i386-kfreebsd-gnu -L/usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../.. -L/lib/i386-kfreebsd-gnu -L/usr/lib/i386-kfreebsd-gnu -lnetcdf /tmp/cculu0Td.o -lcmor -lnetcdf -ludunits2 -lossp-uuid -lm -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i486-kfreebsd-gnu/4.6/crtend.o /usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../i386-kfreebsd-gnu/crtn.o
> collect2: ld terminated with signal 9 [Killed]
> /bin/sh: 1: ./ipcc_test_code: not found
> make[1]: *** [test_C] Error 127
> make[1]: Leaving directory `/home/steven/cmor-2.8.0'
> dh_auto_test: make -j1 test returned exit code 2
> make: *** [build] Error 2
The linker is killed by OOM-killer, so I also get this in dmesg:
> pid 43009 (ld.bfd.real), uid 1000, was killed: out of swap space
With ktrace/kdump I managed to find this:
> 43009 ld.bfd.real CALL open(0x8176420,O_RDONLY|O_LARGEFILE,<unused>0)
> 43009 ld.bfd.real NAMI "./libcmor.a"
> 43009 ld.bfd.real RET open 9
> 43009 ld.bfd.real CALL fcntl(0x9,<invalid=1>,0)
> 43009 ld.bfd.real RET fcntl 0
> 43009 ld.bfd.real CALL fcntl(0x9,<invalid=2>,FD_CLOEXEC)
> 43009 ld.bfd.real RET fcntl 0
> 43009 ld.bfd.real CALL fstat(0x9,0xbfbfdaf0)
> 43009 ld.bfd.real STRU struct stat {dev=63, ino=147868, mode=-rw-r--r-- , nlink=1, uid=1000, gid=1000, rdev=638888, atime=1330751447, stime=1330751447, ctime=1330751447, birthtime=1330751447, size=978830, blksize=16384, blocks=1952, flags=0x0 }
> 43009 ld.bfd.real RET fstat 0
> 43009 ld.bfd.real CALL mmap(0,0x4000,PROT_READ|PROT_WRITE,MAP_ANON|MAP_TYPE|MAP_PRIVATE,0xffffffff,0,0)
> 43009 ld.bfd.real RET mmap 674934784/0x283ab000
...many more reads...
> 43009 ld.bfd.real RET read 16384/0x4000
> 43009 ld.bfd.real CALL read(0x9,0x283a3000,0x4000)
> 43009 ld.bfd.real GIO fd 9 read 4096 bytes
> 43009 ld.bfd.real RET read 16384/0x4000
> 43009 ld.bfd.real CALL lseek(0x9,0x44000,SEEK_SET,0)
> 43009 ld.bfd.real RET lseek 278528/0x44000
> 43009 ld.bfd.real CALL lseek(0x9,0x44000,SEEK_SET,0)
> 43009 ld.bfd.real RET lseek 278528/0x44000
> 43009 ld.bfd.real CALL mmap(0,0x29fa3000,PROT_READ|PROT_WRITE,MAP_ANON|MAP_TYPE|MAP_PRIVATE,0xffffffff,0,0)
> 43009 ld.bfd.real RET mmap 675033088/0x283c3000
> 43009 ld.bfd.real PSIG SIGKILL SIG_DFL
It is trying to map a range 0->0x29fa3000 = ~671MiB bytes which is why
it fails in my VM which has only 512MiB RAM. The value being requested
as length here appears to be a pointer.
Jakub Wilk wrote:
> FWIW, I can't reproduce this failure on asdfasdf.debian.net.
Maybe it just had more available RAM than the buildds?
Regards,
--
Steven Chamberlain
steven@pyro.eu.org
Reply to: