hfinkel added a comment.

In https://reviews.llvm.org/D47849#1184388, @Hahnfeld wrote:

> In https://reviews.llvm.org/D47849#1184367, @hfinkel wrote:
>
> > The problem is that the inline assembly might actually be for the target, 
> > instead of the host, because we also have target preprocessor macros 
> > defined, and it's going to be hard to tell. I'm not sure that there's a 
> > great solution here, and I agree that having something more general than 
> > undefining some specific things that happen to matter for math.h would be 
> > better. As you point out, this is not just a system-header problem. We 
> > might indeed want to undefine all of the target-feature-related macros 
> > (although that won't always be sufficient, because we need basic arch 
> > macros for the system headers to work at all, and those are generally 
> > enough to guard some inline asm).
>
>
> I think there was a reason for pulling in the host defines. I'd have to look 
> at the commit message though...


As I recall, it's mostly to make glibc's bits/wordsize.h work.

> 
> 
>> Maybe the following makes sense: Only define the host macros, minus 
>> target-feature ones, when compiling for the target in the context of the 
>> system headers. That makes the system headers work while providing a "clean" 
>> preprocessor environment for the rest of the code (and, thus, retains our 
>> ability to complain about bad inline asm).
> 
> I'm not sure how that's going to help with Eigen: Just including `Eigen/Core` 
> will pull in the other header file I mentioned with inline assembly. That's 
> completely independent of preprocessor macros, I think it's enough the 
> library's build system detected the host architecture during install.

I don't see any good way to satisfy Eigen in that form. I think that we'll need 
to update it to understand not to use host inline as when compiling for a 
target.


Repository:
  rC Clang

https://reviews.llvm.org/D47849



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to