Here's a simple C++ chunk ``` $ cat main.cpp #include <iostream>
int main(void) { std::cout << __cplusplus; return 0; } ``` that compiles as expected, with the latest gcc version ``` $ guix shell --container gcc-toolchain The following derivation will be built: /gnu/store/bvgndd1r6171zly7ir7fzlpygb1ka7b3-profile.drv listing Emacs sub-directories... building profile with 1 package... [env]$ g++ main.cpp [env]$ gcc --version gcc (GCC) 14.2.0 Copyright (C) 2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ``` I'm using the following generation ``` $ guix describe Generation 70 Nov 20 2024 00:02:35 (current) [...] guix 1e6d1c3 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 1e6d1c32117e9f731e50dcd286927a5fa0d17afc ``` This still works if I add gfortran-toolchain *before* gcc-toolchaine ``` $ guix shell --container gfortran-toolchain gcc-toolchain The following derivation will be built: /gnu/store/48ryz9p3sc2qmv9xv2s4s032g1bdkxgr-profile.drv listing Emacs sub-directories... building profile with 2 packages... [env]$ g++ main.cpp ``` But fails I add gfortran-toolchain *after* gcc-toolchaine ``` $ guix shell --container gcc-toolchain gfortran-toolchain The following derivation will be built: /gnu/store/4ff7am6zjplhi1p9lin09nbqzk30rijn-profile.drv listing Emacs sub-directories... building profile with 2 packages... $ $ g++ main.cpp In file included from /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/bits/move.h:57, from /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/bits/exception_ptr.h:43, from /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/exception:153, from /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/ios:39, from /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/ostream:38, from /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/iostream:39, from main.cpp:1: /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/type_traits:732:26: error: expected identifier before '(' token 732 | _GLIBCXX20_DEPRECATED("use is_standard_layout && is_trivial instead") | ^ /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/type_traits:732:27: error: expected unqualified-id before string constant 732 | _GLIBCXX20_DEPRECATED("use is_standard_layout && is_trivial instead") | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/type_traits:732:27: error: expected ')' before string constant 732 | _GLIBCXX20_DEPRECATED("use is_standard_layout && is_trivial instead") | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ) /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/type_traits:3154:25: error: expected unqualified-id before string constant 3154 | _GLIBCXX20_DEPRECATED("use is_standard_layout_v && is_trivial_v instead") | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /gnu/store/hhzpa2yx8cz92cgm7xjpd2pp6pk74g96-profile/include/c++/type_traits:3154:25: error: expected ')' before string constant 3154 | _GLIBCXX20_DEPRECATED("use is_standard_layout_v && is_trivial_v instead") | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ) ``` The discussion on help-guix that led to this is available here [1]. Don't hesitate to get back to me for more details. Laurent [1] https://lists.gnu.org/archive/html/help-guix/2024-11/msg00066.html