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