Repository navigation
Closed as duplicate
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behaviorzig ccZig as a drop-in C compiler featureZig as a drop-in C compiler feature
Description
Zig Version
0.11.0
Steps to Reproduce and Observed Behavior
β― echo "#include <test.h>" > test.c
β― mkdir -p sys/usr/include
β― touch sys/usr/include/test.h
β― gcc --sysroot=$PWD/sys test.c -shared
β― clang --sysroot=$PWD/sys test.c -shared
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: cannot find libgcc_s.so.1: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)
β― zig cc --sysroot=$PWD/sys test.c -shared
test.c:1:10: fatal error: 'test.h' file not found
#include <test.h>
^~~~~~~~
1 error generated.(The linker errors when using non-Zig clang are irrelevant; the important point is that the #include works.)
Extra context:
β― gcc --sysroot=$PWD/sys -E -Wp,-v - < /dev/null
ignoring nonexistent directory "/home/alexrp/Source/tests/sys/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/home/alexrp/Source/tests/sys/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/home/alexrp/Source/tests/sys/usr/include/x86_64-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/13/include
/home/alexrp/Source/tests/sys/usr/include
End of search list.
# 0 "<stdin>"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "<stdin>"
β― clang --sysroot=$PWD/sys -E -Wp,-v - < /dev/null
clang -cc1 version 16.0.6 based upon LLVM 16.0.6 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/home/alexrp/Source/tests/sys/usr/local/include"
ignoring nonexistent directory "/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/home/alexrp/Source/tests/sys/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/llvm-16/lib/clang/16/include
/home/alexrp/Source/tests/sys/usr/include
End of search list.
# 1 "<stdin>"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 374 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "<stdin>" 2
β― zig cc --sysroot=$PWD/sys -E -Wp,-v - < /dev/null
clang -cc1 version 16.0.6 based upon LLVM 16.0.6 default target x86_64-linux-musl
ignoring nonexistent directory "/home/alexrp/Source/tests/sys/usr/local/include"
ignoring nonexistent directory "/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/home/alexrp/Source/tests/sys/include"
ignoring nonexistent directory "/opt/lib/clang/16/include"
#include "..." search starts here:
#include <...> search starts here:
/home/alexrp/Source/tests/sys/usr/include
End of search list.
# 1 "<stdin>"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 375 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "<stdin>" 2Expected Behavior
No preprocessor error.
Metadata
Metadata
Assignees
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behaviorzig ccZig as a drop-in C compiler featureZig as a drop-in C compiler feature
Activity
alexrp commentedon Apr 12, 2024
I don't use this option frequently so it's entirely possible I'm just misunderstanding how it's meant to be used. From reading relevant man pages, it seems like this should work though.
kassane commentedon Apr 13, 2024
Have you tried using
-isystemfor include?Does the same error occur on the master?
alexrp commentedon Apr 14, 2024
Yes, that's one way to work around it in my case, although it doesn't have the same general semantics.
Yes (
0.12.0-dev.3644+05d975576).alexrp commentedon Jan 31, 2025
Closing in favor of #22704.