# Menu for the native gdbserver

config GDB_GDBSERVER
    bool
    prompt "gdbserver"
    depends on ! BARE_METAL
    help
      Build and install a gdbserver for the target, to run on the target.

if GDB_GDBSERVER

config GDB_GDBSERVER_HAS_IPA_LIB
    bool
    depends on GDB_7_2_or_later
    default y

config GDB_GDBSERVER_STATIC
    bool
    prompt "Build a static gdbserver"
    default y
    help
      In case you have trouble with dynamic loading of shared libraries,
      you will find that a static gdbserver comes in handy.

config GDB_GDBSERVER_BUILD_IPA_LIB
    bool
    prompt "Build the IPA library"
    depends on GDB_GDBSERVER_HAS_IPA_LIB && !GDB_GDBSERVER_STATIC
    help
      gdbserver >= 7.2 comes with an optional library to use tracepoints,
      the In Process Agent (IPA) library, libinproctrace.so.
      
      Say 'y' if you indend to use tracepoints when debugging your
      programs with gdbserver.
      
      Note: Currently, building this library is not possible when the
            gdbserver is built statically. This is a limitation in
            crosstool-NG, so do not bug upstream about it...

endif # GDB_GDBSERVER

if BARE_METAL
comment "In bare-metal, you'll need to   "
comment "provide your own gdbserver stub."
endif # BARE_METAL
