[libc-commits] [libc] be7c865 - [libc] Add a few missing deps, includes, and fix a few typos.
Siva Chandra via libc-commits
libc-commits at lists.llvm.org
Tue Feb 1 00:26:45 PST 2022
Author: Siva Chandra
Date: 2022-02-01T00:26:36-08:00
New Revision: be7c865af11c2f0a9fa639f94cc1e607d0f7a0b5
URL: https://github.com/llvm/llvm-project/commit/be7c865af11c2f0a9fa639f94cc1e607d0f7a0b5
DIFF: https://github.com/llvm/llvm-project/commit/be7c865af11c2f0a9fa639f94cc1e607d0f7a0b5.diff
LOG: [libc] Add a few missing deps, includes, and fix a few typos.
This allows us to enable rmdir, mkdir, mkdirat, unlink and unlinkat for
aarch64.
Added:
Modified:
libc/config/linux/aarch64/entrypoints.txt
libc/src/sys/stat/linux/CMakeLists.txt
libc/src/sys/stat/linux/mkdir.cpp
libc/src/unistd/linux/CMakeLists.txt
libc/src/unistd/linux/rmdir.cpp
libc/src/unistd/linux/unlink.cpp
libc/src/unistd/linux/unlinkat.cpp
libc/test/src/fcntl/openat_test.cpp
libc/test/src/sys/stat/mkdirat_test.cpp
Removed:
################################################################################
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index fe43f2e40a37d..f73556afc017b 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -81,10 +81,17 @@ set(TARGET_LIBC_ENTRYPOINTS
libc.src.stdlib.strtoul
libc.src.stdlib.strtoull
+ # sys/stat.h entrypoints
+ libc.src.sys.stat.mkdir
+ libc.src.sys.stat.mkdirat
+
# unistd.h entrypoints
libc.src.unistd.close
libc.src.unistd.fsync
libc.src.unistd.read
+ libc.src.unistd.rmdir
+ libc.src.unistd.unlink
+ libc.src.unistd.unlinkat
libc.src.unistd.write
)
diff --git a/libc/src/sys/stat/linux/CMakeLists.txt b/libc/src/sys/stat/linux/CMakeLists.txt
index 5a818837ae15f..bf92d5f4b88cb 100644
--- a/libc/src/sys/stat/linux/CMakeLists.txt
+++ b/libc/src/sys/stat/linux/CMakeLists.txt
@@ -5,6 +5,7 @@ add_entrypoint_object(
HDRS
../mkdir.h
DEPENDS
+ libc.include.fcntl
libc.include.sys_stat
libc.include.sys_syscall
libc.src.__support.OSUtil.osutil
diff --git a/libc/src/sys/stat/linux/mkdir.cpp b/libc/src/sys/stat/linux/mkdir.cpp
index 3477e1a5cbe8f..135c9b930cc71 100644
--- a/libc/src/sys/stat/linux/mkdir.cpp
+++ b/libc/src/sys/stat/linux/mkdir.cpp
@@ -12,6 +12,7 @@
#include "src/__support/common.h"
#include <errno.h>
+#include <fcntl.h>
#include <sys/stat.h>
#include <sys/syscall.h> // For syscall numbers.
diff --git a/libc/src/unistd/linux/CMakeLists.txt b/libc/src/unistd/linux/CMakeLists.txt
index c08bd18477683..30e073a1cb1be 100644
--- a/libc/src/unistd/linux/CMakeLists.txt
+++ b/libc/src/unistd/linux/CMakeLists.txt
@@ -44,6 +44,7 @@ add_entrypoint_object(
HDRS
../rmdir.h
DEPENDS
+ libc.include.fcntl
libc.include.unistd
libc.include.sys_syscall
libc.src.__support.OSUtil.osutil
@@ -57,6 +58,7 @@ add_entrypoint_object(
HDRS
../unlink.h
DEPENDS
+ libc.include.fcntl
libc.include.unistd
libc.include.sys_syscall
libc.src.__support.OSUtil.osutil
@@ -70,6 +72,7 @@ add_entrypoint_object(
HDRS
../unlinkat.h
DEPENDS
+ libc.include.fcntl
libc.include.unistd
libc.include.sys_syscall
libc.src.__support.OSUtil.osutil
diff --git a/libc/src/unistd/linux/rmdir.cpp b/libc/src/unistd/linux/rmdir.cpp
index 220330aecde5a..8bc180550021b 100644
--- a/libc/src/unistd/linux/rmdir.cpp
+++ b/libc/src/unistd/linux/rmdir.cpp
@@ -12,6 +12,7 @@
#include "src/__support/common.h"
#include <errno.h>
+#include <fcntl.h>
#include <sys/syscall.h> // For syscall numbers.
namespace __llvm_libc {
@@ -20,7 +21,7 @@ LLVM_LIBC_FUNCTION(int, rmdir, (const char *path)) {
#ifdef SYS_rmdir
long ret = __llvm_libc::syscall(SYS_rmdir, path);
#elif defined(SYS_unlinkat)
- long ret = __llvm_libc::syscall(SYS_unlinkat, AT_FDCWD, path, 0);
+ long ret = __llvm_libc::syscall(SYS_unlinkat, AT_FDCWD, path, AT_REMOVEDIR);
#else
#error "rmdir and unlinkat syscalls not available."
#endif
diff --git a/libc/src/unistd/linux/unlink.cpp b/libc/src/unistd/linux/unlink.cpp
index f02f745e79f5b..386a84e7679e2 100644
--- a/libc/src/unistd/linux/unlink.cpp
+++ b/libc/src/unistd/linux/unlink.cpp
@@ -12,6 +12,7 @@
#include "src/__support/common.h"
#include <errno.h>
+#include <fcntl.h>
#include <sys/syscall.h> // For syscall numbers.
namespace __llvm_libc {
diff --git a/libc/src/unistd/linux/unlinkat.cpp b/libc/src/unistd/linux/unlinkat.cpp
index 54d3c103bd7c1..dcfea888453f0 100644
--- a/libc/src/unistd/linux/unlinkat.cpp
+++ b/libc/src/unistd/linux/unlinkat.cpp
@@ -12,6 +12,7 @@
#include "src/__support/common.h"
#include <errno.h>
+#include <fcntl.h>
#include <sys/syscall.h> // For syscall numbers.
namespace __llvm_libc {
diff --git a/libc/test/src/fcntl/openat_test.cpp b/libc/test/src/fcntl/openat_test.cpp
index b4c05f41ccaa9..9a86728b17268 100644
--- a/libc/test/src/fcntl/openat_test.cpp
+++ b/libc/test/src/fcntl/openat_test.cpp
@@ -15,6 +15,7 @@
#include "utils/testutils/FDReader.h"
#include <errno.h>
+#include <fcntl.h>
TEST(LlvmLibcUniStd, OpenAndReadTest) {
using __llvm_libc::testing::ErrnoSetterMatcher::Succeeds;
diff --git a/libc/test/src/sys/stat/mkdirat_test.cpp b/libc/test/src/sys/stat/mkdirat_test.cpp
index 4a45fe2ffb885..dae54c51280c5 100644
--- a/libc/test/src/sys/stat/mkdirat_test.cpp
+++ b/libc/test/src/sys/stat/mkdirat_test.cpp
@@ -17,7 +17,7 @@
TEST(LlvmLibcMkdiratTest, CreateAndRemove) {
using __llvm_libc::testing::ErrnoSetterMatcher::Succeeds;
- constexpr const char *TEST_DIR = "testdata/rmdir.testdir";
+ constexpr const char *TEST_DIR = "testdata/mkdirat.testdir";
ASSERT_THAT(__llvm_libc::mkdirat(AT_FDCWD, TEST_DIR, S_IRWXU), Succeeds(0));
ASSERT_THAT(__llvm_libc::rmdir(TEST_DIR), Succeeds(0));
}
More information about the libc-commits
mailing list