diff --git a/configure.ac b/configure.ac index 3c9dac15eae6f20a3ea3fa0557d6071b4b3607b8..fb2a8fcab428ad0f1939e17e22b2bbf978d75c08 100644 --- a/configure.ac +++ b/configure.ac @@ -240,10 +240,6 @@ fi AC_SEARCH_LIBS([socket], [network socket]) AC_SEARCH_LIBS([gethostbyname], [nsl]) -if test x$host_is_linux = xyes; then - AC_CHECK_FUNCS(linkat) -fi - AC_CHECK_FUNCS(getpwnam_r getpwuid_r) AC_CHECK_FUNCS(initgroups) AC_CHECK_FUNCS(fnmatch) diff --git a/src/fs/io/FileOutputStream.cxx b/src/fs/io/FileOutputStream.cxx index 67b9318afbd7aeab138caa40ac76bd79e0fd5ba9..f76a44e5df558bbe3d84e92f9a789b5ea99928fd 100644 --- a/src/fs/io/FileOutputStream.cxx +++ b/src/fs/io/FileOutputStream.cxx @@ -138,7 +138,7 @@ FileOutputStream::Cancel() noexcept #include <unistd.h> #include <errno.h> -#ifdef HAVE_LINKAT +#ifdef __linux__ #ifndef O_TMPFILE /* supported since Linux 3.11 */ #define __O_TMPFILE 020000000 @@ -159,12 +159,12 @@ OpenTempFile(FileDescriptor &fd, Path path) return fd.Open(directory.c_str(), O_TMPFILE|O_WRONLY, 0666); } -#endif /* HAVE_LINKAT */ +#endif /* __linux__ */ inline void FileOutputStream::OpenCreate(bool visible) { -#ifdef HAVE_LINKAT +#ifdef __linux__ /* try Linux's O_TMPFILE first */ is_tmpfile = !visible && OpenTempFile(fd, GetPath()); if (!is_tmpfile) { @@ -175,7 +175,7 @@ FileOutputStream::OpenCreate(bool visible) 0666)) throw FormatErrno("Failed to create %s", GetPath().c_str()); -#ifdef HAVE_LINKAT +#ifdef __linux__ } #else (void)visible; @@ -218,7 +218,7 @@ FileOutputStream::Commit() { assert(IsDefined()); -#ifdef HAVE_LINKAT +#ifdef __linux__ if (is_tmpfile) { unlink(GetPath().c_str()); @@ -251,7 +251,7 @@ FileOutputStream::Cancel() noexcept switch (mode) { case Mode::CREATE: -#ifdef HAVE_LINKAT +#ifdef __linux__ if (!is_tmpfile) #endif unlink(GetPath().c_str()); diff --git a/src/fs/io/FileOutputStream.hxx b/src/fs/io/FileOutputStream.hxx index d96e044d5e9f50a74128b3473f0605f9a28af399..9dfea4019fb8bffae5429223fa814db01f934e2f 100644 --- a/src/fs/io/FileOutputStream.hxx +++ b/src/fs/io/FileOutputStream.hxx @@ -57,7 +57,7 @@ class FileOutputStream final : public OutputStream { FileDescriptor fd = FileDescriptor::Undefined(); #endif -#ifdef HAVE_LINKAT +#ifdef __linux__ /** * Was O_TMPFILE used? If yes, then linkat() must be used to * create a link to this file.