mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 11:37:35 +00:00
a092fda388
This change figures out some of the build configuration issues we've been having with libcxx. The c++ span header is added. Per a Discord discussion we're now turning off `-g` for the default build mode, so consider using `make MODE=dbg` or `make MODE=zero` for GDB debugging which works much better than `MODE=` ever has. Note that the default build mode has always had very good function call / system call logs plus you can still use ShowCrashReports() for backtrace. Making this change ensures cosmocc will better conform to FOSS norms. Lastly the LoadZipArgs() API has been added to cosmopolitan.a and <cosmo.h>.
85 lines
1.8 KiB
C++
85 lines
1.8 KiB
C++
// -*- C++ -*-
|
|
//===---------------------------- ctime -----------------------------------===//
|
|
//
|
|
// 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 _LIBCPP_CTIME
|
|
#define _LIBCPP_CTIME
|
|
|
|
#include "third_party/libcxx/__config"
|
|
#include "libc/calls/calls.h"
|
|
#include "libc/calls/struct/timespec.h"
|
|
#include "libc/calls/weirdtypes.h"
|
|
#include "libc/time/struct/tm.h"
|
|
#include "libc/time/time.h"
|
|
|
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
|
|
/*
|
|
ctime synopsis
|
|
|
|
Macros:
|
|
|
|
NULL
|
|
CLOCKS_PER_SEC
|
|
TIME_UTC // C++17
|
|
|
|
namespace std
|
|
{
|
|
|
|
Types:
|
|
|
|
clock_t
|
|
size_t
|
|
time_t
|
|
tm
|
|
timespec // C++17
|
|
|
|
clock_t clock();
|
|
double difftime(time_t time1, time_t time0);
|
|
time_t mktime(tm* timeptr);
|
|
time_t time(time_t* timer);
|
|
char* asctime(const tm* timeptr);
|
|
char* ctime(const time_t* timer);
|
|
tm* gmtime(const time_t* timer);
|
|
tm* localtime(const time_t* timer);
|
|
size_t strftime(char* restrict s, size_t maxsize, const char* restrict format,
|
|
const tm* restrict timeptr);
|
|
int timespec_get( struct timespec *ts, int base); // C++17
|
|
} // std
|
|
|
|
*/
|
|
|
|
using ::clock_t;
|
|
using ::size_t;
|
|
using ::time_t;
|
|
using ::tm;
|
|
#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_C11_FEATURES)
|
|
using ::timespec;
|
|
#endif
|
|
using ::clock;
|
|
using ::difftime;
|
|
using ::mktime;
|
|
using ::time;
|
|
#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS
|
|
using ::asctime;
|
|
using ::ctime;
|
|
using ::gmtime;
|
|
using ::localtime;
|
|
#endif
|
|
using ::strftime;
|
|
#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_TIMESPEC_GET)
|
|
using ::timespec_get;
|
|
#endif
|
|
|
|
_LIBCPP_END_NAMESPACE_STD
|
|
|
|
#endif // _LIBCPP_CTIME
|