diff --git a/R-package/src/Makevars.in b/R-package/src/Makevars.in index c793f09d4..366975ab2 100644 --- a/R-package/src/Makevars.in +++ b/R-package/src/Makevars.in @@ -17,7 +17,7 @@ endif $(foreach v, $(XGB_RFLAGS), $(warning $(v))) PKG_CPPFLAGS= -I$(PKGROOT)/include -I$(PKGROOT)/dmlc-core/include -I$(PKGROOT)/rabit/include -I$(PKGROOT) $(XGB_RFLAGS) -PKG_CXXFLAGS= @OPENMP_CXXFLAGS@ @ENDIAN_FLAG@ -pthread +PKG_CXXFLAGS= @OPENMP_CXXFLAGS@ @ENDIAN_FLAG@ -pthread $(CXX_VISIBILITY) PKG_LIBS = @OPENMP_CXXFLAGS@ @OPENMP_LIB@ @ENDIAN_FLAG@ @BACKTRACE_LIB@ -pthread OBJECTS= ./xgboost_R.o ./xgboost_custom.o ./xgboost_assert.o ./init.o \ $(PKGROOT)/amalgamation/xgboost-all0.o $(PKGROOT)/amalgamation/dmlc-minimum0.o \ diff --git a/R-package/src/init.c b/R-package/src/init.c index 119fdb9f3..9cfa1ac3f 100644 --- a/R-package/src/init.c +++ b/R-package/src/init.c @@ -9,6 +9,7 @@ #include #include #include +#include /* FIXME: Check these declarations against the C/Fortran source code. @@ -89,7 +90,7 @@ static const R_CallMethodDef CallEntries[] = { #if defined(_WIN32) __declspec(dllexport) #endif // defined(_WIN32) -void R_init_xgboost(DllInfo *dll) { +void attribute_visible R_init_xgboost(DllInfo *dll) { R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } diff --git a/R-package/src/xgboost-win.def b/R-package/src/xgboost-win.def new file mode 100644 index 000000000..483e76f80 --- /dev/null +++ b/R-package/src/xgboost-win.def @@ -0,0 +1,3 @@ +LIBRARY xgboost.dll +EXPORTS + R_init_xgboost