[all-commits] [llvm/llvm-project] ec2a91: [libc] Modular printf option (float only)

Daniel Thornburgh via All-commits all-commits at lists.llvm.org
Tue Nov 25 16:22:07 PST 2025


  Branch: refs/heads/users/mysterymath/modular-printf/libc
  Home:   https://github.com/llvm/llvm-project
  Commit: ec2a91be71a6f78007936e1f8318ff6f29798890
      https://github.com/llvm/llvm-project/commit/ec2a91be71a6f78007936e1f8318ff6f29798890
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/config/config.json
    M libc/docs/configure.rst
    M libc/src/stdio/generic/CMakeLists.txt
    A libc/src/stdio/generic/printf_modular.cpp
    M libc/src/stdio/printf.h
    M libc/src/stdio/printf_core/CMakeLists.txt
    M libc/src/stdio/printf_core/float_dec_converter.h
    M libc/src/stdio/printf_core/float_dec_converter_limited.h
    M libc/src/stdio/printf_core/float_hex_converter.h
    A libc/src/stdio/printf_core/float_impl.cpp
    M libc/src/stdio/printf_core/parser.h
    M libc/src/stdio/printf_core/printf_config.h
    M libc/src/stdio/printf_core/printf_main.h
    M libc/src/stdio/printf_core/vfprintf_internal.h

  Log Message:
  -----------
  [libc] Modular printf option (float only)

This adds LIBC_CONF_PRINTF_MODULAR, which causes floating point support
(later, others) to be weakly linked into the implementation.
__printf_modular becomes the main entry point of the implementaiton, an
printf itself wraps __printf_modular. printf it also contains a
BFD_RELOC_NONE relocation to bring in the float aspect.

See issue #146159 for context.


  Commit: d15f36939747e4129b006f2964ca37321ac2cf7e
      https://github.com/llvm/llvm-project/commit/d15f36939747e4129b006f2964ca37321ac2cf7e
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/src/stdio/printf_core/vfprintf_internal.h

  Log Message:
  -----------
  Fix missed SPLIT->MODULAR rename


  Commit: efcd5b3b588aeb87f5cbc385367e6c4bb100522f
      https://github.com/llvm/llvm-project/commit/efcd5b3b588aeb87f5cbc385367e6c4bb100522f
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/src/stdio/printf_core/float_impl.cpp

  Log Message:
  -----------
  Add missing file header


  Commit: d47e9f2d7a75bf91000df9e2a304925a920950c6
      https://github.com/llvm/llvm-project/commit/d47e9f2d7a75bf91000df9e2a304925a920950c6
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/src/stdio/printf_core/printf_main.h

  Log Message:
  -----------
  Use LIBC_INLINE_ASM macro


  Commit: 6f4b0b157a84c357880aa3d4c660f1fdc35a2c23
      https://github.com/llvm/llvm-project/commit/6f4b0b157a84c357880aa3d4c660f1fdc35a2c23
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/src/stdio/printf_core/float_dec_converter.h
    M libc/src/stdio/printf_core/float_dec_converter_limited.h
    M libc/src/stdio/printf_core/float_hex_converter.h
    M libc/src/stdio/printf_core/parser.h

  Log Message:
  -----------
  LIBC_INLINE for modular fn definitions


  Commit: c54d02403a3451eb2551dd744f9b2cd32011bafe
      https://github.com/llvm/llvm-project/commit/c54d02403a3451eb2551dd744f9b2cd32011bafe
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/src/stdio/baremetal/CMakeLists.txt
    M libc/src/stdio/baremetal/printf.cpp
    A libc/src/stdio/baremetal/printf_modular.cpp
    M libc/src/stdio/generic/CMakeLists.txt
    R libc/src/stdio/generic/printf_modular.cpp
    M libc/src/stdio/gpu/CMakeLists.txt

  Log Message:
  -----------
  Move support to baremetal only


  Commit: 4b4e98fe661eb8c8e8f17852b0abe6f0a05d440d
      https://github.com/llvm/llvm-project/commit/4b4e98fe661eb8c8e8f17852b0abe6f0a05d440d
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/utils/hdrgen/hdrgen/header.py
    M libc/utils/hdrgen/tests/expected_output/test_header.h
    M libc/utils/hdrgen/tests/expected_output/test_small.json
    M libc/utils/hdrgen/tests/input/merge1.yaml

  Log Message:
  -----------
  Allow function-style attribute macros


  Commit: 8b7b3f6d0b062d425792d5249154e4904e7830a1
      https://github.com/llvm/llvm-project/commit/8b7b3f6d0b062d425792d5249154e4904e7830a1
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-macros/CMakeLists.txt
    A libc/include/llvm-libc-macros/_LIBC_MODULAR_FORMAT_PRINTF-disable.h
    A libc/include/llvm-libc-macros/_LIBC_MODULAR_FORMAT_PRINTF.h
    M libc/include/stdio.yaml

  Log Message:
  -----------
  Add attribute to printf


  Commit: 94a9bb77e62278122bd2e03b7d3adc52eb926073
      https://github.com/llvm/llvm-project/commit/94a9bb77e62278122bd2e03b7d3adc52eb926073
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/include/stdio.yaml
    M libc/src/stdio/baremetal/CMakeLists.txt
    M libc/src/stdio/baremetal/vprintf.cpp
    A libc/src/stdio/baremetal/vprintf_modular.cpp
    M libc/src/stdio/vprintf.h

  Log Message:
  -----------
  Modularize baremetal vprintf


  Commit: e047ba3658d40657543cf550ac90925c4ebcd359
      https://github.com/llvm/llvm-project/commit/e047ba3658d40657543cf550ac90925c4ebcd359
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/include/stdio.yaml
    M libc/src/stdio/CMakeLists.txt
    M libc/src/stdio/snprintf.cpp
    M libc/src/stdio/snprintf.h
    A libc/src/stdio/snprintf_modular.cpp

  Log Message:
  -----------
  Modularize snprintf


  Commit: 65c2a9d50c6274baf979664e769b5dac2aaaebe1
      https://github.com/llvm/llvm-project/commit/65c2a9d50c6274baf979664e769b5dac2aaaebe1
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/include/stdio.yaml
    M libc/src/stdio/CMakeLists.txt
    M libc/src/stdio/asprintf.cpp
    M libc/src/stdio/asprintf.h
    A libc/src/stdio/asprintf_modular.cpp
    M libc/src/stdio/printf_core/vasprintf_internal.h

  Log Message:
  -----------
  Modularize asprintf


  Commit: eb1efcd04e1c59fc94bfa7654bd5518a9b6b999c
      https://github.com/llvm/llvm-project/commit/eb1efcd04e1c59fc94bfa7654bd5518a9b6b999c
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/include/stdio.yaml
    M libc/src/stdio/CMakeLists.txt
    M libc/src/stdio/sprintf.cpp
    M libc/src/stdio/sprintf.h
    A libc/src/stdio/sprintf_modular.cpp

  Log Message:
  -----------
  Modularize sprintf


  Commit: 0420f03b956a491a52b77122927958beb34fe45d
      https://github.com/llvm/llvm-project/commit/0420f03b956a491a52b77122927958beb34fe45d
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/include/stdio.yaml
    M libc/src/stdio/CMakeLists.txt
    M libc/src/stdio/vasprintf.cpp
    M libc/src/stdio/vasprintf.h
    A libc/src/stdio/vasprintf_modular.cpp

  Log Message:
  -----------
  Modularize vasprintf


  Commit: 7d3b55b6e8d04b905a29d4d8089391c259864dec
      https://github.com/llvm/llvm-project/commit/7d3b55b6e8d04b905a29d4d8089391c259864dec
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/include/stdio.yaml
    M libc/src/stdio/CMakeLists.txt
    M libc/src/stdio/vsnprintf.cpp
    M libc/src/stdio/vsnprintf.h
    A libc/src/stdio/vsnprintf_modular.cpp

  Log Message:
  -----------
  Modularize vsnprintf


  Commit: cdae60de64960de84b4d811e86f06eeb8260925c
      https://github.com/llvm/llvm-project/commit/cdae60de64960de84b4d811e86f06eeb8260925c
  Author: Daniel Thornburgh <dthorn at google.com>
  Date:   2025-11-25 (Tue, 25 Nov 2025)

  Changed paths:
    M libc/include/stdio.yaml
    M libc/src/stdio/CMakeLists.txt
    M libc/src/stdio/vsprintf.cpp
    M libc/src/stdio/vsprintf.h
    A libc/src/stdio/vsprintf_modular.cpp

  Log Message:
  -----------
  Modularize vsprintf


Compare: https://github.com/llvm/llvm-project/compare/40cbed774962...cdae60de6496

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list