Index: otp/erts/emulator/Makefile.in =================================================================== --- otp.orig/erts/emulator/Makefile.in 2015-04-28 01:57:04.037207600 +0300 +++ otp/erts/emulator/Makefile.in 2015-04-28 01:59:06.811107100 +0300 @@ -227,7 +227,7 @@ else EMU_CC = @EMU_CC@ endif -TYPE_FLAGS += -DSTATIC_ERLANG_DRIVER +TYPE_FLAGS += -DSTATIC_ERLANG_DRIVER -DBUILDING_DLL else EMU_CC = @EMU_CC@ endif Index: otp/erts/emulator/beam/global.h =================================================================== --- otp.orig/erts/emulator/beam/global.h 2015-04-28 01:58:06.378375000 +0300 +++ otp/erts/emulator/beam/global.h 2015-04-28 01:59:06.861107400 +0300 @@ -795,7 +795,7 @@ extern int erts_compat_rel; extern int erts_use_sender_punish; void erts_short_init(void); -void erl_start(int, char**); +void OTP_Export_Flags erl_start(int, char**); void erts_usage(void); Eterm erts_preloaded(Process* p); /* erl_md5.c */ Index: otp/erts/emulator/sys/win32/erl_win_sys.h =================================================================== --- otp.orig/erts/emulator/sys/win32/erl_win_sys.h 2015-04-28 01:58:06.503375000 +0300 +++ otp/erts/emulator/sys/win32/erl_win_sys.h 2015-04-28 01:59:06.907774300 +0300 @@ -117,6 +117,13 @@ #define ERTS_SYS_FD_TYPE HANDLE #define NO_FSTAT_ON_SYS_FD_TYPE 1 /* They are events, not files */ +#ifdef BUILDING_DLL +# define OTP_Export_Flags __declspec(dllexport) +#else +# define OTP_Export_Flags __declspec(dllimport) +#endif + + /* * For erl_time_sup */