hachyderm.io is one of the many independent Mastodon servers you can use to participate in the fediverse.
Hachyderm is a safe space, LGBTQIA+ and BLM, primarily comprised of tech industry professionals world wide. Note that many non-user account types have restrictions - please see our About page.

Administered by:

Server stats:

9.9K
active users

#GCC14 promoted some warnings to errors. This can break #autoconf, #CMake, #Meson or other build environments autoprobing for features, resulting in code built with missing or altered functionality. This could even lead to security impact, if some security related feature is unexpectedly not enabled.

Passing CC as "gcc -fpermissive" should fix this. If this is not an option there's even the nuclear option of adding a gcc wrapper script that does:

#!/bin/sh
exec /usr/bin/gcc -fpermissive "$@"

EDIT: I do not mean to say that these new options should blanket-disabled globally. There however are currently some packages that have problems with GCC 14 (missing features or existing functions not being used, or just failing to build). Naturally these packages should be fixed themselves. Meanwhile -fpermissive will allow building most of these troublesome packages.

@harrysintonen @mmu_man these warnings are there for a reason. Pretending the code is OK is the real security issue here.

Cassandrich

@robux4 @harrysintonen @mmu_man Usually it's not the code that's broken but the autoconf tests. They probe for existence of functions with snippets that are invalid C.

@robux4 @harrysintonen @mmu_man As such, there's a whole lot of code that's written in correct C, but that used autoconf macros to probe for system properties, and that's going to get the wrong answers to the probe questions by virtue of errors in the autoconf C snippets. 🤬

@dalias @harrysintonen @mmu_man indeed, that's probably the biggest hurdle. But an update of autoconf might force disabling one or two of these errors when doing these particular kind of tests.
BTW the same problem might exist for CMake and meson.

@robux4 @harrysintonen @mmu_man It's a really old autoconf antipattern whereby, rather than including the header for a function to make a test program to test linking it, they declare it wrong or rely on implicit declaration. I don't think this nonsense was copied by other systems (although cmake has plenty of its own nonsense).