Also see #103343. The main complication here was that the `long` type was poisoned in GCC, but it's used by some included C++ headers. I removed the compile-dependent poison and added a new check for `long` and `ulong` so that they still can't be used in DNA. Pull Request: https://projects.blender.org/blender/blender/pulls/109617