| Issue |
166420
|
| Summary |
Inappropriate use of -isystem to locate the LLVM-embedded siphash header file?
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
he32
|
I initially tried to report this problem to the rust folks, ref. [Rust issue 148450](https://github.com/rust-lang/rust/issues/148450) but I got redirected here since the claim is that this is really an "upstream LLVM" issue.
To explain where I'm coming from: In my efforts to keep the various rust targets on NetBSD built & running, I'm cross-building rust for the various targets on NetBSD/amd64 as a host. The monthly rust release tarballs contain an embedded version of LLVM which also needs to be cross-built. With the recent release of rust 1.91.0, I found a new problem which crops up.
Rust 1.90.0 has LLVM version 20.1.8 embedded.
Rust 1.91.0 has LLVM version 21.1.2 embedded.
In the cross-compilation setup I'm using, some of the compiler arguments have to be added to or transformed. In particular, `--sysroot=/target/root` needs to be added, and `-isystem /some/dir` is transformed to `-isystem =/some/dir` (to get the sysroot prepended), on the assumption that `-isystem` is used to indicate where the "system-supplied headers" are to be searched for (they may vary in important ways between different target systems). It then becomes problematic to use `-isystem` to point to a directory inside the LLVM source distribution, and in my opinion, the `-I` option should have been used in that case instead. The fatal build error I observed was:
```
/usr/pkgsrc/wip/rust191/work/rustc-1.91.0-src/src/llvm-project/llvm/lib/Support/SipHash.cpp:15:10: fatal error: siphash/SipHash.h: No such file or directory
#include "siphash/SipHash.h"
^~~~~~~~~~~~~~~~~~~
compilation terminated.
```
More details about the compiler invocation can be found in the rust issue referred to above.
I found a temporary hackish workaround by modifying my "gcc wrapper script" to rewrite this particular `-isystem` usage to use `-I` instead, but ... that should not have been required.
I have made a feeble attempt at locating where this particular `-isystem` comes from within the LLVM build system, but at least grep'ing for `isystem` reveals far too many occurrences to wade through, and also matching with `siphash` then gives me no matches. So some assistance from someone more versed in the LLVM build system would be much appreciated.
So ... can anyone help?
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs