// -*- mode:doc; -*-
// vim: set syntax=asciidoc:

== Known issues

* It is not possible to pass extra linker options via +BR2_TARGET_LDFLAGS+
  if such options contain a +$+ sign. For example, the following is known
  to break: +BR2_TARGET_LDFLAGS="-Wl,-rpath=\'$ORIGIN/../lib'"+

* The +ltp-testsuite+ package does not build with the default uClibc
  configuration used by the Buildroot toolchain backend. The LTP
  testsuite uses several functions that are considered obsolete, such
  as sigset() and others. uClibc configuration options such as
  DO_XSI_MATH, UCLIBC_HAS_OBSOLETE_BSD_SIGNAL and
  UCLIBC_SV4_DEPRECATED are needed if one wants to build the
  +ltp-testsuite+ package with uClibc. You need to either use a glibc
  or eglibc based toolchain, or enable the appropriate options in the
  uClibc configuration.

* The +xfsprogs+ package does not build with the default uClibc
  configuration used by the Buildroot toolchain backend. You need to
  either use a glibc or eglibc based toolchain, or enable the
  appropriate options in the uClibc configuration.

* The +mrouted+ package does not build with the default uClibc
  configuration used by the Buildroot toolchain backend. You need to
  either use a glibc or eglibc based toolchain, or enable the
  appropriate options in the uClibc configuration.

* The +libffi+ package is not supported on the SuperH 2 and ARC
  architectures.

* The +prboom+ package triggers a compiler failure with the SuperH 4
  compiler from Sourcery CodeBench, version 2012.09.

