diff --git a/.gitignore b/.gitignore index 88419d8..1f17c97 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ test.lib test.exp *.pdb +dll.lib +dll.exp libaquery.a libaquery.lib server.lib diff --git a/Makefile b/Makefile index 2f1a73c..4344195 100644 --- a/Makefile +++ b/Makefile @@ -3,11 +3,11 @@ MonetDB_LIB = MonetDB_INC = Threading = CXXFLAGS = --std=c++1z -OPTFLAGS = -g3 #-O3 -fno-semantic-interposition +OPTFLAGS = -O3 -fno-semantic-interposition LINKFLAGS = -flto SHAREDFLAGS = -shared FPIC = -fPIC -COMPILER = $(shell $(CXX) --version | grep -q 'clang' && echo "clang"|| echo "gcc") +COMPILER = $(shell $(CXX) --version | grep -q clang && echo clang|| echo gcc) LIBTOOL = USELIB_FLAG = -Wl,--whole-archive,libaquery.a -Wl,-no-whole-archive LIBAQ_SRC = server/server.cpp server/monetdb_conn.cpp server/io.cpp @@ -19,6 +19,7 @@ else PCHFLAGS = endif + ifeq ($(OS),Windows_NT) NULL_DEVICE = NUL OS_SUPPORT += server/winhelper.cpp @@ -26,6 +27,9 @@ ifeq ($(OS),Windows_NT) MonetDB_LIB += msc-plugin/monetdbe.dll MonetDB_INC += -Imonetdb/msvc LIBTOOL = gcc-ar rcs + ifeq ($(COMPILER), clang ) + FPIC = + endif else UNAME_S = $(shell uname -s) UNAME_M = $(shell uname -m) @@ -64,7 +68,9 @@ info: $(info "test") $(info $(LIBTOOL)) $(info $(MonetDB_INC)) + $(info $(COMPILER)) $(info $(CXX)) + $(info $(FPIC)) pch: $(CXX) -x c++-header server/pch.hpp $(FPIC) $(MonetDB_INC) $(OPTFLAGS) $(CXXFLAGS) $(Threading) libaquery.a: @@ -91,6 +97,6 @@ docker: docker build -t aquery . clean: - rm *.shm *.o dll.so server.so server.bin libaquery.a .cached -rf 2> $(NULL_DEVICE) || true + rm *.shm *.o dll.so server.so server.bin -rf 2> $(NULL_DEVICE) || true diff --git a/requirements.txt b/requirements.txt index 9218a72..412a5f1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,5 +4,6 @@ mo-parsing==8.183.22158 mo-imports==7.169.22121 dataclasses; python_version < '3.7' readline; sys_platform == 'linux' +vswhere; sys_platform == 'win32' numpy diff --git a/server/server.cpp b/server/server.cpp index bdaaefd..b10f5e4 100644 --- a/server/server.cpp +++ b/server/server.cpp @@ -175,9 +175,11 @@ int dll_main(int argc, char** argv, Context* cxt){ user_module_handle = dlopen(mname, RTLD_LAZY); //getlasterror -#ifndef _MSC_VER if (!user_module_handle) +#ifndef _MSC_VER puts(dlerror()); +#else + printf("Fatal Error: Module %s failed to load with error code %d.\n", mname, GetLastError()); #endif user_module_map[mname] = user_module_handle; initialize_module(mname, user_module_handle, cxt);