Due to a confluence of weird factors, it turns out that PhysFS is compiling with implicit function definitions due to function definitions that get hidden with -std=c99, but not with -std=gnu99 (or the default GCC value of -std=gnu17).
Also, due to a recent GCC update (GCC 14), implicit function declarations are actually prohibited with -std=c99 as the C99 standard proscribes.
This meant that people started getting build errors in PhysFS code on default settings, which wasn't ideal.
To fix this, we will make our -std= flags apply only to VVVVVV source files. In CMake 2.8.12, this can be done with set_source_files_properties. Additionally the flags to disable exceptions and RTTI are scoped down too.
Thanks to leo60228 for helping debug and solve this issue.
Fixes #1167.
Legal Stuff:
By submitting this pull request, I confirm that...
[x] My changes may be used in a future commercial release of VVVVVV
[x] I will be credited in a CONTRIBUTORS file and the "GitHub Friends"
section of the credits for all of said releases, but will NOT be compensated
for these changes unless there is a prior written agreement
Due to a confluence of weird factors, it turns out that PhysFS is compiling with implicit function definitions due to function definitions that get hidden with
-std=c99
, but not with-std=gnu99
(or the default GCC value of-std=gnu17
).Also, due to a recent GCC update (GCC 14), implicit function declarations are actually prohibited with
-std=c99
as the C99 standard proscribes.This meant that people started getting build errors in PhysFS code on default settings, which wasn't ideal.
To fix this, we will make our
-std=
flags apply only to VVVVVV source files. In CMake 2.8.12, this can be done withset_source_files_properties
. Additionally the flags to disable exceptions and RTTI are scoped down too.Thanks to leo60228 for helping debug and solve this issue.
Fixes #1167.
Legal Stuff:
By submitting this pull request, I confirm that...
CONTRIBUTORS
file and the "GitHub Friends" section of the credits for all of said releases, but will NOT be compensated for these changes unless there is a prior written agreement