J'essaye de porter OpenBSD sur Linux mais je suis confus par l'utilisation de la macro __only_inline. Cette macro vient de /usr/include/sys/cdefs.h qu'il définit comme suit:Déterminer la macro C de __only_inline utilisée sur BSD
/*
* __only_inline makes the compiler only use this function definition
* for inlining; references that can't be inlined will be left as
* external references instead of generating a local copy. The
* matching library should include a simple extern definition for
* the function to handle those references. c.f. ctype.h
*/
#ifdef __GNUC__
# if __GNUC_PREREQ__(4, 2)
#define __only_inline extern __inline __attribute__((__gnu_inline__))
# else
#define __only_inline extern __inline
# endif
#else
#define __only_inline static __inline
#endif
Quelqu'un peut-il expliquer le but de cette macro? Il est utilisé dans OpenBSD faire en targ.h: