Bug#1057838: clang-17: c++ include dir from sysroot unexpectedly in include paths when in wasm c mode
Sylvestre Ledru
sylvestre at debian.org
Fri Dec 15 13:00:55 GMT 2023
+Faidon
Le 15/12/2023 à 13:15, Israel Galadima a écrit :
> Dear Maintainers,
>
> I have looked further into this and I think these lines in the patch
> file at debian/patches/wasm/wasm-sysroot-usr.diff
> are responsible.
>
> 40 + if (!getDriver().SysRoot.empty()) {
> 41 + // Second add the generic one.
> 42 + addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" +
> Version);
> 43 + // Third the backward one.
> 44 + addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" +
> Version + "/backward");
> 45 + }
>
> The above lines are adding c++ include paths in the
> method (WebAssembly::AddClangSystemIncludeArgs)
> for adding only system/c include paths.
> I think the c++ include paths should only be added in the methods for
> adding
> libc++ (WebAssembly::addLibCxxIncludePaths) or libstdc++
> (WebAssembly::addLibStdCXXIncludePaths) include
> paths.
>
> Some context on why I need this fixed. I'm updating emscripten in
> Debian and need to
> provide pre-compiled libraries to the end user. However, when
> compiling c files in compiler-rt
> that include stdatomic.h, an issue arises. The system's stdatomic.h
> file uses an include_next
> to select any other stdatomic.h it finds in the include paths, and
> since there's another stdatomic.h [1]
> in the c++ include path of the emscripten sysroot, it gets selected.
> Ideally, the other stdatomic.h
> shouldn't be seen, but when compiling c files, clang-17 wrongly adds
> the c++ include directory from
> the emscripten sysroot to the include paths which causes the conflict.
>
> 1.
> https://github.com/emscripten-core/emscripten/blob/main/system/lib/libcxx/include/stdatomic.h
>
>
> _______________________________________________
> Pkg-llvm-team mailing list
> Pkg-llvm-team at alioth-lists.debian.net
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-llvm-team
More information about the Pkg-llvm-team
mailing list