[libc-commits] [libc] [libc] create TimeReader to look at a struct tm (PR #126138)

via libc-commits libc-commits at lists.llvm.org
Wed Feb 12 07:39:08 PST 2025


Prabhuk wrote:

> LLVM Buildbot has detected a new failure on builder `libc-aarch64-ubuntu-fullbuild-dbg` running on `libc-aarch64-ubuntu` while building `libc` at step 4 "annotate".
> 
> Full details are available at: https://lab.llvm.org/buildbot/#/builders/71/builds/16077
> 
> Here is the relevant piece of the build log for the reference
> ```
> Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py ...' (failure)
> ...
> [49/153] Generating header sys/select.h from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/runtimes/../libc/include/sys/select.yaml
> [50/152] Generating header pthread.h from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/runtimes/../libc/include/pthread.yaml
> [51/90] Generating header elf.h from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/runtimes/../libc/include/elf.yaml
> [52/90] Generating header setjmp.h from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/runtimes/../libc/include/setjmp.yaml
> [53/90] Generating header sys/types.h from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/runtimes/../libc/include/sys/types.yaml
> [54/88] Generating header sched.h from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/runtimes/../libc/include/sched.yaml
> [55/80] Generating header time.h from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/runtimes/../libc/include/time.yaml
> [56/80] Generating header unistd.h from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/runtimes/../libc/include/unistd.yaml
> [57/68] Generating header math.h from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/runtimes/../libc/include/math.yaml
> [58/68] Building CXX object libc/src/time/CMakeFiles/libc.src.time.mktime.dir/mktime.cpp.o
> FAILED: libc/src/time/CMakeFiles/libc.src.time.mktime.dir/mktime.cpp.o 
> /usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc -isystem libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -fpie -ffreestanding -DLIBC_FULL_BUILD -nostdlibinc -idirafter/usr/include -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -DLIBC_COPT_PUBLIC_PACKAGING -std=gnu++17 -MD -MT libc/src/time/CMakeFiles/libc.src.time.mktime.dir/mktime.cpp.o -MF libc/src/time/CMakeFiles/libc.src.time.mktime.dir/mktime.cpp.o.d -o libc/src/time/CMakeFiles/libc.src.time.mktime.dir/mktime.cpp.o -c /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/mktime.cpp
> In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/mktime.cpp:13:
> /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/time_utils.h:331:32: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
>   LIBC_INLINE constexpr time_t get_epoch() const {
>                                ^
> /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/time_utils.h:332:12: note: non-constexpr function 'mktime_internal' cannot be used in a constant expression
>     return mktime_internal(timeptr);
>            ^
> /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/time_utils.h:29:9: note: declared here
> int64_t mktime_internal(const tm *tm_out);
>         ^
> 1 error generated.
> [59/68] Building CXX object libc/src/time/CMakeFiles/libc.src.time.asctime_r.dir/asctime_r.cpp.o
> FAILED: libc/src/time/CMakeFiles/libc.src.time.asctime_r.dir/asctime_r.cpp.o 
> /usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc -isystem libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -fpie -ffreestanding -DLIBC_FULL_BUILD -nostdlibinc -idirafter/usr/include -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -DLIBC_COPT_PUBLIC_PACKAGING -std=gnu++17 -MD -MT libc/src/time/CMakeFiles/libc.src.time.asctime_r.dir/asctime_r.cpp.o -MF libc/src/time/CMakeFiles/libc.src.time.asctime_r.dir/asctime_r.cpp.o.d -o libc/src/time/CMakeFiles/libc.src.time.asctime_r.dir/asctime_r.cpp.o -c /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/asctime_r.cpp
> In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/asctime_r.cpp:13:
> /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/time_utils.h:331:32: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
>   LIBC_INLINE constexpr time_t get_epoch() const {
>                                ^
> /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/time_utils.h:332:12: note: non-constexpr function 'mktime_internal' cannot be used in a constant expression
>     return mktime_internal(timeptr);
>            ^
> /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/time_utils.h:29:9: note: declared here
> int64_t mktime_internal(const tm *tm_out);
>         ^
> 1 error generated.
> [60/68] Building CXX object libc/src/time/CMakeFiles/libc.src.time.gmtime_r.dir/gmtime_r.cpp.o
> FAILED: libc/src/time/CMakeFiles/libc.src.time.gmtime_r.dir/gmtime_r.cpp.o 
> /usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc -isystem libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -fpie -ffreestanding -DLIBC_FULL_BUILD -nostdlibinc -idirafter/usr/include -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -DLIBC_COPT_PUBLIC_PACKAGING -std=gnu++17 -MD -MT libc/src/time/CMakeFiles/libc.src.time.gmtime_r.dir/gmtime_r.cpp.o -MF libc/src/time/CMakeFiles/libc.src.time.gmtime_r.dir/gmtime_r.cpp.o.d -o libc/src/time/CMakeFiles/libc.src.time.gmtime_r.dir/gmtime_r.cpp.o -c /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/gmtime_r.cpp
> In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/gmtime_r.cpp:12:
> /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/time_utils.h:331:32: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
>   LIBC_INLINE constexpr time_t get_epoch() const {
>                                ^
> /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/time_utils.h:332:12: note: non-constexpr function 'mktime_internal' cannot be used in a constant expression
>     return mktime_internal(timeptr);
>            ^
> /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu-fullbuild-dbg/llvm-project/libc/src/time/time_utils.h:29:9: note: declared here
> int64_t mktime_internal(const tm *tm_out);
> ```

@michaelrj-google We are seeing the same build failure in our Fuchsia toolchain builders as well. 
Bot link: https://luci-milo.appspot.com/ui/p/fuchsia/builders/toolchain.ci/clang-linux-arm64/b8723188067084510049/overview
Logs: https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8723188067084510049/+/u/clang/build/stdout

https://github.com/llvm/llvm-project/pull/126138


More information about the libc-commits mailing list