[PATCH] Windows 32-bit DLL name decoration
Alexey Ivanov
alexey.ivanov at oracle.com
Thu Nov 15 22:14:05 UTC 2018
Hi Ali,
Can the issue be resolved by using different call modifiers on the
affected functions?
Some build / link issues were resolved by adding / removing JNICALL
modifier, see
https://bugs.openjdk.java.net/browse/JDK-8201226
http://mail.openjdk.java.net/pipermail/build-dev/2018-April/021553.html
https://bugs.openjdk.java.net/browse/JDK-8202476
http://mail.openjdk.java.net/pipermail/build-dev/2018-May/021913.html
Regards,
Alexey
On 15/11/2018 21:43, Ali İnce wrote:
> Hi,
>
> An issue (https://github.com/AdoptOpenJDK/openjdk-build/issues/709) raised against AdoptOpenJDK jdk11 32-bit windows builds led us to the name decoration problem on built 32-bit dlls - specifically dt_socket.dll and dt_shmem.dll. Whereas 64-bit MSVC builds don’t apply any name decorations on exported functions, 32-bit builds apply them - which requires either def files or /export flags to be specified on the linker arguments.
>
> Although the expected linker arguments were present on previous jdk makefiles, they were removed in jdk11 makefiles.
>
> Below is the proposed patch, which can also be browsed at https://github.com/AdoptOpenJDK/openjdk-jdk11u/pull/1.
>
> Would you please have a look and let me know of any points I may have missed (I don’t have any background information about why the export flags were removed in jdk11)?
>
> Regards,
>
> Ali
>
> diff --git a/make/lib/Lib-jdk.jdi.gmk b/make/lib/Lib-jdk.jdi.gmk
> index 197b95c2e2..ac6ebf5591 100644
> --- a/make/lib/Lib-jdk.jdi.gmk
> +++ b/make/lib/Lib-jdk.jdi.gmk
> @@ -37,6 +37,7 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
> jdk.jdwp.agent:include \
> jdk.jdwp.agent:libjdwp/export, \
> LDFLAGS := $(LDFLAGS_JDKLIB), \
> + LDFLAGS_windows := -export:jdwpTransport_OnLoad, \
> LIBS := $(JDKLIB_LIBS), \
> ))
>
> diff --git a/make/lib/Lib-jdk.jdwp.agent.gmk b/make/lib/Lib-jdk.jdwp.agent.gmk
> index 0bc93e0d35..0382e55325 100644
> --- a/make/lib/Lib-jdk.jdwp.agent.gmk
> +++ b/make/lib/Lib-jdk.jdwp.agent.gmk
> @@ -37,6 +37,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBDT_SOCKET, \
> libjdwp/export, \
> LDFLAGS := $(LDFLAGS_JDKLIB) \
> $(call SET_SHARED_LIBRARY_ORIGIN), \
> + LDFLAGS_windows := -export:jdwpTransport_OnLoad, \
> LIBS_linux := -lpthread, \
> LIBS_solaris := -lnsl -lsocket, \
> LIBS_windows := $(JDKLIB_LIBS) ws2_32.lib, \
More information about the build-dev
mailing list