# Configuration file for sstrip tool facility

if OBSOLETE && ! BACKEND && ARCH_BINFMT_ELF

comment "sstrip"

config SSTRIP
    bool
    prompt "sstrip (OBSOLETE)"
    help
      The sstrip utility, to maximise the striping of ELF binaries
      (executables and libraries).
      
      Buildroot version, forked off the original from ELFkickers.
      This one is somewhat maintained by the buildroot guys.
      Supports big-endian systems.
      
      NOTE! Please read.
        sstrip is now deprecated in crosstool-NG, as it has a few
        shortcomings. For example: it breaks for PPC targets, it
        does not build on non-ELF hosts (eg. mingw32, MacOS-X...).

endif
