Comments on: GNAT2017 GCC breaks SMG_Comms MPI: extern inline function issues. http://bvt-trace.net/2018/11/gnat2017-gcc-breaks-smg_comms-mpi-extern-inline-function-issues/ Fri, 21 Aug 2020 17:12:43 +0000 http://polimedia.us hourly 1 By: Diana Coman http://bvt-trace.net/2018/11/gnat2017-gcc-breaks-smg_comms-mpi-extern-inline-function-issues/#comment-4 Diana Coman Mon, 12 Nov 2018 11:26:17 +0000 http://bvt-trace.net/2018/11/gnat2017-gcc-breaks-smg_comms-mpi-externstatic-inline-function-issues/#comment-4 The issue is basically an incompatibility between the inline/extern interpretation in the two different standards used by gcc 4.9 (gnu89 is the default, meaning c89 + extensions) and the gcc you are using there (c99 standard from what I gather). Have you tried perhaps compiling with -std=gnu89? Anyway, your .vpatch is useful for people who insist on compiling with gcc 6 or whatever version > 4.9 they want. However, note that it does *not* really fix the code - what it does is it upgrades the code to gcc 6 and in the process it makes it fail on gcc 4.9 (try it). So you are welcome to maintain this as a branch on the smg_comms tree but it won't become part of the main trunk (i.e. you'll have to then port future patches to your branch too to keep it up to date). The issue is basically an incompatibility between the inline/extern interpretation in the two different standards used by gcc 4.9 (gnu89 is the default, meaning c89 + extensions) and the gcc you are using there (c99 standard from what I gather). Have you tried perhaps compiling with -std=gnu89?

Anyway, your .vpatch is useful for people who insist on compiling with gcc 6 or whatever version > 4.9 they want. However, note that it does *not* really fix the code - what it does is it upgrades the code to gcc 6 and in the process it makes it fail on gcc 4.9 (try it). So you are welcome to maintain this as a branch on the smg_comms tree but it won't become part of the main trunk (i.e. you'll have to then port future patches to your branch too to keep it up to date).

]]>