-
-
Notifications
You must be signed in to change notification settings - Fork 763
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incremental compilation for module not supported on gcc 14 #5022
Comments
on it, but i need to build a GCC 14 because archlinux haven't rolled out GCC 14 |
Using fedora rawhide docker image will suffice😋 |
try this docker image, https://github.com/waruqi/dockerfiles/blob/master/fedora/Dockerfile |
I need to try other things with GCC master branch (gcc std module) so I need compile it (well it's done, AUR packages make it easy) D |
mmmh seems like something is invalidating dependinfo of cppfiles
and seems like it's the mtime
|
function is_changed(dependinfo, opt)
print(dependinfo.files)
@waruqi any idea how we can have always the same order for dependfiles ? it's seems this is the root cause here
|
This is not the root cause, it doesn't depend on the order of the files, just that the mtime of the files has been changed. The root cause is that gcc14 generates some different dependency information. build/.deps/hello/linux/x86_64/release/src/main.cpp.o.d in gcc-13 build/.objs/hello/linux/x86_64/release/src/main.cpp.o: src/main.cpp
build/.objs/hello/linux/x86_64/release/src/main.cpp.o: hello.c++m
CXX_IMPORTS += hello.c++m build/.deps/hello/linux/x86_64/release/src/main.cpp.o.d in gcc-14 build/.objs/hello/linux/x86_64/release/src/main.cpp.o: src/main.cpp /tmp/.xmake995/240429/hello/src/main.cpp build/.gens/hello/linux/x86_64/release/rules/bmi/cache/modules/c83caa2b/hello.gcm
build/.objs/hello/linux/x86_64/release/src/main.cpp.o: hello.c++m
CXX_IMPORTS += hello.c++m so
but this file is always changed when doing incremental build.
About files order issues. Because result is a hashset. it returned a unstable-order dep files array. But we need not fix it.
|
Therefore, we should avoid re-generating the mapping file each time. |
see #5030 |
fix incremental compilation for gcc-14 #5022
Xmake Version
latest
Operating System Version and Architecture
Fedora with gcc 14
Describe Bug
Incremental compilation for module not supported
Expected Behavior
Incremental compilation for module work
Project Configuration
xmake f -c --yes
Additional Information and Error Logs
On gcc 14:
It means
p1689r5
is shipped in gcc 14. In gcc 13, we use the fallback deps scanner, so the incremental build work as expected.gcc 14:
fallback:
I debugged the code, but I'm not sure how xmake decides when to trigger a rebuild. Can anyone provide some insights?
The text was updated successfully, but these errors were encountered: