From 3c2feab7d152b7f161b4adaecef4ec81f038a23e Mon Sep 17 00:00:00 2001 From: lntue <35648136+lntue@users.noreply.github.com> Date: Tue, 9 Apr 2024 23:48:09 -0400 Subject: Revert "[libc] implement ioctl" (#88226) Reverts llvm/llvm-project#85890 This fails in full build mode: https://lab.llvm.org/buildbot/#/builders/163/builds/54478/steps/4/logs/stdio --- libc/config/linux/aarch64/entrypoints.txt | 3 --- libc/config/linux/riscv/entrypoints.txt | 3 --- libc/config/linux/x86_64/entrypoints.txt | 3 --- libc/spec/linux.td | 18 ------------- libc/src/sys/CMakeLists.txt | 1 - libc/src/sys/ioctl/CMakeLists.txt | 12 --------- libc/src/sys/ioctl/ioctl.h | 17 ------------- libc/src/sys/ioctl/linux/CMakeLists.txt | 13 ---------- libc/src/sys/ioctl/linux/ioctl.cpp | 38 ---------------------------- libc/test/src/sys/ioctl/CMakeLists.txt | 3 --- libc/test/src/sys/ioctl/linux/CMakeLists.txt | 14 ---------- libc/test/src/sys/ioctl/linux/ioctl_test.cpp | 27 -------------------- 12 files changed, 152 deletions(-) delete mode 100644 libc/src/sys/ioctl/CMakeLists.txt delete mode 100644 libc/src/sys/ioctl/ioctl.h delete mode 100644 libc/src/sys/ioctl/linux/CMakeLists.txt delete mode 100644 libc/src/sys/ioctl/linux/ioctl.cpp delete mode 100644 libc/test/src/sys/ioctl/CMakeLists.txt delete mode 100644 libc/test/src/sys/ioctl/linux/CMakeLists.txt delete mode 100644 libc/test/src/sys/ioctl/linux/ioctl_test.cpp diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt index 5649e3c..f5f5c43 100644 --- a/libc/config/linux/aarch64/entrypoints.txt +++ b/libc/config/linux/aarch64/entrypoints.txt @@ -204,9 +204,6 @@ set(TARGET_LIBC_ENTRYPOINTS #libc.src.stdio.scanf #libc.src.stdio.fscanf - # sys/ioctl.h entrypoints - libc.src.sys.ioctl.ioctl - # sys/mman.h entrypoints libc.src.sys.mman.madvise libc.src.sys.mman.mmap diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt index 6c71932..7128978 100644 --- a/libc/config/linux/riscv/entrypoints.txt +++ b/libc/config/linux/riscv/entrypoints.txt @@ -209,9 +209,6 @@ set(TARGET_LIBC_ENTRYPOINTS libc.src.stdio.scanf libc.src.stdio.fscanf - # sys/ioctl.h entrypoints - libc.src.sys.ioctl.ioctl - # sys/mman.h entrypoints libc.src.sys.mman.madvise libc.src.sys.mman.mmap diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt index 5880ad5..6bb53cb 100644 --- a/libc/config/linux/x86_64/entrypoints.txt +++ b/libc/config/linux/x86_64/entrypoints.txt @@ -221,9 +221,6 @@ set(TARGET_LIBC_ENTRYPOINTS # https://github.com/llvm/llvm-project/issues/80060 # libc.src.sys.epoll.epoll_pwait2 - # sys/ioctl.h entrypoints - libc.src.sys.ioctl.ioctl - # sys/mman.h entrypoints libc.src.sys.mman.madvise libc.src.sys.mman.mmap diff --git a/libc/spec/linux.td b/libc/spec/linux.td index 6e9b64f..f91f55d 100644 --- a/libc/spec/linux.td +++ b/libc/spec/linux.td @@ -79,24 +79,6 @@ def Linux : StandardSpec<"Linux"> { [] // Functions >; - HeaderSpec SysIoctl = HeaderSpec< - "sys/ioctl.h", - [Macro<"MAP_ANONYMOUS">], - [], // Types - [], // Enumerations - [ - FunctionSpec< - "ioctl", - RetValSpec, - [ - ArgSpec, - ArgSpec, - ArgSpec, - ] - >, - ] // Functions - >; - HeaderSpec SysMMan = HeaderSpec< "sys/mman.h", [Macro<"MAP_ANONYMOUS">], diff --git a/libc/src/sys/CMakeLists.txt b/libc/src/sys/CMakeLists.txt index ac54df3..adc666b 100644 --- a/libc/src/sys/CMakeLists.txt +++ b/libc/src/sys/CMakeLists.txt @@ -1,6 +1,5 @@ add_subdirectory(auxv) add_subdirectory(epoll) -add_subdirectory(ioctl) add_subdirectory(mman) add_subdirectory(random) add_subdirectory(resource) diff --git a/libc/src/sys/ioctl/CMakeLists.txt b/libc/src/sys/ioctl/CMakeLists.txt deleted file mode 100644 index 4b50c27..0000000 --- a/libc/src/sys/ioctl/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS}) - add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS}) -endif() - -add_entrypoint_object( - ioctl - ALIAS - DEPENDS - .${LIBC_TARGET_OS}.ioctl -) - - diff --git a/libc/src/sys/ioctl/ioctl.h b/libc/src/sys/ioctl/ioctl.h deleted file mode 100644 index 8365678..0000000 --- a/libc/src/sys/ioctl/ioctl.h +++ /dev/null @@ -1,17 +0,0 @@ -//===-- Implementation header for mmap function -----------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_LIBC_SRC_SYS_IOCTL_IOCTL_H -#define LLVM_LIBC_SRC_SYS_IOCTL_IOCTL_H -namespace LIBC_NAMESPACE { - -int ioctl(int fd, unsigned long request, ...); - -} // namespace LIBC_NAMESPACE - -#endif // LLVM_LIBC_SRC_SYS_IOCTL_IOCTL_H diff --git a/libc/src/sys/ioctl/linux/CMakeLists.txt b/libc/src/sys/ioctl/linux/CMakeLists.txt deleted file mode 100644 index 8a23505..0000000 --- a/libc/src/sys/ioctl/linux/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -add_entrypoint_object( - ioctl - SRCS - ioctl.cpp - HDRS - ../ioctl.h - DEPENDS - libc.include.sys_ioctl - libc.include.sys_syscall - libc.src.__support.OSUtil.osutil - libc.src.errno.errno -) - diff --git a/libc/src/sys/ioctl/linux/ioctl.cpp b/libc/src/sys/ioctl/linux/ioctl.cpp deleted file mode 100644 index 6c8ff54..0000000 --- a/libc/src/sys/ioctl/linux/ioctl.cpp +++ /dev/null @@ -1,38 +0,0 @@ -//===---------- Linux implementation of the POSIX ioctl function --------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include "src/sys/ioctl/ioctl.h" - -#include "src/__support/OSUtil/syscall.h" // For internal syscall function. -#include "src/__support/common.h" -#include "src/errno/libc_errno.h" -#include -#include // For syscall numbers. - -namespace LIBC_NAMESPACE { - -// This function is currently linux only. It has to be refactored suitably if -// madvise is to be supported on non-linux operating systems also. -LLVM_LIBC_FUNCTION(int, ioctl, (int fd, unsigned long request, ...)) { - va_list ptr_to_memory; - va_start(ptr_to_memory, 1); - va_arg(ptr_to_memory, void *) int ret = - LIBC_NAMESPACE::syscall_impl(SYS_ioctl, fd, request, ptr_to_memory); - va_end(ptr_to_memory); - - // A negative return value indicates an error with the magnitude of the - // value being the error code. - if (ret < 0) { - libc_errno = -ret; - return -1; - } - - return 0; -} - -} // namespace LIBC_NAMESPACE diff --git a/libc/test/src/sys/ioctl/CMakeLists.txt b/libc/test/src/sys/ioctl/CMakeLists.txt deleted file mode 100644 index b4bbe81c..0000000 --- a/libc/test/src/sys/ioctl/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_OS}) - add_subdirectory(${LIBC_TARGET_OS}) -endif() diff --git a/libc/test/src/sys/ioctl/linux/CMakeLists.txt b/libc/test/src/sys/ioctl/linux/CMakeLists.txt deleted file mode 100644 index 93e6897..0000000 --- a/libc/test/src/sys/ioctl/linux/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -add_custom_target(libc_sys_ioctl_unittests) - -add_libc_unittest( - ioctl_test - SUITE - libc_sys_ioctl_unittests - SRCS - ioctl_test.cpp - DEPENDS - libc.include.sys_ioctl - libc.src.errno.errno - libc.test.errno_setter_matcher -) - diff --git a/libc/test/src/sys/ioctl/linux/ioctl_test.cpp b/libc/test/src/sys/ioctl/linux/ioctl_test.cpp deleted file mode 100644 index 3de3eff..0000000 --- a/libc/test/src/sys/ioctl/linux/ioctl_test.cpp +++ /dev/null @@ -1,27 +0,0 @@ -//===-- Unittests for ioctl -----------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include "src/__support/OSUtil/syscall.h" // For internal syscall function. -#include "src/errno/libc_errno.h" -#include "src/sys/ioctl/ioctl.h" -#include "test/UnitTest/ErrnoSetterMatcher.h" -#include "test/UnitTest/LibcTest.h" -#include "test/UnitTest/Test.h" - -#include -#include - -using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Fails; -using LIBC_NAMESPACE::testing::ErrnoSetterMatcher::Succeeds; - -TEST(LlvmLibcIoctlTest, InvalidFileDescriptor) { - int fd = 10; - unsigned long request = 10; - int res = LIBC_NAMESPACE::ioctl(fd, 10, NULL); - EXPECT_THAT(res, Fails(EBADF, -1)); -} -- cgit v1.1