[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