Commit 2c0c5a80 authored by Nathan Scott's avatar Nathan Scott Committed by Oran Agra
Browse files

Annotate module API functions in redismodule.h for use with -fno-common (#6900)



In order to keep the redismodule.h self-contained but still usable with
gcc v10 and later, annotate each API function tentative definition with
the __common__ attribute.  This avoids the 'multiple definition' errors
modules will otherwise see for all API functions at link time.

Further details at gcc.gnu.org/gcc-10/porting_to.html

Turn the existing __attribute__ ((unused)), ((__common__)) and ((print))
annotations into conditional macros for any compilers not accepting this
syntax.  These macros only expand to API annotations under gcc.

Provide a pre- and post- macro for every API function, so that they can
be defined differently by the file that includes redismodule.h.

Removing REDISMODULE_API_FUNC in the interest of keeping the function
declarations readable.
Co-authored-by: default avatarYossi Gottlieb <yossigo@gmail.com>
Co-authored-by: default avatarOran Agra <oran@redislabs.com>
(cherry picked from commit 11cd983d)
parent f6d04d01
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment