# C library options

menu "C-library"

config LIBC
    string

config LIBC_VERSION
    string
    help
      Enter the date of the snapshot you want to use in the form: YYYYMMDD
      where YYYY is the 4-digit year, MM the 2-digit month and DD the 2-digit
      day in the month.
      
      Please note:
      - glibc has snapshots done every monday, and only the last ten are kept.
      - uClibc has daily snapshots, and only the last 30-or-so are kept.
      
      So if you want to be able to re-build your toolchain later, you will
      have to save your C library tarball by yourself.

source "config.gen/libc.in"

config LIBC_SUPPORT_THREADS_ANY
    bool
    default n

config LIBC_SUPPORT_NPTL
    bool
    default n
    select LIBC_SUPPORT_THREADS_ANY

config LIBC_SUPPORT_LINUXTHREADS
    bool
    default n
    select LIBC_SUPPORT_THREADS_ANY

config LIBC_SUPPORT_WIN32THREADS
    bool
    default n
    select LIBC_SUPPORT_THREADS_ANY

config THREADS
    string
    default "nptl"          if THREADS_NPTL
    default "linuxthreads"  if THREADS_LINUXTHREADS
    default "win32"         if THREADS_WIN32THREADS
    default "none"          if THREADS_NONE || LIBC_none
#                              No C library, no threads!

if ! LIBC_none

comment "Common C library options"

choice
    bool
    prompt "Threading implementation to use:"
    default THREADS_NPTL           if LIBC_SUPPORT_NPTL
    default THREADS_LINUXTHREADS   if LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
    default THREADS_WIN32          if LIBC_SUPPORT_WIN32THREADS
    default THREADS_NONE           if ! LIBC_SUPPORT_THREADS_ANY

config THREADS_NPTL
    bool
    prompt "nptl"
    depends on LIBC_SUPPORT_NPTL

config THREADS_LINUXTHREADS
    bool
    prompt "linuxthreads"
    depends on LIBC_SUPPORT_LINUXTHREADS

config THREADS_WIN32THREADS
    bool
    prompt "win32"
    depends on LIBC_SUPPORT_WIN32THREADS

config THREADS_NONE
    bool
    prompt "none"

endchoice

config LIBC_XLDD
    bool
    prompt "Install a cross ldd-like helper"
    depends on ! BARE_METAL
    default y
    help
      Say 'Y' here if you want to have a ldd-like helper that
      you can run on your build system, and that will (try to)
      resolve shared libraries dependencies as if run on the
      target.
      
      Note that the cross-ldd helper is not a full replacement
      for the native ldd. Please see the help, by running it
      with '--help' for more explanations.

source "config.gen/libc.in.2"

endif # ! LIBC_none

endmenu
