[libc-commits] [libc] Revert "[libc] Add strftime_l" (PR #127766)

Petr Hosek via libc-commits libc-commits at lists.llvm.org
Wed Feb 19 00:39:33 PST 2025


https://github.com/petrhosek created https://github.com/llvm/llvm-project/pull/127766

Reverts llvm/llvm-project#127708

>From fea10f7ff16ddd019841a69697194d373325ff6b Mon Sep 17 00:00:00 2001
From: Petr Hosek <phosek at google.com>
Date: Wed, 19 Feb 2025 00:39:14 -0800
Subject: [PATCH] Revert "[libc] Add strftime_l (#127708)"

This reverts commit 9072ba71cac6d518b4164615c609e358d49c4ed2.
---
 libc/config/baremetal/aarch64/entrypoints.txt |  2 --
 libc/config/baremetal/arm/entrypoints.txt     |  2 --
 libc/config/baremetal/riscv/entrypoints.txt   |  2 --
 libc/config/linux/x86_64/entrypoints.txt      |  1 -
 libc/include/time.yaml                        | 11 -------
 libc/src/time/CMakeLists.txt                  | 14 --------
 libc/src/time/strftime.cpp                    |  1 +
 libc/src/time/strftime_l.cpp                  | 33 -------------------
 libc/src/time/strftime_l.h                    | 25 --------------
 9 files changed, 1 insertion(+), 90 deletions(-)
 delete mode 100644 libc/src/time/strftime_l.cpp
 delete mode 100644 libc/src/time/strftime_l.h

diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt
index 2c226ef176c08..44c4ab49e5c58 100644
--- a/libc/config/baremetal/aarch64/entrypoints.txt
+++ b/libc/config/baremetal/aarch64/entrypoints.txt
@@ -248,8 +248,6 @@ set(TARGET_LIBC_ENTRYPOINTS
     libc.src.time.gmtime
     libc.src.time.gmtime_r
     libc.src.time.mktime
-    libc.src.time.strftime
-    libc.src.time.strftime_l
     libc.src.time.timespec_get
 
     # internal entrypoints
diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt
index 6fd1fce3ab245..370b5462fe9e8 100644
--- a/libc/config/baremetal/arm/entrypoints.txt
+++ b/libc/config/baremetal/arm/entrypoints.txt
@@ -248,8 +248,6 @@ set(TARGET_LIBC_ENTRYPOINTS
     libc.src.time.gmtime
     libc.src.time.gmtime_r
     libc.src.time.mktime
-    libc.src.time.strftime
-    libc.src.time.strftime_l
     libc.src.time.timespec_get
 
     # internal entrypoints
diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt
index 5985c495bdaf2..07311a60a17a2 100644
--- a/libc/config/baremetal/riscv/entrypoints.txt
+++ b/libc/config/baremetal/riscv/entrypoints.txt
@@ -244,8 +244,6 @@ set(TARGET_LIBC_ENTRYPOINTS
     libc.src.time.gmtime
     libc.src.time.gmtime_r
     libc.src.time.mktime
-    libc.src.time.strftime
-    libc.src.time.strftime_l
     libc.src.time.timespec_get
 
     # internal entrypoints
diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt
index 2e3af00ec303d..a4f6671a59789 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -1128,7 +1128,6 @@ if(LLVM_LIBC_FULL_BUILD)
     libc.src.time.mktime
     libc.src.time.nanosleep
     libc.src.time.strftime
-    libc.src.time.strftime_l
     libc.src.time.time
     libc.src.time.timespec_get
 
diff --git a/libc/include/time.yaml b/libc/include/time.yaml
index 7bb25dbe85ac4..37ee824678cda 100644
--- a/libc/include/time.yaml
+++ b/libc/include/time.yaml
@@ -9,7 +9,6 @@ types:
   - type_name: time_t
   - type_name: clock_t
   - type_name: size_t
-  - type_name: locale_t
 enums: []
 objects: []
 functions:
@@ -101,16 +100,6 @@ functions:
       - type: size_t
       - type: const char *__restrict
       - type: const struct tm *__restrict
-  - name: strftime_l
-    standard:
-      - stdc
-    return_type: size_t
-    arguments:
-      - type: char *__restrict
-      - type: size_t
-      - type: const char *__restrict
-      - type: const struct tm *__restrict
-      - type: locale_t
   - name: time
     standard:
       - stdc
diff --git a/libc/src/time/CMakeLists.txt b/libc/src/time/CMakeLists.txt
index 3b951df810011..8332e8ab66f97 100644
--- a/libc/src/time/CMakeLists.txt
+++ b/libc/src/time/CMakeLists.txt
@@ -150,20 +150,6 @@ add_entrypoint_object(
     libc.src.time.strftime_core.strftime_main
 )
 
-add_entrypoint_object(
-  strftime_l
-  SRCS
-    strftime_l.cpp
-  HDRS
-    strftime_l.h
-  DEPENDS
-    libc.hdr.types.locale_t
-    libc.hdr.types.size_t
-    libc.hdr.types.struct_tm
-    libc.src.stdio.printf_core.writer
-    libc.src.time.strftime_core.strftime_main
-)
-
 add_entrypoint_object(
   time
   SRCS
diff --git a/libc/src/time/strftime.cpp b/libc/src/time/strftime.cpp
index c19e58fbadf71..4b89bf2ea3a70 100644
--- a/libc/src/time/strftime.cpp
+++ b/libc/src/time/strftime.cpp
@@ -19,6 +19,7 @@ namespace LIBC_NAMESPACE_DECL {
 LLVM_LIBC_FUNCTION(size_t, strftime,
                    (char *__restrict buffer, size_t buffsz,
                     const char *__restrict format, const tm *timeptr)) {
+
   printf_core::WriteBuffer wb(buffer, (buffsz > 0 ? buffsz - 1 : 0));
   printf_core::Writer writer(&wb);
   int ret = strftime_core::strftime_main(&writer, format, timeptr);
diff --git a/libc/src/time/strftime_l.cpp b/libc/src/time/strftime_l.cpp
deleted file mode 100644
index 4203136af4cba..0000000000000
--- a/libc/src/time/strftime_l.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-//===-- Implementation of strftime_l 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/time/strftime_l.h"
-#include "hdr/types/size_t.h"
-#include "hdr/types/struct_tm.h"
-#include "include/llvm-libc-types/locale_t.h"
-#include "src/__support/common.h"
-#include "src/__support/macros/config.h"
-#include "src/stdio/printf_core/writer.h"
-#include "src/time/strftime_core/strftime_main.h"
-
-namespace LIBC_NAMESPACE_DECL {
-
-// TODO: Add support for locales.
-LLVM_LIBC_FUNCTION(size_t, strftime_l,
-                   (char *__restrict buffer, size_t count,
-                    const char *__restrict format,
-                    const struct tm *__restrict tp, locale_t)) {
-  printf_core::WriteBuffer wb(buffer, (buffsz > 0 ? buffsz - 1 : 0));
-  printf_core::Writer writer(&wb);
-  int ret = strftime_core::strftime_main(&writer, format, timeptr);
-  if (buffsz > 0) // if the buffsz is 0 the buffer may be a null pointer.
-    wb.buff[wb.buff_cur] = '\0';
-  return (ret < 0 || static_cast<size_t>(ret) > buffsz) ? 0 : ret;
-}
-
-} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/time/strftime_l.h b/libc/src/time/strftime_l.h
deleted file mode 100644
index 158c4a63986b4..0000000000000
--- a/libc/src/time/strftime_l.h
+++ /dev/null
@@ -1,25 +0,0 @@
-//===-- Implementation header for strftime_l --------------------*- 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_TIME_STRFTIME_L_H
-#define LLVM_LIBC_SRC_TIME_STRFTIME_L_H
-
-#include "hdr/types/size_t.h"
-#include "hdr/types/struct_tm.h"
-#include "include/llvm-libc-types/locale_t.h"
-#include "src/__support/macros/config.h"
-
-namespace LIBC_NAMESPACE_DECL {
-
-size_t strftime_l(char *__restrict buffer, size_t count,
-                  const char *__restrict format, const struct tm *__restrict tp,
-                  locale_t);
-
-} // namespace LIBC_NAMESPACE_DECL
-
-#endif // LLVM_LIBC_SRC_TIME_STRFTIME_L_H



More information about the libc-commits mailing list