[ruby-core:121755] [Ruby Misc#21290] Unable to build ruby extension on Fedora 42 due to possible GCC 15 issues

Issue #21290 has been reported by lukef (Luke Freeman). ---------------------------------------- Misc #21290: Unable to build ruby extension on Fedora 42 due to possible GCC 15 issues https://bugs.ruby-lang.org/issues/21290 * Author: lukef (Luke Freeman) * Status: Open ---------------------------------------- At least one Ruby extension (ed25519) fails to build due to incompatibilities(?) with the core library headers on Fedora 42. When trying to build the ed25519 extension that is required for Kamal (and I guess Rails by association) there are errors relating to `bool` types. I'm assuming this is related to the inclusion of GCC 15 by default in version 42. For example: ``` <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/core/rtypeddata.h:578:15: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ In file included from <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/ruby.h:42: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:420:5: error: unknown type name ‘bool’ 420 | bool left; /**< Whether overflow happened or not. */ | ^~~~ <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:65:1: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ 64 | #include "ruby/internal/stdckdint.h" +++ |+#include <stdbool.h> 65 | #include "ruby/internal/xmalloc.h" <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h: In function ‘rbimpl_size_mul_overflow’: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:574:49: error: ‘false’ undeclared (first use in this function) 574 | struct rbimpl_size_mul_overflow_tag ret = { false, 0, }; | ^~~~~ ``` I logged the relevant issue with Kamal and the ed25519 projects but figured the issue should be tracked here as anyone upgrading to Fedora 42 won't probably be able to use Rails if starting from scratch. Those issues are: - https://github.com/RubyCrypto/ed25519/issues/44 - https://github.com/basecamp/kamal/issues/1512 It's possible it is related to this issue also: https://bugs.ruby-lang.org/issues/21024. I have tried downgrading to Ruby 3.4.1 and even older, non-3.4 versions and the issue seems to be the same. I'm running: - Fedora 42 - Ruby 3.4+ Please let me know if you need additional information. -- https://bugs.ruby-lang.org/

Issue #21290 has been updated by dennmart (Dennis Martinez). For some additional context just in case it's helpful here, I've been running into this same issue on my Fedora 42 system and I noticed that the ed25519 gem is [building its extensions using the `-std=c99` flag](https://github.com/RubyCrypto/ed25519/blob/4ab46633c684576e56c8282e6235eca8b...). When I remove that flag, the gem extensions compile correctly without any issues. I'm not a C programmer so I'm not sure if this flag is necessary for the gem, or if it's a potential Ruby/GCC 15 issue. I've included this in the reported issue on the gem repo. ---------------------------------------- Misc #21290: Unable to build ruby extension on Fedora 42 due to possible GCC 15 issues https://bugs.ruby-lang.org/issues/21290#change-112820 * Author: lukef (Luke Freeman) * Status: Open ---------------------------------------- At least one Ruby extension (ed25519) fails to build due to incompatibilities(?) with the core library headers on Fedora 42. When trying to build the ed25519 extension that is required for Kamal (and I guess Rails by association) there are errors relating to `bool` types. I'm assuming this is related to the inclusion of GCC 15 by default in version 42. For example: ``` <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/core/rtypeddata.h:578:15: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ In file included from <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/ruby.h:42: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:420:5: error: unknown type name ‘bool’ 420 | bool left; /**< Whether overflow happened or not. */ | ^~~~ <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:65:1: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ 64 | #include "ruby/internal/stdckdint.h" +++ |+#include <stdbool.h> 65 | #include "ruby/internal/xmalloc.h" <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h: In function ‘rbimpl_size_mul_overflow’: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:574:49: error: ‘false’ undeclared (first use in this function) 574 | struct rbimpl_size_mul_overflow_tag ret = { false, 0, }; | ^~~~~ ``` I logged the relevant issue with Kamal and the ed25519 projects but figured the issue should be tracked here as anyone upgrading to Fedora 42 won't probably be able to use Rails if starting from scratch. Those issues are: - https://github.com/RubyCrypto/ed25519/issues/44 - https://github.com/basecamp/kamal/issues/1512 It's possible it is related to this issue also: https://bugs.ruby-lang.org/issues/21024. I have tried downgrading to Ruby 3.4.1 and even older, non-3.4 versions and the issue seems to be the same. I'm running: - Fedora 42 - Ruby 3.4+ Please let me know if you need additional information. -- https://bugs.ruby-lang.org/

Issue #21290 has been updated by nobu (Nobuyoshi Nakada). I can't reproduce the failure on Fedora 42 aarch64. `gem install --user ed25519` succeeded with ruby installed by `dnf`. Anyway, `-std=c99` flag is nonsense for other than gcc family. Use `append_cflags` instead of adding them blindly. ---------------------------------------- Misc #21290: Unable to build ruby extension on Fedora 42 due to possible GCC 15 issues https://bugs.ruby-lang.org/issues/21290#change-112824 * Author: lukef (Luke Freeman) * Status: Open ---------------------------------------- At least one Ruby extension (ed25519) fails to build due to incompatibilities(?) with the core library headers on Fedora 42. When trying to build the ed25519 extension that is required for Kamal (and I guess Rails by association) there are errors relating to `bool` types. I'm assuming this is related to the inclusion of GCC 15 by default in version 42. For example: ``` <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/core/rtypeddata.h:578:15: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ In file included from <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/ruby.h:42: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:420:5: error: unknown type name ‘bool’ 420 | bool left; /**< Whether overflow happened or not. */ | ^~~~ <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:65:1: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ 64 | #include "ruby/internal/stdckdint.h" +++ |+#include <stdbool.h> 65 | #include "ruby/internal/xmalloc.h" <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h: In function ‘rbimpl_size_mul_overflow’: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:574:49: error: ‘false’ undeclared (first use in this function) 574 | struct rbimpl_size_mul_overflow_tag ret = { false, 0, }; | ^~~~~ ``` I logged the relevant issue with Kamal and the ed25519 projects but figured the issue should be tracked here as anyone upgrading to Fedora 42 won't probably be able to use Rails if starting from scratch. Those issues are: - https://github.com/RubyCrypto/ed25519/issues/44 - https://github.com/basecamp/kamal/issues/1512 It's possible it is related to this issue also: https://bugs.ruby-lang.org/issues/21024. I have tried downgrading to Ruby 3.4.1 and even older, non-3.4 versions and the issue seems to be the same. I'm running: - Fedora 42 - Ruby 3.4+ Please let me know if you need additional information. -- https://bugs.ruby-lang.org/

Issue #21290 has been updated by dennmart (Dennis Martinez). Thanks for the heads-up about using `append_flags`. I used it to fix the issue for the ed25519 gem and a new version was released resolving the problem. I think this issue can be closed. ---------------------------------------- Misc #21290: Unable to build ruby extension on Fedora 42 due to possible GCC 15 issues https://bugs.ruby-lang.org/issues/21290#change-112886 * Author: lukef (Luke Freeman) * Status: Open ---------------------------------------- At least one Ruby extension (ed25519) fails to build due to incompatibilities(?) with the core library headers on Fedora 42. When trying to build the ed25519 extension that is required for Kamal (and I guess Rails by association) there are errors relating to `bool` types. I'm assuming this is related to the inclusion of GCC 15 by default in version 42. For example: ``` <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/core/rtypeddata.h:578:15: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ In file included from <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/ruby.h:42: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:420:5: error: unknown type name ‘bool’ 420 | bool left; /**< Whether overflow happened or not. */ | ^~~~ <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:65:1: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ 64 | #include "ruby/internal/stdckdint.h" +++ |+#include <stdbool.h> 65 | #include "ruby/internal/xmalloc.h" <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h: In function ‘rbimpl_size_mul_overflow’: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:574:49: error: ‘false’ undeclared (first use in this function) 574 | struct rbimpl_size_mul_overflow_tag ret = { false, 0, }; | ^~~~~ ``` I logged the relevant issue with Kamal and the ed25519 projects but figured the issue should be tracked here as anyone upgrading to Fedora 42 won't probably be able to use Rails if starting from scratch. Those issues are: - https://github.com/RubyCrypto/ed25519/issues/44 - https://github.com/basecamp/kamal/issues/1512 It's possible it is related to this issue also: https://bugs.ruby-lang.org/issues/21024. I have tried downgrading to Ruby 3.4.1 and even older, non-3.4 versions and the issue seems to be the same. I'm running: - Fedora 42 - Ruby 3.4+ Please let me know if you need additional information. -- https://bugs.ruby-lang.org/

Issue #21290 has been updated by anykeyh (Yacine PETITPREZ). I confirm I have the same problem on arch. With multiple ruby version (3.2, 3.3, 3.4). Example of gems failing are `jaro_winkler` or `ruby-prof`. Is there any way to fix without touching gem code? Some kind of system flag to set? ---------------------------------------- Misc #21290: Unable to build ruby extension on Fedora 42 due to possible GCC 15 issues https://bugs.ruby-lang.org/issues/21290#change-112889 * Author: lukef (Luke Freeman) * Status: Open ---------------------------------------- At least one Ruby extension (ed25519) fails to build due to incompatibilities(?) with the core library headers on Fedora 42. When trying to build the ed25519 extension that is required for Kamal (and I guess Rails by association) there are errors relating to `bool` types. I'm assuming this is related to the inclusion of GCC 15 by default in version 42. For example: ``` <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/core/rtypeddata.h:578:15: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ In file included from <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/ruby.h:42: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:420:5: error: unknown type name ‘bool’ 420 | bool left; /**< Whether overflow happened or not. */ | ^~~~ <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:65:1: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ 64 | #include "ruby/internal/stdckdint.h" +++ |+#include <stdbool.h> 65 | #include "ruby/internal/xmalloc.h" <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h: In function ‘rbimpl_size_mul_overflow’: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:574:49: error: ‘false’ undeclared (first use in this function) 574 | struct rbimpl_size_mul_overflow_tag ret = { false, 0, }; | ^~~~~ ``` I logged the relevant issue with Kamal and the ed25519 projects but figured the issue should be tracked here as anyone upgrading to Fedora 42 won't probably be able to use Rails if starting from scratch. Those issues are: - https://github.com/RubyCrypto/ed25519/issues/44 - https://github.com/basecamp/kamal/issues/1512 It's possible it is related to this issue also: https://bugs.ruby-lang.org/issues/21024. I have tried downgrading to Ruby 3.4.1 and even older, non-3.4 versions and the issue seems to be the same. I'm running: - Fedora 42 - Ruby 3.4+ Please let me know if you need additional information. -- https://bugs.ruby-lang.org/

Issue #21290 has been updated by hongminhee (Minhee Hong). File gem_make.out added File gem_make.out added Hi, I am also experiencing a similar issue when trying to install a Ruby gem with C extensions (`blurhash` and `ruby-prof`) on Ruby 3.4.3. The compilation fails with errors related to `bool` and `stdbool.h`, similar to what has been described in this thread. Here's my environment information: * **Ruby Version:** 3.4.3 (installed via `mise`) * **Gem causing the issue:** `blurhash` (v0.1.8), `ruby-prof` (v1.7.1) * **Operating System:** Fedora Linux 42 * **GCC Version:** 15.1.1 The error messages I'm seeing are consistent with the “unknown type name ‘bool’” and suggestions to include `<stdbool.h>` within Ruby's internal header files. I can provide full error logs if needed, but they closely match the ones already shared. Thank you for looking into this. ---------------------------------------- Misc #21290: Unable to build ruby extension on Fedora 42 due to possible GCC 15 issues https://bugs.ruby-lang.org/issues/21290#change-112960 * Author: lukef (Luke Freeman) * Status: Open ---------------------------------------- At least one Ruby extension (ed25519) fails to build due to incompatibilities(?) with the core library headers on Fedora 42. When trying to build the ed25519 extension that is required for Kamal (and I guess Rails by association) there are errors relating to `bool` types. I'm assuming this is related to the inclusion of GCC 15 by default in version 42. For example: ``` <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/core/rtypeddata.h:578:15: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ In file included from <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/ruby.h:42: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:420:5: error: unknown type name ‘bool’ 420 | bool left; /**< Whether overflow happened or not. */ | ^~~~ <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:65:1: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ 64 | #include "ruby/internal/stdckdint.h" +++ |+#include <stdbool.h> 65 | #include "ruby/internal/xmalloc.h" <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h: In function ‘rbimpl_size_mul_overflow’: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:574:49: error: ‘false’ undeclared (first use in this function) 574 | struct rbimpl_size_mul_overflow_tag ret = { false, 0, }; | ^~~~~ ``` I logged the relevant issue with Kamal and the ed25519 projects but figured the issue should be tracked here as anyone upgrading to Fedora 42 won't probably be able to use Rails if starting from scratch. Those issues are: - https://github.com/RubyCrypto/ed25519/issues/44 - https://github.com/basecamp/kamal/issues/1512 It's possible it is related to this issue also: https://bugs.ruby-lang.org/issues/21024. I have tried downgrading to Ruby 3.4.1 and even older, non-3.4 versions and the issue seems to be the same. I'm running: - Fedora 42 - Ruby 3.4+ Please let me know if you need additional information. ---Files-------------------------------- gem_make.out (32.5 KB) gem_make.out (33.1 KB) -- https://bugs.ruby-lang.org/

Issue #21290 has been updated by AUlrich (Andreas Ulrich). I also stumbled over this issue and falsely addressed it to mongodb/bson Here is a Dockerfile which lets you reproduce the issue https://github.com/mongodb/bson-ruby/discussions/351#discussioncomment-13059... ---------------------------------------- Misc #21290: Unable to build ruby extension on Fedora 42 due to possible GCC 15 issues https://bugs.ruby-lang.org/issues/21290#change-112971 * Author: lukef (Luke Freeman) * Status: Open ---------------------------------------- At least one Ruby extension (ed25519) fails to build due to incompatibilities(?) with the core library headers on Fedora 42. When trying to build the ed25519 extension that is required for Kamal (and I guess Rails by association) there are errors relating to `bool` types. I'm assuming this is related to the inclusion of GCC 15 by default in version 42. For example: ``` <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/core/rtypeddata.h:578:15: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ In file included from <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/ruby.h:42: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:420:5: error: unknown type name ‘bool’ 420 | bool left; /**< Whether overflow happened or not. */ | ^~~~ <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:65:1: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ 64 | #include "ruby/internal/stdckdint.h" +++ |+#include <stdbool.h> 65 | #include "ruby/internal/xmalloc.h" <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h: In function ‘rbimpl_size_mul_overflow’: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:574:49: error: ‘false’ undeclared (first use in this function) 574 | struct rbimpl_size_mul_overflow_tag ret = { false, 0, }; | ^~~~~ ``` I logged the relevant issue with Kamal and the ed25519 projects but figured the issue should be tracked here as anyone upgrading to Fedora 42 won't probably be able to use Rails if starting from scratch. Those issues are: - https://github.com/RubyCrypto/ed25519/issues/44 - https://github.com/basecamp/kamal/issues/1512 It's possible it is related to this issue also: https://bugs.ruby-lang.org/issues/21024. I have tried downgrading to Ruby 3.4.1 and even older, non-3.4 versions and the issue seems to be the same. I'm running: - Fedora 42 - Ruby 3.4+ Please let me know if you need additional information. ---Files-------------------------------- gem_make.out (32.5 KB) gem_make.out (33.1 KB) -- https://bugs.ruby-lang.org/

Issue #21290 has been updated by definiv (Jake W). Just adding that I am also experiencing this with ed25519 and ruby-prof, as well as appsignal. * **Ruby Version:** 3.3.5 (installed via `rbenv`) * **Gem causing the issue:** `ed25519` (v1.3.9), `ruby-prof` (v1.7.1), `appsignal` (v4.5.9) * **Operating System:** Arch Linux 6.14.5 * **GCC Version:** 15.1.1 Also seeing the same error messages with "unknown type name `bool`" and including `<stdbool.h>` in the gem's header files does fix it. The `appsignal` gem complains about "incompatible pointer types", and using `--with-cflags="Wno-error=incompatible-pointer-types"` does allow that to install. ---------------------------------------- Misc #21290: Unable to build ruby extension on Fedora 42 due to possible GCC 15 issues https://bugs.ruby-lang.org/issues/21290#change-112975 * Author: lukef (Luke Freeman) * Status: Open ---------------------------------------- At least one Ruby extension (ed25519) fails to build due to incompatibilities(?) with the core library headers on Fedora 42. When trying to build the ed25519 extension that is required for Kamal (and I guess Rails by association) there are errors relating to `bool` types. I'm assuming this is related to the inclusion of GCC 15 by default in version 42. For example: ``` <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/core/rtypeddata.h:578:15: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ In file included from <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/ruby.h:42: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:420:5: error: unknown type name ‘bool’ 420 | bool left; /**< Whether overflow happened or not. */ | ^~~~ <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:65:1: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’ 64 | #include "ruby/internal/stdckdint.h" +++ |+#include <stdbool.h> 65 | #include "ruby/internal/xmalloc.h" <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h: In function ‘rbimpl_size_mul_overflow’: <mise dir>/installs/ruby/3.4.3/include/ruby-3.4.0/ruby/internal/memory.h:574:49: error: ‘false’ undeclared (first use in this function) 574 | struct rbimpl_size_mul_overflow_tag ret = { false, 0, }; | ^~~~~ ``` I logged the relevant issue with Kamal and the ed25519 projects but figured the issue should be tracked here as anyone upgrading to Fedora 42 won't probably be able to use Rails if starting from scratch. Those issues are: - https://github.com/RubyCrypto/ed25519/issues/44 - https://github.com/basecamp/kamal/issues/1512 It's possible it is related to this issue also: https://bugs.ruby-lang.org/issues/21024. I have tried downgrading to Ruby 3.4.1 and even older, non-3.4 versions and the issue seems to be the same. I'm running: - Fedora 42 - Ruby 3.4+ Please let me know if you need additional information. ---Files-------------------------------- gem_make.out (32.5 KB) gem_make.out (33.1 KB) -- https://bugs.ruby-lang.org/
participants (7)
-
anykeyh (Yacine PETITPREZ)
-
AUlrich (Andreas Ulrich)
-
definiv (Jake W)
-
dennmart (Dennis Martinez)
-
hongminhee (Minhee Hong)
-
lukef (Luke Freeman)
-
nobu (Nobuyoshi Nakada)