sync.stdatomic: add GCC 15/16 libatomic paths for TCC on Linux - #28044
sync.stdatomic: add GCC 15/16 libatomic paths for TCC on Linux#28044nepinhum wants to merge 2 commits into
Conversation
medvednikov
left a comment
There was a problem hiding this comment.
The Arch/EndeavourOS (x86_64-pc-linux-gnu) additions and the no-fallback compile/run regression test look appropriate. However, the amd64 path table still omits Debian/Ubuntu's x86_64-linux-gnu GCC layout, so this same GCC 15/16 linker failure remains on that distro family. I also noted a minor issue-reference correction in the test comment.
| $if amd64 { | ||
| // Redhat/CentOS: | ||
| #flag $when_first_existing('/usr/lib/gcc/x86_64-redhat-linux/6/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/7/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/8/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/9/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/10/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/11/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/12/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/13/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/14/libatomic.a') | ||
| #flag $when_first_existing('/usr/lib/gcc/x86_64-redhat-linux/6/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/7/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/8/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/9/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/10/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/11/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/12/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/13/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/14/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/15/libatomic.a','/usr/lib/gcc/x86_64-redhat-linux/16/libatomic.a') |
There was a problem hiding this comment.
Please add/restore the Debian/Ubuntu amd64 candidates here as well: /usr/lib/gcc/x86_64-linux-gnu/{6..16}/libatomic.a. GCC installs libatomic.a under this target triple on Debian-family x86_64 systems, and this block currently has no matching entry (unlike the arm64 block). Without those paths, the same __atomic_*_8 link failure remains on Debian/Ubuntu systems using GCC 15/16.
| } | ||
| ' | ||
|
|
||
| // This is a regression test for https://github.com/vlang/v/issues/28027 (and similar reports), |
|
Wanted to say sorry for the delay, I’m on vacation and only just got a chance to review the feedback. |
Fixes #28043
Also adds a regression test (vlib/sync/stdatomic/tcc_libatomic_linux_test.v) that builds and runs a small sync.stdatomic program with
-cc tcc -no-retry-compilation.v -cc tcc -no-retry-compilation -showcc -keepc run test.vincludes
/usr/lib/gcc/x86_64-pc-linux-gnu/16/libatomic.aand the program compiles and runs correctly
v test vlib/sync/stdatomic/all passv test vlib/v/cflag/passv fmt -verifyon changed filesv veton changed files