bug#57109: arm-none-eabi-toolchain atomic support is broken
> Jean Pierre De Jesus DIAZ via Bug reports for GNU Guix > writes: > > > The following works though. No newlib or anything: > > > > guix shell --expression='((@ (gnu packages cross-base) cross-gcc) > > "arm-none-eabi")' -- \ > >bash -c "echo '#include ' \ > > | arm-none-eabi-gcc -x c -o /dev/null -c -" > > > > > > â > > Jean-Pierre De Jesus DIAZ > > The reason this works is that the stdatomic.h is used from gcc itself, instead of the stdatomic.h coming from newlib. It works even with the arm-none-eabi gcc's coming from `gnu packages embedded`. The newlib one seems to be broken, though I am unable to find any discussion on newlib's part. I've tried toolchain coming from developer.arm.com directly (through nixpkgs that packages the binaries) and found out that they use stdatomic.h coming from gcc even in full toolchain. The problem in the Guix ones is that since those use CROSS_C_INCLUDE_PATH. The paths here get priority to the ones coming from gcc itself. This then means the newlib stdatomic.h shadows the one coming from (arm-none-eabi-)gcc:lib. The toolchain from developer.arm.com does not have this issue, since it relies on the paths directly from gcc, having the one with newlib as last. When I try directly including stdatomic.h from newlib, I also get this error even with that toolchain. A solution could be to prepend the include path from gcc:lib into the CROSS_C_INCLUDE_PATH to make it take priority, and prefer the packages coming from there, or to stop relying on the env vars. See the toolchain from Nix, the one not using env vars: ``` #include <...> search starts here: /nix/store/v9njly0h3i308dgyxzcqb6lqf71q8mkl-gcc-arm-embedded-12.3.rel1/bin/../lib/gcc/arm-none-eabi/12.3.1/include /nix/store/v9njly0h3i308dgyxzcqb6lqf71q8mkl-gcc-arm-embedded-12.3.rel1/bin/../lib/gcc/arm-none-eabi/12.3.1/include-fixed /nix/store/v9njly0h3i308dgyxzcqb6lqf71q8mkl-gcc-arm-embedded-12.3.rel1/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/include ``` See Guix one: ``` #include <...> search starts here: /gnu/store/h5jxagsf8236ff3lbfcd4yk1qhk2bs4p-profile/arm-none-eabi/include /gnu/store/pjc5ysriqs6w99ihkza7xgwm8clfpgp0-gcc-cross-sans-libc-arm-none-eabi-7-2018-q2-update-1.261907-lib/lib/gcc/arm-none-eabi/7.3.1/include /gnu/store/pjc5ysriqs6w99ihkza7xgwm8clfpgp0-gcc-cross-sans-libc-arm-none-eabi-7-2018-q2-update-1.261907-lib/lib/gcc/arm-none-eabi/7.3.1/include-fixed ``` Regards, Rutherther
bug#57109: arm-none-eabi-toolchain atomic support is broken
Jean Pierre De Jesus DIAZ via Bug reports for GNU Guix writes: > The following works though. No newlib or anything: > > guix shell --expression='((@ (gnu packages cross-base) cross-gcc) > "arm-none-eabi")' -- \ >bash -c "echo '#include ' \ > | arm-none-eabi-gcc -x c -o /dev/null -c -" > > > — > Jean-Pierre De Jesus DIAZ > > > --- Original Message --- > On Wednesday, August 10th, 2022 at 1:14 PM, Jean Pierre De Jesus DIAZ > wrote: > > >> The atomic supports for this toolchain is broken: >> >> A minimal test case: >> >> guix shell arm-none-eabi-toolchain -- \ >> bash -c "echo '#include ' \ >> >> | arm-none-eabi-gcc -x c -o /dev/null -c -" >> >> Something similar found online: >> >> https://sourceware.org/legacy-ml/newlib/2017/msg00150.html >> >> However no solution. >> >> This happens with all versions of the arm-none-eabi-toolchain >> packages. >> >> — >> Jean-Pierre De Jesus DIAZ Might be a good idea to add a (regression) test for this in advance. Wish I could help, but my expermientation with cross compilation with Guix were largely fruitless.
bug#57109: arm-none-eabi-toolchain atomic support is broken
The following works though. No newlib or anything: guix shell --expression='((@ (gnu packages cross-base) cross-gcc) "arm-none-eabi")' -- \ bash -c "echo '#include ' \ | arm-none-eabi-gcc -x c -o /dev/null -c -" — Jean-Pierre De Jesus DIAZ --- Original Message --- On Wednesday, August 10th, 2022 at 1:14 PM, Jean Pierre De Jesus DIAZ wrote: > The atomic supports for this toolchain is broken: > > A minimal test case: > > guix shell arm-none-eabi-toolchain -- \ > bash -c "echo '#include ' \ > > | arm-none-eabi-gcc -x c -o /dev/null -c -" > > Something similar found online: > > https://sourceware.org/legacy-ml/newlib/2017/msg00150.html > > However no solution. > > This happens with all versions of the arm-none-eabi-toolchain > packages. > > — > Jean-Pierre De Jesus DIAZ
bug#57109: arm-none-eabi-toolchain atomic support is broken
The atomic supports for this toolchain is broken: A minimal test case: guix shell arm-none-eabi-toolchain -- \ bash -c "echo '#include ' \ | arm-none-eabi-gcc -x c -o /dev/null -c -" Something similar found online: https://sourceware.org/legacy-ml/newlib/2017/msg00150.html However no solution. This happens with all versions of the arm-none-eabi-toolchain packages. — Jean-Pierre De Jesus DIAZ