diff options
author | Sverker Eriksson <[email protected]> | 2016-01-08 15:22:52 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-01-08 16:45:37 +0100 |
commit | 1117dd3651be3cf763abf6fedcd4e06a6444fa04 (patch) | |
tree | 924e176e700b200e7623842aa06fad7569fc2ef0 /erts/emulator/beam/erl_nif.h | |
parent | 52fc89120c2f2237ec5191e72d844a6dca150040 (diff) | |
download | otp-1117dd3651be3cf763abf6fedcd4e06a6444fa04.tar.gz otp-1117dd3651be3cf763abf6fedcd4e06a6444fa04.tar.bz2 otp-1117dd3651be3cf763abf6fedcd4e06a6444fa04.zip |
erts: Allow -fvisibility=hidden for NIFs and drivers
as is strongly recommended by gcc man page.
We use __attribute__ ((visibility("default"))) to make sure
the init functions are properly exported.
Diffstat (limited to 'erts/emulator/beam/erl_nif.h')
-rw-r--r-- | erts/emulator/beam/erl_nif.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_nif.h b/erts/emulator/beam/erl_nif.h index 6f1b7a7571..40c2ad6f08 100644 --- a/erts/emulator/beam/erl_nif.h +++ b/erts/emulator/beam/erl_nif.h @@ -250,7 +250,13 @@ extern TWinDynNifCallbacks WinDynNifCallbacks; # define ERL_NIF_INIT_GLOB # define ERL_NIF_INIT_ARGS void # define ERL_NIF_INIT_BODY -# define ERL_NIF_INIT_EXPORT +# if defined(__GNUC__) && __GNUC__ >= 4 +# define ERL_NIF_INIT_EXPORT __attribute__ ((visibility("default"))) +# elif defined (__SUNPRO_C) && (__SUNPRO_C >= 0x550) +# define ERL_NIF_INIT_EXPORT __global +# else +# define ERL_NIF_INIT_EXPORT +# endif #endif #ifdef STATIC_ERLANG_NIF |