Skip to content

--fp-type causes SIGILL with i386 Linux and old Clang #1344

@infrastation

Description

@infrastation

Whilst testing various things on an old Pentium 3 PC, I noticed that Clang build of tcpdump cannot be tested. The OS is Debian 6.0.10. The kernel is supported, at least on paper. If this problem is not worth fixing, it would be useful at least to document it. Remote access can be provided if necessary.

kernel 1: Linux debian6-32bit 2.6.32-5-486 #1 Tue May 13 16:15:32 UTC 2014 i686 GNU/Linux
kernel 2: Linux debian6-32bit 2.6.32-5-686 #1 SMP Tue May 13 16:33:32 UTC 2014 i686 GNU/Linux

$ gcc --version
gcc (Debian 4.4.5-8) 4.4.5
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ make check
./tests/TESTrun
./tcpdump --fp-type => 2
./tcpdump --time-t-size => 32
[...]

$ clang --version
clang version 1.1 (Debian 2.7-3)
Target: i386-pc-linux-gnu
Thread model: posix

$ make check
./tests/TESTrun
ERROR: piping tcpdump --fp-type failed at close
make: *** [check] Error 255

$ ./tcpdump --fp-type
Illegal instruction

# try with GDB
Program received signal SIGILL, Illegal instruction.
0x0804a40b in float_type_check () at fptype.c:49
49		printf("%.3f\n", f.f*8/1000000);
(gdb) bt
#0  0x0804a40b in float_type_check () at fptype.c:49
#1  0x0804b219 in main () at tcpdump.c:2116

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions