[LLVMbugs] Compile error on 64-bit x86 Solaris

Chris Lattner sabre at nondot.org
Wed Oct 24 10:21:54 PDT 2007

On Wed, 24 Oct 2007, Dale Johannesen wrote:
>> Now, the problem is that the system header <sys/regset.h> gets
>> included which contains the following #defines:
>> #define CS              15
>> #define DS              3
>> (among others).  The LLVM code uses very much both of those names
>> which results in a buch of compiler errors similar to the above.
> Those names are in the user namespace; it is incorrect for <signal.h>
> to be defining them.  Any chance of getting your headers fixed?

Two things:
1. Only .cpp files in lib/System should include <signal.h>.  If there are
    others, we should eliminate them and move the system-specific
    functionality there.
2. Assuming that you can't change solaris :), it would be fine to do this:

#include <signal.h>
#undef CS  // hack for broken solaris headers
#undef DS  // hack for broken solaris headers

This is clearly ugly if spread through the source tree, which is why #1 is 
important :)



More information about the llvm-bugs mailing list