https://gcc.gnu.org/g:bc10a49c37501e0603236fd9ca1f3a63bec24cc7
commit r16-7139-gbc10a49c37501e0603236fd9ca1f3a63bec24cc7 Author: Sangamesh Mallayya <[email protected]> Date: Thu Jan 29 07:04:40 2026 -0600 Fix AIX build break in gcc/diagnostics/sarif-sink.cc. In AIX, build fails while trying to compile gcc/diagnostics/sarif-sink.cc. Here is the snapshot of the error we are getting. In file included from /opt/freeware/src/packages/BUILD/gcc/gcc/system.h:46, from /opt/freeware/src/packages/BUILD/gcc/gcc/diagnostics/sarif-sink.cc:34: /opt/freeware/lib/gcc/powerpc-ibm-aix7.3.0.0/13/include-fixed/stdio.h:593:12: error: conflicting declaration of C function 'int fgetpos64(FILE*, fpos64_t*)' 593 | extern int fgetpos64(FILE *, fpos64_t *); | ^~~~~~~~~ This happens when we include sys/types.h before defining _LARGE_FILES. We can see similar errors with this sample program. #include <sys/types.h> #define _LARGE_FILES 1 #include <stdio.h> int main() { return 0; } In gcc/diagnostics/sarif-sink.cc we are including config.h after #include <sys/un.h> which intern including sys/types.h and causing the conflicting errors. Including config.h before including sys/un.h should solve this error. The patch is to fix the build break on AIX. gcc/ChangeLog: * diagnostics/sarif-sink.cc: Move config.h at the begining. Diff: --- gcc/diagnostics/sarif-sink.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/diagnostics/sarif-sink.cc b/gcc/diagnostics/sarif-sink.cc index 78743df7f1db..94db35ca864d 100644 --- a/gcc/diagnostics/sarif-sink.cc +++ b/gcc/diagnostics/sarif-sink.cc @@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ +#include "config.h" + #ifdef __MINGW32__ #include <winsock2.h> #include <afunix.h> @@ -26,7 +28,6 @@ along with GCC; see the file COPYING3. If not see #include <sys/socket.h> #endif -#include "config.h" #define INCLUDE_LIST #define INCLUDE_MAP #define INCLUDE_STRING
