Tim Rühsen
2018-04-13 09:52:10 UTC
You likely know it, but just in case I report it here.
We use 'static _GL_INLINE' for some static functions we want to get
inlined. This works out fine (compiles without warning) at least with
gcc5-, gcc-6, gcc-7 and gcc-8, also with several versions of clang.
On the GCC Compile farm there is gcc70 (NetBSD 5.1 with gcc 4.1.3) which
errors with 'duplicate static'. Removing the 'static' keyword cmpiles
fine there, but doesn't on newer systems (link error, unknow external
reference to those functions).
I'll remove _GL_INLINE from my code since it seems more problematic then
it helps.
That follows the advice from
https://www.gnu.org/software/gnulib/manual/html_node/extern-inline.html:
"C code ordinarily should not use inline. Typically it is better to let
the compiler figure out whether to inline, as compilers are pretty good
about optimization nowadays. In this sense, inline is like register,
another keyword that is typically no longer needed."
With Best Regards, Tim
We use 'static _GL_INLINE' for some static functions we want to get
inlined. This works out fine (compiles without warning) at least with
gcc5-, gcc-6, gcc-7 and gcc-8, also with several versions of clang.
On the GCC Compile farm there is gcc70 (NetBSD 5.1 with gcc 4.1.3) which
errors with 'duplicate static'. Removing the 'static' keyword cmpiles
fine there, but doesn't on newer systems (link error, unknow external
reference to those functions).
I'll remove _GL_INLINE from my code since it seems more problematic then
it helps.
That follows the advice from
https://www.gnu.org/software/gnulib/manual/html_node/extern-inline.html:
"C code ordinarily should not use inline. Typically it is better to let
the compiler figure out whether to inline, as compilers are pretty good
about optimization nowadays. In this sense, inline is like register,
another keyword that is typically no longer needed."
With Best Regards, Tim