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).