[LLVMbugs] Compile error on 64-bit x86 Solaris

Zeljko Vrba zvrba at ifi.uio.no
Wed Oct 24 11:06:49 PDT 2007


On Wed, Oct 24, 2007 at 10:52:59AM -0700, Chris Lattner wrote:
> On Wed, 24 Oct 2007, Zeljko Vrba wrote:
> >No, the problem is a "bit" more complicated: other LLVM files include
> >headers *other than* <signal.h>, and those headers in turn include
> ><signal.h>.  Grepping shows that <signal.h> is included only from the
> >following files:
> 
> Ok, which ones are we talking about?
> 
Here's the chain of includes (dumped by -H option to g++) that leads
to the inclusion of ucontext.h header (each . is an include depth):

. /home/zvrba/llvm-2.1/include/llvm/Assembly/PrintModulePass.h
.. /home/zvrba/llvm0.1/include/llvm/Pass.h
... /home/zvrba/llvm-2.1/include/llvm/Support/Streams.h
... /opt/gcc42/lib/gcc/i386-pc-solaris2.10/4.2.2/../../../../include/c++/4.2.2/vector
.... /opt/gcc42/lib/gcc/i386-pc-solaris2.10/4.2.2/../../../../include/c++/4.2.2/bits/stl_algoba
..... /opt/gcc42/lib/gcc/i386-pc-solaris2.10/4.2.2/../../../../include/c++/4.2.2/climits
...... /opt/gcc42/lib/gcc/i386-pc-solaris2.10/4.2.2/include/limits.h
....... /opt/gcc42/lib/gcc/i386-pc-solaris2.10/4.2.2/include/syslimits.h
........ /opt/gcc42/lib/gcc/i386-pc-solaris2.10/4.2.2/include/limits.h
......... /usr/include/limits.h
.......... /usr/include/iso/limits_iso.h
..... /opt/gcc42/lib/gcc/i386-pc-solaris2.10/4.2.2/../../../../include/c++/4.2.2/cstdlib
...... /usr/include/stdlib.h
....... /usr/include/iso/stdlib_iso.h
....... /usr/include/iso/stdlib_c99.h
....... /usr/include/sys/wait.h
........ /usr/include/sys/resource.h
........ /usr/include/sys/siginfo.h
......... /usr/include/sys/machsig.h
.......... /usr/include/vm/faultcode.h
........ /usr/include/sys/procset.h
......... /usr/include/sys/signal.h
.......... /usr/include/sys/iso/signal_iso.h
.......... /usr/include/sys/ucontext.h
........... /usr/include/sys/regset.h
............ /usr/include/sys/privregs.h
............. /usr/include/ia32/sys/privregs.h
.............. /usr/include/sys/controlregs.h
........... /usr/include/sys/signal.h

<stdlib.h> includes <sys/wait.h> which in turn includes everything up to and
including <sys/ucontext.h>.  The inclusion of <sys/wait.h> in <stdlib.h> is
guarded by

#if defined(__EXTENSIONS__) || defined(_XPG4)
#include <sys/wait.h>
#endif




More information about the llvm-bugs mailing list