RFR: JDK-8316595: Alpine build fails after JDK-8314021

David Holmes dholmes at openjdk.org
Thu Sep 21 08:23:05 UTC 2023


On Wed, 20 Sep 2023 14:46:21 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

> [JDK-8314021](https://bugs.openjdk.org/browse/JDK-8314021) causes build errors on Linux Alpine/musl (Linux ALPINE 3.17.4 gcc12.2.1)
> 
> /linuxmuslx86_64/jdk/src/hotspot/os/linux/os_linux.cpp: In static member function 'static jlong os::Linux::sendfile(int, int, jlong*, jlong)':
> /linuxmuslx86_64/jdk/src/hotspot/os/linux/os_linux.cpp:4375:7: error: infinite recursion detected [-Werror=infinite-recursion]
>  4375 | jlong os::Linux::sendfile(int out_fd, int in_fd, jlong* offset, jlong count) {
>       | ^~
> /linuxmuslx86_64/jdk/src/hotspot/os/linux/os_linux.cpp:4376:20: note: recursive call
>  4376 | return sendfile64(out_fd, in_fd, (off64_t*)offset, (size_t)count);
> 
> On Alpine Linux 3.17.4 we have just this definition for sendfile64 :
> sys/sendfile.h:11:ssize_t sendfile(int, int, off_t *, size_t);
> sys/sendfile.h:14:#define sendfile64 sendfile
> 
> So it would be better to use ::sendfile directly.

By using `::` you tell the compiler that this is not `os::sendfile` so it doesn't appear to be a recursive call.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/15843#issuecomment-1729077822


More information about the hotspot-runtime-dev mailing list