mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
8318696: Do not use LFS64 symbols on Linux
Reviewed-by: ihse, dholmes, kbarrett, mbaesken
This commit is contained in:
@@ -479,7 +479,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
|
||||
[
|
||||
#### OS DEFINES, these should be independent on toolchain
|
||||
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||||
CFLAGS_OS_DEF_JVM="-DLINUX"
|
||||
CFLAGS_OS_DEF_JVM="-DLINUX -D_FILE_OFFSET_BITS=64"
|
||||
CFLAGS_OS_DEF_JDK="-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
||||
elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
CFLAGS_OS_DEF_JVM="-D_ALLBSD_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -184,6 +184,8 @@ int LinuxAttachListener::init() {
|
||||
char initial_path[UNIX_PATH_MAX]; // socket file during setup
|
||||
int listener; // listener socket (file descriptor)
|
||||
|
||||
static_assert(sizeof(off_t) == 8, "Expected Large File Support in this file");
|
||||
|
||||
// register function to cleanup
|
||||
if (!_atexit_registered) {
|
||||
_atexit_registered = true;
|
||||
@@ -446,14 +448,14 @@ AttachOperation* AttachListener::dequeue() {
|
||||
|
||||
void AttachListener::vm_start() {
|
||||
char fn[UNIX_PATH_MAX];
|
||||
struct stat64 st;
|
||||
struct stat st;
|
||||
int ret;
|
||||
|
||||
int n = snprintf(fn, UNIX_PATH_MAX, "%s/.java_pid%d",
|
||||
os::get_temp_directory(), os::current_process_id());
|
||||
assert(n < (int)UNIX_PATH_MAX, "java_pid file name buffer overflow");
|
||||
|
||||
RESTARTABLE(::stat64(fn, &st), ret);
|
||||
RESTARTABLE(::stat(fn, &st), ret);
|
||||
if (ret == 0) {
|
||||
ret = ::unlink(fn);
|
||||
if (ret == -1) {
|
||||
@@ -473,8 +475,8 @@ int AttachListener::pd_init() {
|
||||
|
||||
bool AttachListener::check_socket_file() {
|
||||
int ret;
|
||||
struct stat64 st;
|
||||
ret = stat64(LinuxAttachListener::path(), &st);
|
||||
struct stat st;
|
||||
ret = stat(LinuxAttachListener::path(), &st);
|
||||
if (ret == -1) { // need to restart attach listener.
|
||||
log_debug(attach)("Socket file %s does not exist - Restart Attach Listener",
|
||||
LinuxAttachListener::path());
|
||||
@@ -513,14 +515,14 @@ bool AttachListener::is_init_trigger() {
|
||||
}
|
||||
char fn[PATH_MAX + 1];
|
||||
int ret;
|
||||
struct stat64 st;
|
||||
struct stat st;
|
||||
os::snprintf_checked(fn, sizeof(fn), ".attach_pid%d", os::current_process_id());
|
||||
RESTARTABLE(::stat64(fn, &st), ret);
|
||||
RESTARTABLE(::stat(fn, &st), ret);
|
||||
if (ret == -1) {
|
||||
log_trace(attach)("Failed to find attach file: %s, trying alternate", fn);
|
||||
snprintf(fn, sizeof(fn), "%s/.attach_pid%d",
|
||||
os::get_temp_directory(), os::current_process_id());
|
||||
RESTARTABLE(::stat64(fn, &st), ret);
|
||||
RESTARTABLE(::stat(fn, &st), ret);
|
||||
if (ret == -1) {
|
||||
log_debug(attach)("Failed to find attach file: %s", fn);
|
||||
}
|
||||
|
||||
@@ -2772,6 +2772,8 @@ void os::jvm_path(char *buf, jint buflen) {
|
||||
void linux_wrap_code(char* base, size_t size) {
|
||||
static volatile jint cnt = 0;
|
||||
|
||||
static_assert(sizeof(off_t) == 8, "Expected Large File Support in this file");
|
||||
|
||||
if (!UseOprofile) {
|
||||
return;
|
||||
}
|
||||
@@ -4262,7 +4264,7 @@ jlong os::Linux::fast_thread_cpu_time(clockid_t clockid) {
|
||||
// the number of bytes written to out_fd is returned if transfer was successful
|
||||
// otherwise, returns -1 that implies an error
|
||||
jlong os::Linux::sendfile(int out_fd, int in_fd, jlong* offset, jlong count) {
|
||||
return ::sendfile64(out_fd, in_fd, (off64_t*)offset, (size_t)count);
|
||||
return ::sendfile(out_fd, in_fd, (off_t*)offset, (size_t)count);
|
||||
}
|
||||
|
||||
// Determine if the vmid is the parent pid for a child in a PID namespace.
|
||||
@@ -4940,14 +4942,14 @@ int os::open(const char *path, int oflag, int mode) {
|
||||
oflag |= O_CLOEXEC;
|
||||
#endif
|
||||
|
||||
int fd = ::open64(path, oflag, mode);
|
||||
int fd = ::open(path, oflag, mode);
|
||||
if (fd == -1) return -1;
|
||||
|
||||
//If the open succeeded, the file might still be a directory
|
||||
{
|
||||
struct stat64 buf64;
|
||||
int ret = ::fstat64(fd, &buf64);
|
||||
int st_mode = buf64.st_mode;
|
||||
struct stat buf;
|
||||
int ret = ::fstat(fd, &buf);
|
||||
int st_mode = buf.st_mode;
|
||||
|
||||
if (ret != -1) {
|
||||
if ((st_mode & S_IFMT) == S_IFDIR) {
|
||||
@@ -4984,17 +4986,17 @@ int os::open(const char *path, int oflag, int mode) {
|
||||
int os::create_binary_file(const char* path, bool rewrite_existing) {
|
||||
int oflags = O_WRONLY | O_CREAT;
|
||||
oflags |= rewrite_existing ? O_TRUNC : O_EXCL;
|
||||
return ::open64(path, oflags, S_IREAD | S_IWRITE);
|
||||
return ::open(path, oflags, S_IREAD | S_IWRITE);
|
||||
}
|
||||
|
||||
// return current position of file pointer
|
||||
jlong os::current_file_offset(int fd) {
|
||||
return (jlong)::lseek64(fd, (off64_t)0, SEEK_CUR);
|
||||
return (jlong)::lseek(fd, (off_t)0, SEEK_CUR);
|
||||
}
|
||||
|
||||
// move file pointer to the specified offset
|
||||
jlong os::seek_to_file_offset(int fd, jlong offset) {
|
||||
return (jlong)::lseek64(fd, (off64_t)offset, SEEK_SET);
|
||||
return (jlong)::lseek(fd, (off_t)offset, SEEK_SET);
|
||||
}
|
||||
|
||||
// Map a block of memory.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -287,6 +287,7 @@ static char* reserve_mmapped_memory(size_t bytes, char* requested_addr) {
|
||||
}
|
||||
|
||||
static int util_posix_fallocate(int fd, off_t offset, off_t len) {
|
||||
static_assert(sizeof(off_t) == 8, "Expected Large File Support in this file");
|
||||
#ifdef __APPLE__
|
||||
fstore_t store = { F_ALLOCATECONTIG, F_PEOFPOSMODE, 0, len };
|
||||
// First we try to get a continuous chunk of disk space
|
||||
@@ -752,11 +753,11 @@ void os::dll_unload(void *lib) {
|
||||
}
|
||||
|
||||
jlong os::lseek(int fd, jlong offset, int whence) {
|
||||
return (jlong) BSD_ONLY(::lseek) NOT_BSD(::lseek64)(fd, offset, whence);
|
||||
return (jlong) ::lseek(fd, offset, whence);
|
||||
}
|
||||
|
||||
int os::ftruncate(int fd, jlong length) {
|
||||
return BSD_ONLY(::ftruncate) NOT_BSD(::ftruncate64)(fd, length);
|
||||
return ::ftruncate(fd, length);
|
||||
}
|
||||
|
||||
const char* os::get_current_directory(char *buf, size_t buflen) {
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
// Note: the Posix API aims to capture functionality available on all Posix
|
||||
// compliant platforms, but in practice the implementations may depend on
|
||||
// non-Posix functionality. For example, the use of lseek64 and ftruncate64.
|
||||
// non-Posix functionality.
|
||||
// This use of non-Posix API's is made possible by compiling/linking in a mode
|
||||
// that is not restricted to being fully Posix complaint, such as by declaring
|
||||
// -D_GNU_SOURCE. But be aware that in doing so we may enable non-Posix
|
||||
|
||||
Reference in New Issue
Block a user