RFR: 8303796: Optionally build fully statically linked JDK image
Jiangli Zhou
jiangli at openjdk.org
Sat Apr 29 04:03:58 UTC 2023
On Sat, 29 Apr 2023 01:44:07 GMT, Jiangli Zhou <jiangli at openjdk.org> wrote:
> > > Erik, could you please share your `support/native/java.base/java/BUILD_LAUNCHER_javastatic_static_link.cmdline`? This generated .cmdline file contains the static linking command. Here is the linking command from my build:
> >
> >
> > I can't see any significant difference. I'm using a devkit created using the devkit makefiles.
> > ```
> > .../devkit-linux_x64-gcc11.2.0-OL6.4+1.0.tar.gz/x86_64-linux-gnu-to-x86_64-linux-gnu/bin/gcc -Wl,-z,defs -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wl,--hash-style=gnu -m64 -static-libstdc++ -static-libgcc -Wl,-rpath,$ORIGIN/. -Wl,--export-dynamic -o .../build/linux-x64/jdk/bin/javastatic /home/erik/git/jdk/build/linux-x64/support/native/java.base/java/main.o -Wl,--whole-archive .../build/linux-x64/images/static-libs/lib/libattach.a ... .../build/linux-x64/images/static-libs/lib/libjvm.a -Wl,--no-whole-archive -lpthread -ldl -lm -l:libstdc++.a
> > ```
>
> I did some search and found https://stackoverflow.com/questions/2418157/c-error-undefined-reference-to-clock-gettime-and-clock-settime/32649327#32649327. The clock_* functions moved from librt to libc (starting from glibc 2.17). That finding led me to the following in libraries.m4:
>
> ```
> # librt for legacy clock_gettime
> if test "x$OPENJDK_TARGET_OS" = xlinux; then
> # Hotspot needs to link librt to get the clock_* functions.
> # But once our supported minimum build and runtime platform
> # has glibc 2.17, this can be removed as the functions are
> # in libc.
> BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lrt"
> fi
> ```
>
> Since I use `ldd (Debian GLIBC 2.36-8+gl1) 2.36`, I didn't notice that until now.
Based on the above finding, I pushed a change to use $(JVM_LIBS) for the linking command. @erikj79 could you please see if that resolves the clock_* symbol issues in your environment?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/13709#issuecomment-1528637453
More information about the build-dev
mailing list