[ARM/FDPIC,v2,02/21,ARM] FDPIC: Handle arm*-*-uclinuxfdpiceabi in configure scripts

Message ID 20180713161136.29104-3-christophe.lyon@st.com
State Superseded
Headers show
Series
  • FDPIC ABI for ARM
Related show

Commit Message

Christophe Lyon July 13, 2018, 4:10 p.m.
From: Christophe Lyon <christophe.lyon@linaro.org>


The new arm-uclinuxfdpiceabi target behaves pretty much like
arm-linux-gnueabi. In order the enable the same set of features, we
have to update several configure scripts that generally match targets
like *-*-linux*: in most places, we add *-uclinux* where there is
already *-linux*, or uclinux* when there is already linux*.

In gcc/config.gcc and libgcc/config.host we use *-*-uclinuxfdpiceabi
because there is already a different behaviour for *-*uclinux* target.

In libtool.m4, we use uclinuxfdpiceabi in cases where ELF shared
libraries support is required, as uclinux does not guarantee that.

2018-XX-XX  Christophe Lyon  <christophe.lyon@st.com>

	* config/futex.m4: Handle *-uclinux*.
	* config/tls.m4 (GCC_CHECK_TLS): Likewise.
	* gcc/config.gcc: Handle *-*-uclinuxfdpiceabi.
	* libatomic/configure.tgt: Handle arm*-*-uclinux*.
	* libgcc/config.host: Handle *-*-uclinuxfdpiceabi.
	* libitm/configure.tgt: Handle *-*-uclinux*.
	* libatomic/configure: Regenerate.
	* libitm/configure: Regenerate.
	* libstdc++-v3/acinclude.m4: Handle uclinux*.
	* libstdc++-v3/configure: Regenerate.
	* libstdc++-v3/configure.host: Handle uclinux*
	* libtool.m4: Handle uclinux*.

Change-Id: I6a1fdcd9847d8a82179a214612a3474c1f492916

-- 
2.6.3

Comments

Kyrill Tkachov Aug. 29, 2018, 10:46 a.m. | #1
On 13/07/18 17:10, christophe.lyon@st.com wrote:
> From: Christophe Lyon <christophe.lyon@linaro.org>

>

> The new arm-uclinuxfdpiceabi target behaves pretty much like

> arm-linux-gnueabi. In order the enable the same set of features, we

> have to update several configure scripts that generally match targets

> like *-*-linux*: in most places, we add *-uclinux* where there is

> already *-linux*, or uclinux* when there is already linux*.

>

> In gcc/config.gcc and libgcc/config.host we use *-*-uclinuxfdpiceabi

> because there is already a different behaviour for *-*uclinux* target.

>

> In libtool.m4, we use uclinuxfdpiceabi in cases where ELF shared

> libraries support is required, as uclinux does not guarantee that.

>

> 2018-XX-XX  Christophe Lyon  <christophe.lyon@st.com>

>

>         * config/futex.m4: Handle *-uclinux*.

>         * config/tls.m4 (GCC_CHECK_TLS): Likewise.

>         * gcc/config.gcc: Handle *-*-uclinuxfdpiceabi.

>         * libatomic/configure.tgt: Handle arm*-*-uclinux*.

>         * libgcc/config.host: Handle *-*-uclinuxfdpiceabi.

>         * libitm/configure.tgt: Handle *-*-uclinux*.

>         * libatomic/configure: Regenerate.

>         * libitm/configure: Regenerate.

>         * libstdc++-v3/acinclude.m4: Handle uclinux*.

>         * libstdc++-v3/configure: Regenerate.

>         * libstdc++-v3/configure.host: Handle uclinux*

>         * libtool.m4: Handle uclinux*.

>


Most of these sub-directories have their own ChangeLogs (just for the record).
What happens if a user tries to configure armeb-*-linuxfdpiceabi. Is this an unsupported configuration?
Will this error out? I think some regexes here will allow such a target.

Is the target triplet set in stone now?
I think Richard had some thoughts on the naming...

Thanks,
Kyrill

> Change-Id: I6a1fdcd9847d8a82179a214612a3474c1f492916

>

> diff --git a/config/futex.m4 b/config/futex.m4

> index e95144d..4dffe15 100644

> --- a/config/futex.m4

> +++ b/config/futex.m4

> @@ -9,7 +9,7 @@ AC_DEFUN([GCC_LINUX_FUTEX],[dnl

>  GCC_ENABLE(linux-futex,default, ,[use the Linux futex system call],

>             permit yes|no|default)

>  case "$target" in

> -  *-linux*)

> +  *-linux* | *-uclinux*)

>      case "$enable_linux_futex" in

>        default)

>          # If headers don't have gettid/futex syscalls definition, then

> diff --git a/config/tls.m4 b/config/tls.m4

> index 4e170c8..5a8676e 100644

> --- a/config/tls.m4

> +++ b/config/tls.m4

> @@ -76,7 +76,7 @@ AC_DEFUN([GCC_CHECK_TLS], [

>            dnl Shared library options may depend on the host; this check

>            dnl is only known to be needed for GNU/Linux.

>            case $host in

> -           *-*-linux*)

> +           *-*-linux* | -*-uclinux*)

>                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

>                ;;

>            esac

> diff --git a/gcc/config.gcc b/gcc/config.gcc

> index ef67c88..808ff82 100644

> --- a/gcc/config.gcc

> +++ b/gcc/config.gcc

> @@ -759,7 +759,7 @@ case ${target} in

>  *-*-fuchsia*)

>    native_system_header_dir=/include

>    ;;

> -*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)

> +*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)

>    extra_options="$extra_options gnu-user.opt"

>    gas=yes

>    gnu_ld=yes

> @@ -768,7 +768,7 @@ case ${target} in

>    esac

>    tmake_file="t-slibgcc"

>    case $target in

> -    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)

> +    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu  | *-*-uclinuxfdpiceabi)

>        :;;

>      *-*-gnu*)

>        native_system_header_dir=/include

> @@ -788,7 +788,7 @@ case ${target} in

>      *-*-*android*)

>        tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"

>        ;;

> -    *-*-*uclibc*)

> +    *-*-*uclibc* | *-*-uclinuxfdpiceabi)

>        tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"

>        ;;

>      *-*-*musl*)

> @@ -1135,7 +1135,7 @@ arm*-*-netbsdelf*)

>          tmake_file="${tmake_file} arm/t-arm"

>          target_cpu_cname="arm6"

>          ;;

> -arm*-*-linux-*)                        # ARM GNU/Linux with ELF

> +arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)                      # ARM GNU/Linux with ELF

>          tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"

>          extra_options="${extra_options} linux-android.opt"

>          case $target in

> diff --git a/libatomic/configure b/libatomic/configure

> index b902e2c..5b3ef8e 100755

> --- a/libatomic/configure

> +++ b/libatomic/configure

> @@ -5819,7 +5819,7 @@ irix5* | irix6* | nonstopux*)

>    ;;

>

>  # This must be Linux ELF.

> -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>    lt_cv_deplibs_check_method=pass_all

>    ;;

>

> @@ -8305,7 +8305,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

>        lt_prog_compiler_static='-non_shared'

>        ;;

>

> -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

>        case $cc_basename in

>        # old Intel for x86_64 which still supported -KPIC.

>        ecc*)

> @@ -8900,7 +8900,7 @@ _LT_EOF

>        archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

>        ;;

>

> -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>        tmp_diet=no

>        if test "$host_os" = linux-dietlibc; then

>          case $cc_basename in

> @@ -10431,7 +10431,7 @@ linux*oldld* | linux*aout* | linux*coff*)

>    ;;

>

>  # This must be Linux ELF.

> -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>    version_type=linux

>    need_lib_prefix=no

>    need_version=no

> diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt

> index ea8c34f..c1a608f 100644

> --- a/libatomic/configure.tgt

> +++ b/libatomic/configure.tgt

> @@ -124,7 +124,7 @@ case "${target}" in

>          config_path="${config_path} linux/aarch64 posix"

>          ;;

>

> -  arm*-*-linux*)

> +  arm*-*-linux* | arm*-*-uclinux*)

>          # OS support for atomic primitives.

>          config_path="${config_path} linux/arm posix"

>          ;;

> diff --git a/libgcc/config.host b/libgcc/config.host

> index 18cabaf..9bcf430 100644

> --- a/libgcc/config.host

> +++ b/libgcc/config.host

> @@ -235,7 +235,7 @@ case ${host} in

>    tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"

>    extra_parts="crtbegin.o crtend.o"

>    ;;

> -*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)

> +*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)

>    tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux"

>    extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"

>    if test x$enable_vtable_verify = xyes; then

> @@ -421,7 +421,7 @@ arm*-*-fuchsia*)

>  arm*-*-netbsdelf*)

>          tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"

>          ;;

> -arm*-*-linux*)                 # ARM GNU/Linux with ELF

> +arm*-*-linux* | arm*-*-uclinuxfdpiceabi)                       # ARM GNU/Linux with ELF

>          tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix t-crtfm"

>          tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"

>          tm_file="$tm_file arm/bpabi-lib.h"

> diff --git a/libitm/configure b/libitm/configure

> index dbf386d..fd82500 100644

> --- a/libitm/configure

> +++ b/libitm/configure

> @@ -6494,7 +6494,7 @@ irix5* | irix6* | nonstopux*)

>    ;;

>

>  # This must be Linux ELF.

> -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>    lt_cv_deplibs_check_method=pass_all

>    ;;

>

> @@ -8981,7 +8981,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

>        lt_prog_compiler_static='-non_shared'

>        ;;

>

> -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

>        case $cc_basename in

>        # old Intel for x86_64 which still supported -KPIC.

>        ecc*)

> @@ -9576,7 +9576,7 @@ _LT_EOF

>        archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

>        ;;

>

> -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>        tmp_diet=no

>        if test "$host_os" = linux-dietlibc; then

>          case $cc_basename in

> @@ -11107,7 +11107,7 @@ linux*oldld* | linux*aout* | linux*coff*)

>    ;;

>

>  # This must be Linux ELF.

> -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>    version_type=linux

>    need_lib_prefix=no

>    need_version=no

> @@ -13008,7 +13008,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi

>          inherit_rpath_CXX=yes

>          ;;

>

> -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>          case $cc_basename in

>            KCC*)

>              # Kuck and Associates, Inc. (KAI) C++ Compiler

> @@ -13595,7 +13595,7 @@ interix[3-9]*)

>    postdeps_CXX=

>    ;;

>

> -linux*)

> +linux* | uclinux*)

>    case `$CC -V 2>&1 | sed 5q` in

>    *Sun\ C*)

>      # Sun C++ 5.9

> @@ -13846,7 +13846,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

>              ;;

>          esac

>          ;;

> -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

>          case $cc_basename in

>            KCC*)

>              # KAI C++ Compiler

> @@ -14767,7 +14767,7 @@ linux*oldld* | linux*aout* | linux*coff*)

>    ;;

>

>  # This must be Linux ELF.

> -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>    version_type=linux

>    need_lib_prefix=no

>    need_version=no

> @@ -16239,7 +16239,7 @@ fi

>

>

>  case "$target" in

> -  *-linux*)

> +  *-linux* | *-uclinux*)

>      case "$enable_linux_futex" in

>        default)

>          # If headers don't have gettid/futex syscalls definition, then

> @@ -16362,7 +16362,7 @@ _ACEOF

>  if ac_fn_c_try_link "$LINENO"; then :

>    chktls_save_LDFLAGS="$LDFLAGS"

>                                case $host in

> -           *-*-linux*)

> +           *-*-linux* | -*-uclinux*)

>                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

>                ;;

>            esac

> diff --git a/libitm/configure.tgt b/libitm/configure.tgt

> index 0cbb097..bc6c3ca 100644

> --- a/libitm/configure.tgt

> +++ b/libitm/configure.tgt

> @@ -127,7 +127,7 @@ config_path="$ARCH posix generic"

>

>  # Other system configury

>  case "${target}" in

> -  *-*-linux*)

> +  *-*-linux* | *-*-uclinux*)

>          if test "$enable_linux_futex" = yes; then

>            config_path="linux/$ARCH linux $config_path"

>          fi

> diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4

> index cf5add1..fc49a97 100644

> --- a/libstdc++-v3/acinclude.m4

> +++ b/libstdc++-v3/acinclude.m4

> @@ -1403,7 +1403,7 @@ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [

>          ac_has_nanosleep=yes

>          ac_has_sched_yield=yes

>          ;;

> -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

>          AC_MSG_CHECKING([for at least GNU libc 2.17])

>          AC_TRY_COMPILE(

>            [#include <features.h>],

> @@ -1525,7 +1525,7 @@ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [

>

>    if test x"$ac_has_clock_monotonic" != x"yes"; then

>      case ${target_os} in

> -      linux*)

> +      linux* | uclinux*)

>          AC_MSG_CHECKING([for clock_gettime syscall])

>          AC_TRY_COMPILE(

>            [#include <unistd.h>

> @@ -2410,7 +2410,7 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [

>    # Default to "generic".

>    if test $enable_clocale_flag = auto; then

>      case ${target_os} in

> -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

>          enable_clocale_flag=gnu

>          ;;

>        darwin*)

> @@ -2656,7 +2656,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ALLOCATOR], [

>    # Default to "new".

>    if test $enable_libstdcxx_allocator_flag = auto; then

>      case ${target_os} in

> -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

>          enable_libstdcxx_allocator_flag=new

>          ;;

>        *)

> @@ -4290,7 +4290,7 @@ AC_DEFUN([GLIBCXX_ENABLE_FILESYSTEM_TS], [

>        freebsd*|netbsd*|openbsd*|dragonfly*|darwin*)

>          enable_libstdcxx_filesystem_ts=yes

>          ;;

> -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

>          enable_libstdcxx_filesystem_ts=yes

>          ;;

>        rtems*)

> @@ -4438,7 +4438,7 @@ dnl

>      AC_MSG_CHECKING([for sendfile that can copy files])

>      AC_CACHE_VAL(glibcxx_cv_sendfile, [dnl

>        case "${target_os}" in

> -        gnu* | linux* | solaris*)

> +        gnu* | linux* | solaris* | uclinux*)

>            GCC_TRY_COMPILE_OR_LINK(

>              [#include <sys/sendfile.h>],

>              [sendfile(1, 2, (off_t*)0, sizeof 1);],

> diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure

> index d126add..827266d 100755

> --- a/libstdc++-v3/configure

> +++ b/libstdc++-v3/configure

> @@ -6414,7 +6414,7 @@ irix5* | irix6* | nonstopux*)

>    ;;

>

>  # This must be Linux ELF.

> -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>    lt_cv_deplibs_check_method=pass_all

>    ;;

>

> @@ -8766,7 +8766,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

>        lt_prog_compiler_static='-non_shared'

>        ;;

>

> -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

>        case $cc_basename in

>        # old Intel for x86_64 which still supported -KPIC.

>        ecc*)

> @@ -9361,7 +9361,7 @@ _LT_EOF

>        archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

>        ;;

>

> -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>        tmp_diet=no

>        if test "$host_os" = linux-dietlibc; then

>          case $cc_basename in

> @@ -10901,7 +10901,7 @@ linux*oldld* | linux*aout* | linux*coff*)

>    ;;

>

>  # This must be Linux ELF.

> -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>    version_type=linux

>    need_lib_prefix=no

>    need_version=no

> @@ -12826,7 +12826,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi

>          inherit_rpath_CXX=yes

>          ;;

>

> -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>          case $cc_basename in

>            KCC*)

>              # Kuck and Associates, Inc. (KAI) C++ Compiler

> @@ -13413,7 +13413,7 @@ interix[3-9]*)

>    postdeps_CXX=

>    ;;

>

> -linux*)

> +linux* | uclinux*)

>    case `$CC -V 2>&1 | sed 5q` in

>    *Sun\ C*)

>      # Sun C++ 5.9

> @@ -13664,7 +13664,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

>              ;;

>          esac

>          ;;

> -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

>          case $cc_basename in

>            KCC*)

>              # KAI C++ Compiler

> @@ -14585,7 +14585,7 @@ linux*oldld* | linux*aout* | linux*coff*)

>    ;;

>

>  # This must be Linux ELF.

> -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>    version_type=linux

>    need_lib_prefix=no

>    need_version=no

> @@ -15842,7 +15842,7 @@ fi

>    # Default to "generic".

>    if test $enable_clocale_flag = auto; then

>      case ${target_os} in

> -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

>          enable_clocale_flag=gnu

>          ;;

>        darwin*)

> @@ -16259,7 +16259,7 @@ fi

>    # Default to "new".

>    if test $enable_libstdcxx_allocator_flag = auto; then

>      case ${target_os} in

> -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

>          enable_libstdcxx_allocator_flag=new

>          ;;

>        *)

> @@ -20535,7 +20535,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu

>          ac_has_nanosleep=yes

>          ac_has_sched_yield=yes

>          ;;

> -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

>          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at least GNU libc 2.17" >&5

>  $as_echo_n "checking for at least GNU libc 2.17... " >&6; }

>          cat confdefs.h - <<_ACEOF >conftest.$ac_ext

> @@ -21035,7 +21035,7 @@ $as_echo "$ac_has_nanosleep" >&6; }

>

>    if test x"$ac_has_clock_monotonic" != x"yes"; then

>      case ${target_os} in

> -      linux*)

> +      linux* | uclinux*)

>          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime syscall" >&5

>  $as_echo_n "checking for clock_gettime syscall... " >&6; }

>          cat confdefs.h - <<_ACEOF >conftest.$ac_ext

> @@ -27927,7 +27927,7 @@ _ACEOF

>  if ac_fn_c_try_link "$LINENO"; then :

>    chktls_save_LDFLAGS="$LDFLAGS"

>                                case $host in

> -           *-*-linux*)

> +           *-*-linux* | -*-uclinux*)

>                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

>                ;;

>            esac

> @@ -53603,7 +53603,7 @@ _ACEOF

>  if ac_fn_c_try_link "$LINENO"; then :

>    chktls_save_LDFLAGS="$LDFLAGS"

>                                case $host in

> -           *-*-linux*)

> +           *-*-linux* | -*-uclinux*)

>                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

>                ;;

>            esac

> @@ -59804,7 +59804,7 @@ _ACEOF

>  if ac_fn_c_try_link "$LINENO"; then :

>    chktls_save_LDFLAGS="$LDFLAGS"

>                                case $host in

> -           *-*-linux*)

> +           *-*-linux* | -*-uclinux*)

>                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

>                ;;

>            esac

> @@ -78438,7 +78438,7 @@ fi

>

>

>  case "$target" in

> -  *-linux*)

> +  *-linux* | *-uclinux*)

>      case "$enable_linux_futex" in

>        default)

>          # If headers don't have gettid/futex syscalls definition, then

> @@ -80074,7 +80074,7 @@ $as_echo_n "checking whether to build Filesystem TS support... " >&6; }

>        freebsd*|netbsd*|openbsd*|dragonfly*|darwin*)

>          enable_libstdcxx_filesystem_ts=yes

>          ;;

> -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

>          enable_libstdcxx_filesystem_ts=yes

>          ;;

>        rtems*)

> @@ -80498,7 +80498,7 @@ $as_echo_n "checking for sendfile that can copy files... " >&6; }

>    $as_echo_n "(cached) " >&6

>  else

>          case "${target_os}" in

> -        gnu* | linux* | solaris*)

> +        gnu* | linux* | solaris* | uclinux*)

>            if test x$gcc_no_link = xyes; then

>    cat confdefs.h - <<_ACEOF >conftest.$ac_ext

>  /* end confdefs.h.  */

> diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host

> index caea9de..067d6e1 100644

> --- a/libstdc++-v3/configure.host

> +++ b/libstdc++-v3/configure.host

> @@ -261,7 +261,7 @@ case "${host_os}" in

>    linux-musl*)

>      os_include_dir="os/generic"

>      ;;

> -  gnu* | linux* | kfreebsd*-gnu)

> +  gnu* | linux* | kfreebsd*-gnu | uclinux*)

>      if [ "$uclibc" = "yes" ]; then

>        os_include_dir="os/uclibc"

>      elif [ "$bionic" = "yes" ]; then

> @@ -324,7 +324,7 @@ esac

>  # Set any OS-dependent and CPU-dependent bits.

>  # THIS TABLE IS SORTED.  KEEP IT THAT WAY.

>  case "${host}" in

> -  *-*-linux*)

> +  *-*-linux* | *-*-uclinux*)

>      case "${host_cpu}" in

>        i[567]86)

>          abi_baseline_pair=i486-linux-gnu

> @@ -355,7 +355,7 @@ case "${host}" in

>          fi

>      esac

>      case "${host}" in

> -      arm*-*-linux-*)

> +      arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)

> port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver"

>          ;;

>      esac

> diff --git a/libtool.m4 b/libtool.m4

> index 24d13f3..048931b 100644

> --- a/libtool.m4

> +++ b/libtool.m4

> @@ -2449,7 +2449,7 @@ linux*oldld* | linux*aout* | linux*coff*)

>    ;;

>

>  # This must be Linux ELF.

> -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>    version_type=linux

>    need_lib_prefix=no

>    need_version=no

> @@ -3089,7 +3089,7 @@ irix5* | irix6* | nonstopux*)

>    ;;

>

>  # This must be Linux ELF.

> -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>    lt_cv_deplibs_check_method=pass_all

>    ;;

>

> @@ -3734,7 +3734,7 @@ m4_if([$1], [CXX], [

>              ;;

>          esac

>          ;;

> -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

>          case $cc_basename in

>            KCC*)

>              # KAI C++ Compiler

> @@ -4032,7 +4032,7 @@ m4_if([$1], [CXX], [

>        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'

>        ;;

>

> -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

>        case $cc_basename in

>        # old Intel for x86_64 which still supported -KPIC.

>        ecc*)

> @@ -4449,7 +4449,7 @@ _LT_EOF

>        _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

>        ;;

>

> -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>        tmp_diet=no

>        if test "$host_os" = linux-dietlibc; then

>          case $cc_basename in

> @@ -5946,7 +5946,7 @@ if test "$_lt_caught_CXX_error" != yes; then

>          _LT_TAGVAR(inherit_rpath, $1)=yes

>          ;;

>

> -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

>          case $cc_basename in

>            KCC*)

>              # Kuck and Associates, Inc. (KAI) C++ Compiler

> @@ -6598,7 +6598,7 @@ interix[[3-9]]*)

>    _LT_TAGVAR(postdeps,$1)=

>    ;;

>

> -linux*)

> +linux* | uclinux*)

>    case `$CC -V 2>&1 | sed 5q` in

>    *Sun\ C*)

>      # Sun C++ 5.9

> -- 

> 2.6.3

>
Christophe Lyon Aug. 31, 2018, 2:13 p.m. | #2
On Wed, 29 Aug 2018 at 12:46, Kyrill Tkachov
<kyrylo.tkachov@foss.arm.com> wrote:
>

>

> On 13/07/18 17:10, christophe.lyon@st.com wrote:

> > From: Christophe Lyon <christophe.lyon@linaro.org>

> >

> > The new arm-uclinuxfdpiceabi target behaves pretty much like

> > arm-linux-gnueabi. In order the enable the same set of features, we

> > have to update several configure scripts that generally match targets

> > like *-*-linux*: in most places, we add *-uclinux* where there is

> > already *-linux*, or uclinux* when there is already linux*.

> >

> > In gcc/config.gcc and libgcc/config.host we use *-*-uclinuxfdpiceabi

> > because there is already a different behaviour for *-*uclinux* target.

> >

> > In libtool.m4, we use uclinuxfdpiceabi in cases where ELF shared

> > libraries support is required, as uclinux does not guarantee that.

> >

> > 2018-XX-XX  Christophe Lyon  <christophe.lyon@st.com>

> >

> >         * config/futex.m4: Handle *-uclinux*.

> >         * config/tls.m4 (GCC_CHECK_TLS): Likewise.

> >         * gcc/config.gcc: Handle *-*-uclinuxfdpiceabi.

> >         * libatomic/configure.tgt: Handle arm*-*-uclinux*.

> >         * libgcc/config.host: Handle *-*-uclinuxfdpiceabi.

> >         * libitm/configure.tgt: Handle *-*-uclinux*.

> >         * libatomic/configure: Regenerate.

> >         * libitm/configure: Regenerate.

> >         * libstdc++-v3/acinclude.m4: Handle uclinux*.

> >         * libstdc++-v3/configure: Regenerate.

> >         * libstdc++-v3/configure.host: Handle uclinux*

> >         * libtool.m4: Handle uclinux*.

> >

>

> Most of these sub-directories have their own ChangeLogs (just for the record).

> What happens if a user tries to configure armeb-*-linuxfdpiceabi. Is this an unsupported configuration?

> Will this error out? I think some regexes here will allow such a target.


Yes. I wondered about that. I must admit I haven't tested it, but
since I don't think anything in the patch series is
endianness-dependent, I thought I should include armeb.
Do you prefer I remove it?
>

> Is the target triplet set in stone now?

I think it is part of binutils-2.31, but we can probably still change
it, since the whole toolchain isn't available yet, no product should
rely on the target name.

It will be just painful to adjust the testsuite again

> I think Richard had some thoughts on the naming...

>

> Thanks,

> Kyrill

>

> > Change-Id: I6a1fdcd9847d8a82179a214612a3474c1f492916

> >

> > diff --git a/config/futex.m4 b/config/futex.m4

> > index e95144d..4dffe15 100644

> > --- a/config/futex.m4

> > +++ b/config/futex.m4

> > @@ -9,7 +9,7 @@ AC_DEFUN([GCC_LINUX_FUTEX],[dnl

> >  GCC_ENABLE(linux-futex,default, ,[use the Linux futex system call],

> >             permit yes|no|default)

> >  case "$target" in

> > -  *-linux*)

> > +  *-linux* | *-uclinux*)

> >      case "$enable_linux_futex" in

> >        default)

> >          # If headers don't have gettid/futex syscalls definition, then

> > diff --git a/config/tls.m4 b/config/tls.m4

> > index 4e170c8..5a8676e 100644

> > --- a/config/tls.m4

> > +++ b/config/tls.m4

> > @@ -76,7 +76,7 @@ AC_DEFUN([GCC_CHECK_TLS], [

> >            dnl Shared library options may depend on the host; this check

> >            dnl is only known to be needed for GNU/Linux.

> >            case $host in

> > -           *-*-linux*)

> > +           *-*-linux* | -*-uclinux*)

> >                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

> >                ;;

> >            esac

> > diff --git a/gcc/config.gcc b/gcc/config.gcc

> > index ef67c88..808ff82 100644

> > --- a/gcc/config.gcc

> > +++ b/gcc/config.gcc

> > @@ -759,7 +759,7 @@ case ${target} in

> >  *-*-fuchsia*)

> >    native_system_header_dir=/include

> >    ;;

> > -*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)

> > +*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)

> >    extra_options="$extra_options gnu-user.opt"

> >    gas=yes

> >    gnu_ld=yes

> > @@ -768,7 +768,7 @@ case ${target} in

> >    esac

> >    tmake_file="t-slibgcc"

> >    case $target in

> > -    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)

> > +    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu  | *-*-uclinuxfdpiceabi)

> >        :;;

> >      *-*-gnu*)

> >        native_system_header_dir=/include

> > @@ -788,7 +788,7 @@ case ${target} in

> >      *-*-*android*)

> >        tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"

> >        ;;

> > -    *-*-*uclibc*)

> > +    *-*-*uclibc* | *-*-uclinuxfdpiceabi)

> >        tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"

> >        ;;

> >      *-*-*musl*)

> > @@ -1135,7 +1135,7 @@ arm*-*-netbsdelf*)

> >          tmake_file="${tmake_file} arm/t-arm"

> >          target_cpu_cname="arm6"

> >          ;;

> > -arm*-*-linux-*)                        # ARM GNU/Linux with ELF

> > +arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)                      # ARM GNU/Linux with ELF

> >          tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"

> >          extra_options="${extra_options} linux-android.opt"

> >          case $target in

> > diff --git a/libatomic/configure b/libatomic/configure

> > index b902e2c..5b3ef8e 100755

> > --- a/libatomic/configure

> > +++ b/libatomic/configure

> > @@ -5819,7 +5819,7 @@ irix5* | irix6* | nonstopux*)

> >    ;;

> >

> >  # This must be Linux ELF.

> > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >    lt_cv_deplibs_check_method=pass_all

> >    ;;

> >

> > @@ -8305,7 +8305,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

> >        lt_prog_compiler_static='-non_shared'

> >        ;;

> >

> > -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> >        case $cc_basename in

> >        # old Intel for x86_64 which still supported -KPIC.

> >        ecc*)

> > @@ -8900,7 +8900,7 @@ _LT_EOF

> >        archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

> >        ;;

> >

> > -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> > +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >        tmp_diet=no

> >        if test "$host_os" = linux-dietlibc; then

> >          case $cc_basename in

> > @@ -10431,7 +10431,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> >    ;;

> >

> >  # This must be Linux ELF.

> > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >    version_type=linux

> >    need_lib_prefix=no

> >    need_version=no

> > diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt

> > index ea8c34f..c1a608f 100644

> > --- a/libatomic/configure.tgt

> > +++ b/libatomic/configure.tgt

> > @@ -124,7 +124,7 @@ case "${target}" in

> >          config_path="${config_path} linux/aarch64 posix"

> >          ;;

> >

> > -  arm*-*-linux*)

> > +  arm*-*-linux* | arm*-*-uclinux*)

> >          # OS support for atomic primitives.

> >          config_path="${config_path} linux/arm posix"

> >          ;;

> > diff --git a/libgcc/config.host b/libgcc/config.host

> > index 18cabaf..9bcf430 100644

> > --- a/libgcc/config.host

> > +++ b/libgcc/config.host

> > @@ -235,7 +235,7 @@ case ${host} in

> >    tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"

> >    extra_parts="crtbegin.o crtend.o"

> >    ;;

> > -*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)

> > +*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)

> >    tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux"

> >    extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"

> >    if test x$enable_vtable_verify = xyes; then

> > @@ -421,7 +421,7 @@ arm*-*-fuchsia*)

> >  arm*-*-netbsdelf*)

> >          tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"

> >          ;;

> > -arm*-*-linux*)                 # ARM GNU/Linux with ELF

> > +arm*-*-linux* | arm*-*-uclinuxfdpiceabi)                       # ARM GNU/Linux with ELF

> >          tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix t-crtfm"

> >          tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"

> >          tm_file="$tm_file arm/bpabi-lib.h"

> > diff --git a/libitm/configure b/libitm/configure

> > index dbf386d..fd82500 100644

> > --- a/libitm/configure

> > +++ b/libitm/configure

> > @@ -6494,7 +6494,7 @@ irix5* | irix6* | nonstopux*)

> >    ;;

> >

> >  # This must be Linux ELF.

> > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >    lt_cv_deplibs_check_method=pass_all

> >    ;;

> >

> > @@ -8981,7 +8981,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

> >        lt_prog_compiler_static='-non_shared'

> >        ;;

> >

> > -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> >        case $cc_basename in

> >        # old Intel for x86_64 which still supported -KPIC.

> >        ecc*)

> > @@ -9576,7 +9576,7 @@ _LT_EOF

> >        archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

> >        ;;

> >

> > -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> > +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >        tmp_diet=no

> >        if test "$host_os" = linux-dietlibc; then

> >          case $cc_basename in

> > @@ -11107,7 +11107,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> >    ;;

> >

> >  # This must be Linux ELF.

> > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >    version_type=linux

> >    need_lib_prefix=no

> >    need_version=no

> > @@ -13008,7 +13008,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi

> >          inherit_rpath_CXX=yes

> >          ;;

> >

> > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >          case $cc_basename in

> >            KCC*)

> >              # Kuck and Associates, Inc. (KAI) C++ Compiler

> > @@ -13595,7 +13595,7 @@ interix[3-9]*)

> >    postdeps_CXX=

> >    ;;

> >

> > -linux*)

> > +linux* | uclinux*)

> >    case `$CC -V 2>&1 | sed 5q` in

> >    *Sun\ C*)

> >      # Sun C++ 5.9

> > @@ -13846,7 +13846,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

> >              ;;

> >          esac

> >          ;;

> > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> >          case $cc_basename in

> >            KCC*)

> >              # KAI C++ Compiler

> > @@ -14767,7 +14767,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> >    ;;

> >

> >  # This must be Linux ELF.

> > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >    version_type=linux

> >    need_lib_prefix=no

> >    need_version=no

> > @@ -16239,7 +16239,7 @@ fi

> >

> >

> >  case "$target" in

> > -  *-linux*)

> > +  *-linux* | *-uclinux*)

> >      case "$enable_linux_futex" in

> >        default)

> >          # If headers don't have gettid/futex syscalls definition, then

> > @@ -16362,7 +16362,7 @@ _ACEOF

> >  if ac_fn_c_try_link "$LINENO"; then :

> >    chktls_save_LDFLAGS="$LDFLAGS"

> >                                case $host in

> > -           *-*-linux*)

> > +           *-*-linux* | -*-uclinux*)

> >                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

> >                ;;

> >            esac

> > diff --git a/libitm/configure.tgt b/libitm/configure.tgt

> > index 0cbb097..bc6c3ca 100644

> > --- a/libitm/configure.tgt

> > +++ b/libitm/configure.tgt

> > @@ -127,7 +127,7 @@ config_path="$ARCH posix generic"

> >

> >  # Other system configury

> >  case "${target}" in

> > -  *-*-linux*)

> > +  *-*-linux* | *-*-uclinux*)

> >          if test "$enable_linux_futex" = yes; then

> >            config_path="linux/$ARCH linux $config_path"

> >          fi

> > diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4

> > index cf5add1..fc49a97 100644

> > --- a/libstdc++-v3/acinclude.m4

> > +++ b/libstdc++-v3/acinclude.m4

> > @@ -1403,7 +1403,7 @@ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [

> >          ac_has_nanosleep=yes

> >          ac_has_sched_yield=yes

> >          ;;

> > -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> > +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> >          AC_MSG_CHECKING([for at least GNU libc 2.17])

> >          AC_TRY_COMPILE(

> >            [#include <features.h>],

> > @@ -1525,7 +1525,7 @@ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [

> >

> >    if test x"$ac_has_clock_monotonic" != x"yes"; then

> >      case ${target_os} in

> > -      linux*)

> > +      linux* | uclinux*)

> >          AC_MSG_CHECKING([for clock_gettime syscall])

> >          AC_TRY_COMPILE(

> >            [#include <unistd.h>

> > @@ -2410,7 +2410,7 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [

> >    # Default to "generic".

> >    if test $enable_clocale_flag = auto; then

> >      case ${target_os} in

> > -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> > +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> >          enable_clocale_flag=gnu

> >          ;;

> >        darwin*)

> > @@ -2656,7 +2656,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ALLOCATOR], [

> >    # Default to "new".

> >    if test $enable_libstdcxx_allocator_flag = auto; then

> >      case ${target_os} in

> > -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> > +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> >          enable_libstdcxx_allocator_flag=new

> >          ;;

> >        *)

> > @@ -4290,7 +4290,7 @@ AC_DEFUN([GLIBCXX_ENABLE_FILESYSTEM_TS], [

> >        freebsd*|netbsd*|openbsd*|dragonfly*|darwin*)

> >          enable_libstdcxx_filesystem_ts=yes

> >          ;;

> > -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> > +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> >          enable_libstdcxx_filesystem_ts=yes

> >          ;;

> >        rtems*)

> > @@ -4438,7 +4438,7 @@ dnl

> >      AC_MSG_CHECKING([for sendfile that can copy files])

> >      AC_CACHE_VAL(glibcxx_cv_sendfile, [dnl

> >        case "${target_os}" in

> > -        gnu* | linux* | solaris*)

> > +        gnu* | linux* | solaris* | uclinux*)

> >            GCC_TRY_COMPILE_OR_LINK(

> >              [#include <sys/sendfile.h>],

> >              [sendfile(1, 2, (off_t*)0, sizeof 1);],

> > diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure

> > index d126add..827266d 100755

> > --- a/libstdc++-v3/configure

> > +++ b/libstdc++-v3/configure

> > @@ -6414,7 +6414,7 @@ irix5* | irix6* | nonstopux*)

> >    ;;

> >

> >  # This must be Linux ELF.

> > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >    lt_cv_deplibs_check_method=pass_all

> >    ;;

> >

> > @@ -8766,7 +8766,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

> >        lt_prog_compiler_static='-non_shared'

> >        ;;

> >

> > -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> >        case $cc_basename in

> >        # old Intel for x86_64 which still supported -KPIC.

> >        ecc*)

> > @@ -9361,7 +9361,7 @@ _LT_EOF

> >        archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

> >        ;;

> >

> > -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> > +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >        tmp_diet=no

> >        if test "$host_os" = linux-dietlibc; then

> >          case $cc_basename in

> > @@ -10901,7 +10901,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> >    ;;

> >

> >  # This must be Linux ELF.

> > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >    version_type=linux

> >    need_lib_prefix=no

> >    need_version=no

> > @@ -12826,7 +12826,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi

> >          inherit_rpath_CXX=yes

> >          ;;

> >

> > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >          case $cc_basename in

> >            KCC*)

> >              # Kuck and Associates, Inc. (KAI) C++ Compiler

> > @@ -13413,7 +13413,7 @@ interix[3-9]*)

> >    postdeps_CXX=

> >    ;;

> >

> > -linux*)

> > +linux* | uclinux*)

> >    case `$CC -V 2>&1 | sed 5q` in

> >    *Sun\ C*)

> >      # Sun C++ 5.9

> > @@ -13664,7 +13664,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

> >              ;;

> >          esac

> >          ;;

> > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> >          case $cc_basename in

> >            KCC*)

> >              # KAI C++ Compiler

> > @@ -14585,7 +14585,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> >    ;;

> >

> >  # This must be Linux ELF.

> > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >    version_type=linux

> >    need_lib_prefix=no

> >    need_version=no

> > @@ -15842,7 +15842,7 @@ fi

> >    # Default to "generic".

> >    if test $enable_clocale_flag = auto; then

> >      case ${target_os} in

> > -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> > +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> >          enable_clocale_flag=gnu

> >          ;;

> >        darwin*)

> > @@ -16259,7 +16259,7 @@ fi

> >    # Default to "new".

> >    if test $enable_libstdcxx_allocator_flag = auto; then

> >      case ${target_os} in

> > -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> > +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> >          enable_libstdcxx_allocator_flag=new

> >          ;;

> >        *)

> > @@ -20535,7 +20535,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu

> >          ac_has_nanosleep=yes

> >          ac_has_sched_yield=yes

> >          ;;

> > -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> > +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> >          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at least GNU libc 2.17" >&5

> >  $as_echo_n "checking for at least GNU libc 2.17... " >&6; }

> >          cat confdefs.h - <<_ACEOF >conftest.$ac_ext

> > @@ -21035,7 +21035,7 @@ $as_echo "$ac_has_nanosleep" >&6; }

> >

> >    if test x"$ac_has_clock_monotonic" != x"yes"; then

> >      case ${target_os} in

> > -      linux*)

> > +      linux* | uclinux*)

> >          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime syscall" >&5

> >  $as_echo_n "checking for clock_gettime syscall... " >&6; }

> >          cat confdefs.h - <<_ACEOF >conftest.$ac_ext

> > @@ -27927,7 +27927,7 @@ _ACEOF

> >  if ac_fn_c_try_link "$LINENO"; then :

> >    chktls_save_LDFLAGS="$LDFLAGS"

> >                                case $host in

> > -           *-*-linux*)

> > +           *-*-linux* | -*-uclinux*)

> >                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

> >                ;;

> >            esac

> > @@ -53603,7 +53603,7 @@ _ACEOF

> >  if ac_fn_c_try_link "$LINENO"; then :

> >    chktls_save_LDFLAGS="$LDFLAGS"

> >                                case $host in

> > -           *-*-linux*)

> > +           *-*-linux* | -*-uclinux*)

> >                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

> >                ;;

> >            esac

> > @@ -59804,7 +59804,7 @@ _ACEOF

> >  if ac_fn_c_try_link "$LINENO"; then :

> >    chktls_save_LDFLAGS="$LDFLAGS"

> >                                case $host in

> > -           *-*-linux*)

> > +           *-*-linux* | -*-uclinux*)

> >                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

> >                ;;

> >            esac

> > @@ -78438,7 +78438,7 @@ fi

> >

> >

> >  case "$target" in

> > -  *-linux*)

> > +  *-linux* | *-uclinux*)

> >      case "$enable_linux_futex" in

> >        default)

> >          # If headers don't have gettid/futex syscalls definition, then

> > @@ -80074,7 +80074,7 @@ $as_echo_n "checking whether to build Filesystem TS support... " >&6; }

> >        freebsd*|netbsd*|openbsd*|dragonfly*|darwin*)

> >          enable_libstdcxx_filesystem_ts=yes

> >          ;;

> > -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> > +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> >          enable_libstdcxx_filesystem_ts=yes

> >          ;;

> >        rtems*)

> > @@ -80498,7 +80498,7 @@ $as_echo_n "checking for sendfile that can copy files... " >&6; }

> >    $as_echo_n "(cached) " >&6

> >  else

> >          case "${target_os}" in

> > -        gnu* | linux* | solaris*)

> > +        gnu* | linux* | solaris* | uclinux*)

> >            if test x$gcc_no_link = xyes; then

> >    cat confdefs.h - <<_ACEOF >conftest.$ac_ext

> >  /* end confdefs.h.  */

> > diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host

> > index caea9de..067d6e1 100644

> > --- a/libstdc++-v3/configure.host

> > +++ b/libstdc++-v3/configure.host

> > @@ -261,7 +261,7 @@ case "${host_os}" in

> >    linux-musl*)

> >      os_include_dir="os/generic"

> >      ;;

> > -  gnu* | linux* | kfreebsd*-gnu)

> > +  gnu* | linux* | kfreebsd*-gnu | uclinux*)

> >      if [ "$uclibc" = "yes" ]; then

> >        os_include_dir="os/uclibc"

> >      elif [ "$bionic" = "yes" ]; then

> > @@ -324,7 +324,7 @@ esac

> >  # Set any OS-dependent and CPU-dependent bits.

> >  # THIS TABLE IS SORTED.  KEEP IT THAT WAY.

> >  case "${host}" in

> > -  *-*-linux*)

> > +  *-*-linux* | *-*-uclinux*)

> >      case "${host_cpu}" in

> >        i[567]86)

> >          abi_baseline_pair=i486-linux-gnu

> > @@ -355,7 +355,7 @@ case "${host}" in

> >          fi

> >      esac

> >      case "${host}" in

> > -      arm*-*-linux-*)

> > +      arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)

> > port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver"

> >          ;;

> >      esac

> > diff --git a/libtool.m4 b/libtool.m4

> > index 24d13f3..048931b 100644

> > --- a/libtool.m4

> > +++ b/libtool.m4

> > @@ -2449,7 +2449,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> >    ;;

> >

> >  # This must be Linux ELF.

> > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >    version_type=linux

> >    need_lib_prefix=no

> >    need_version=no

> > @@ -3089,7 +3089,7 @@ irix5* | irix6* | nonstopux*)

> >    ;;

> >

> >  # This must be Linux ELF.

> > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >    lt_cv_deplibs_check_method=pass_all

> >    ;;

> >

> > @@ -3734,7 +3734,7 @@ m4_if([$1], [CXX], [

> >              ;;

> >          esac

> >          ;;

> > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> >          case $cc_basename in

> >            KCC*)

> >              # KAI C++ Compiler

> > @@ -4032,7 +4032,7 @@ m4_if([$1], [CXX], [

> >        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'

> >        ;;

> >

> > -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> >        case $cc_basename in

> >        # old Intel for x86_64 which still supported -KPIC.

> >        ecc*)

> > @@ -4449,7 +4449,7 @@ _LT_EOF

> >        _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

> >        ;;

> >

> > -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> > +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >        tmp_diet=no

> >        if test "$host_os" = linux-dietlibc; then

> >          case $cc_basename in

> > @@ -5946,7 +5946,7 @@ if test "$_lt_caught_CXX_error" != yes; then

> >          _LT_TAGVAR(inherit_rpath, $1)=yes

> >          ;;

> >

> > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> >          case $cc_basename in

> >            KCC*)

> >              # Kuck and Associates, Inc. (KAI) C++ Compiler

> > @@ -6598,7 +6598,7 @@ interix[[3-9]]*)

> >    _LT_TAGVAR(postdeps,$1)=

> >    ;;

> >

> > -linux*)

> > +linux* | uclinux*)

> >    case `$CC -V 2>&1 | sed 5q` in

> >    *Sun\ C*)

> >      # Sun C++ 5.9

> > --

> > 2.6.3

> >

>
Christophe Lyon Sept. 9, 2018, 8:14 a.m. | #3
On Fri, 31 Aug 2018 at 16:13, Christophe Lyon
<christophe.lyon@linaro.org> wrote:
>

> On Wed, 29 Aug 2018 at 12:46, Kyrill Tkachov

> <kyrylo.tkachov@foss.arm.com> wrote:

> >

> >

> > On 13/07/18 17:10, christophe.lyon@st.com wrote:

> > > From: Christophe Lyon <christophe.lyon@linaro.org>

> > >

> > > The new arm-uclinuxfdpiceabi target behaves pretty much like

> > > arm-linux-gnueabi. In order the enable the same set of features, we

> > > have to update several configure scripts that generally match targets

> > > like *-*-linux*: in most places, we add *-uclinux* where there is

> > > already *-linux*, or uclinux* when there is already linux*.

> > >

> > > In gcc/config.gcc and libgcc/config.host we use *-*-uclinuxfdpiceabi

> > > because there is already a different behaviour for *-*uclinux* target.

> > >

> > > In libtool.m4, we use uclinuxfdpiceabi in cases where ELF shared

> > > libraries support is required, as uclinux does not guarantee that.

> > >

> > > 2018-XX-XX  Christophe Lyon  <christophe.lyon@st.com>

> > >

> > >         * config/futex.m4: Handle *-uclinux*.

> > >         * config/tls.m4 (GCC_CHECK_TLS): Likewise.

> > >         * gcc/config.gcc: Handle *-*-uclinuxfdpiceabi.

> > >         * libatomic/configure.tgt: Handle arm*-*-uclinux*.

> > >         * libgcc/config.host: Handle *-*-uclinuxfdpiceabi.

> > >         * libitm/configure.tgt: Handle *-*-uclinux*.

> > >         * libatomic/configure: Regenerate.

> > >         * libitm/configure: Regenerate.

> > >         * libstdc++-v3/acinclude.m4: Handle uclinux*.

> > >         * libstdc++-v3/configure: Regenerate.

> > >         * libstdc++-v3/configure.host: Handle uclinux*

> > >         * libtool.m4: Handle uclinux*.

> > >

> >

> > Most of these sub-directories have their own ChangeLogs (just for the record).

> > What happens if a user tries to configure armeb-*-linuxfdpiceabi. Is this an unsupported configuration?

> > Will this error out? I think some regexes here will allow such a target.

>

> Yes. I wondered about that. I must admit I haven't tested it, but

> since I don't think anything in the patch series is

> endianness-dependent, I thought I should include armeb.

> Do you prefer I remove it?

> >

> > Is the target triplet set in stone now?

> I think it is part of binutils-2.31, but we can probably still change

> it, since the whole toolchain isn't available yet, no product should

> rely on the target name.

>

> It will be just painful to adjust the testsuite again

>

> > I think Richard had some thoughts on the naming...


For reference, here is what Joseph said when I first submitted the
binutils patch series:
https://sourceware.org/ml/binutils/2018-03/msg00324.html


> >

> > Thanks,

> > Kyrill

> >

> > > Change-Id: I6a1fdcd9847d8a82179a214612a3474c1f492916

> > >

> > > diff --git a/config/futex.m4 b/config/futex.m4

> > > index e95144d..4dffe15 100644

> > > --- a/config/futex.m4

> > > +++ b/config/futex.m4

> > > @@ -9,7 +9,7 @@ AC_DEFUN([GCC_LINUX_FUTEX],[dnl

> > >  GCC_ENABLE(linux-futex,default, ,[use the Linux futex system call],

> > >             permit yes|no|default)

> > >  case "$target" in

> > > -  *-linux*)

> > > +  *-linux* | *-uclinux*)

> > >      case "$enable_linux_futex" in

> > >        default)

> > >          # If headers don't have gettid/futex syscalls definition, then

> > > diff --git a/config/tls.m4 b/config/tls.m4

> > > index 4e170c8..5a8676e 100644

> > > --- a/config/tls.m4

> > > +++ b/config/tls.m4

> > > @@ -76,7 +76,7 @@ AC_DEFUN([GCC_CHECK_TLS], [

> > >            dnl Shared library options may depend on the host; this check

> > >            dnl is only known to be needed for GNU/Linux.

> > >            case $host in

> > > -           *-*-linux*)

> > > +           *-*-linux* | -*-uclinux*)

> > >                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

> > >                ;;

> > >            esac

> > > diff --git a/gcc/config.gcc b/gcc/config.gcc

> > > index ef67c88..808ff82 100644

> > > --- a/gcc/config.gcc

> > > +++ b/gcc/config.gcc

> > > @@ -759,7 +759,7 @@ case ${target} in

> > >  *-*-fuchsia*)

> > >    native_system_header_dir=/include

> > >    ;;

> > > -*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)

> > > +*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)

> > >    extra_options="$extra_options gnu-user.opt"

> > >    gas=yes

> > >    gnu_ld=yes

> > > @@ -768,7 +768,7 @@ case ${target} in

> > >    esac

> > >    tmake_file="t-slibgcc"

> > >    case $target in

> > > -    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)

> > > +    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu  | *-*-uclinuxfdpiceabi)

> > >        :;;

> > >      *-*-gnu*)

> > >        native_system_header_dir=/include

> > > @@ -788,7 +788,7 @@ case ${target} in

> > >      *-*-*android*)

> > >        tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"

> > >        ;;

> > > -    *-*-*uclibc*)

> > > +    *-*-*uclibc* | *-*-uclinuxfdpiceabi)

> > >        tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"

> > >        ;;

> > >      *-*-*musl*)

> > > @@ -1135,7 +1135,7 @@ arm*-*-netbsdelf*)

> > >          tmake_file="${tmake_file} arm/t-arm"

> > >          target_cpu_cname="arm6"

> > >          ;;

> > > -arm*-*-linux-*)                        # ARM GNU/Linux with ELF

> > > +arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)                      # ARM GNU/Linux with ELF

> > >          tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"

> > >          extra_options="${extra_options} linux-android.opt"

> > >          case $target in

> > > diff --git a/libatomic/configure b/libatomic/configure

> > > index b902e2c..5b3ef8e 100755

> > > --- a/libatomic/configure

> > > +++ b/libatomic/configure

> > > @@ -5819,7 +5819,7 @@ irix5* | irix6* | nonstopux*)

> > >    ;;

> > >

> > >  # This must be Linux ELF.

> > > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >    lt_cv_deplibs_check_method=pass_all

> > >    ;;

> > >

> > > @@ -8305,7 +8305,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

> > >        lt_prog_compiler_static='-non_shared'

> > >        ;;

> > >

> > > -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> > >        case $cc_basename in

> > >        # old Intel for x86_64 which still supported -KPIC.

> > >        ecc*)

> > > @@ -8900,7 +8900,7 @@ _LT_EOF

> > >        archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

> > >        ;;

> > >

> > > -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >        tmp_diet=no

> > >        if test "$host_os" = linux-dietlibc; then

> > >          case $cc_basename in

> > > @@ -10431,7 +10431,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> > >    ;;

> > >

> > >  # This must be Linux ELF.

> > > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >    version_type=linux

> > >    need_lib_prefix=no

> > >    need_version=no

> > > diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt

> > > index ea8c34f..c1a608f 100644

> > > --- a/libatomic/configure.tgt

> > > +++ b/libatomic/configure.tgt

> > > @@ -124,7 +124,7 @@ case "${target}" in

> > >          config_path="${config_path} linux/aarch64 posix"

> > >          ;;

> > >

> > > -  arm*-*-linux*)

> > > +  arm*-*-linux* | arm*-*-uclinux*)

> > >          # OS support for atomic primitives.

> > >          config_path="${config_path} linux/arm posix"

> > >          ;;

> > > diff --git a/libgcc/config.host b/libgcc/config.host

> > > index 18cabaf..9bcf430 100644

> > > --- a/libgcc/config.host

> > > +++ b/libgcc/config.host

> > > @@ -235,7 +235,7 @@ case ${host} in

> > >    tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"

> > >    extra_parts="crtbegin.o crtend.o"

> > >    ;;

> > > -*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)

> > > +*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)

> > >    tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux"

> > >    extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"

> > >    if test x$enable_vtable_verify = xyes; then

> > > @@ -421,7 +421,7 @@ arm*-*-fuchsia*)

> > >  arm*-*-netbsdelf*)

> > >          tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"

> > >          ;;

> > > -arm*-*-linux*)                 # ARM GNU/Linux with ELF

> > > +arm*-*-linux* | arm*-*-uclinuxfdpiceabi)                       # ARM GNU/Linux with ELF

> > >          tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix t-crtfm"

> > >          tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"

> > >          tm_file="$tm_file arm/bpabi-lib.h"

> > > diff --git a/libitm/configure b/libitm/configure

> > > index dbf386d..fd82500 100644

> > > --- a/libitm/configure

> > > +++ b/libitm/configure

> > > @@ -6494,7 +6494,7 @@ irix5* | irix6* | nonstopux*)

> > >    ;;

> > >

> > >  # This must be Linux ELF.

> > > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >    lt_cv_deplibs_check_method=pass_all

> > >    ;;

> > >

> > > @@ -8981,7 +8981,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

> > >        lt_prog_compiler_static='-non_shared'

> > >        ;;

> > >

> > > -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> > >        case $cc_basename in

> > >        # old Intel for x86_64 which still supported -KPIC.

> > >        ecc*)

> > > @@ -9576,7 +9576,7 @@ _LT_EOF

> > >        archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

> > >        ;;

> > >

> > > -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >        tmp_diet=no

> > >        if test "$host_os" = linux-dietlibc; then

> > >          case $cc_basename in

> > > @@ -11107,7 +11107,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> > >    ;;

> > >

> > >  # This must be Linux ELF.

> > > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >    version_type=linux

> > >    need_lib_prefix=no

> > >    need_version=no

> > > @@ -13008,7 +13008,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi

> > >          inherit_rpath_CXX=yes

> > >          ;;

> > >

> > > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >          case $cc_basename in

> > >            KCC*)

> > >              # Kuck and Associates, Inc. (KAI) C++ Compiler

> > > @@ -13595,7 +13595,7 @@ interix[3-9]*)

> > >    postdeps_CXX=

> > >    ;;

> > >

> > > -linux*)

> > > +linux* | uclinux*)

> > >    case `$CC -V 2>&1 | sed 5q` in

> > >    *Sun\ C*)

> > >      # Sun C++ 5.9

> > > @@ -13846,7 +13846,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

> > >              ;;

> > >          esac

> > >          ;;

> > > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> > >          case $cc_basename in

> > >            KCC*)

> > >              # KAI C++ Compiler

> > > @@ -14767,7 +14767,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> > >    ;;

> > >

> > >  # This must be Linux ELF.

> > > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >    version_type=linux

> > >    need_lib_prefix=no

> > >    need_version=no

> > > @@ -16239,7 +16239,7 @@ fi

> > >

> > >

> > >  case "$target" in

> > > -  *-linux*)

> > > +  *-linux* | *-uclinux*)

> > >      case "$enable_linux_futex" in

> > >        default)

> > >          # If headers don't have gettid/futex syscalls definition, then

> > > @@ -16362,7 +16362,7 @@ _ACEOF

> > >  if ac_fn_c_try_link "$LINENO"; then :

> > >    chktls_save_LDFLAGS="$LDFLAGS"

> > >                                case $host in

> > > -           *-*-linux*)

> > > +           *-*-linux* | -*-uclinux*)

> > >                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

> > >                ;;

> > >            esac

> > > diff --git a/libitm/configure.tgt b/libitm/configure.tgt

> > > index 0cbb097..bc6c3ca 100644

> > > --- a/libitm/configure.tgt

> > > +++ b/libitm/configure.tgt

> > > @@ -127,7 +127,7 @@ config_path="$ARCH posix generic"

> > >

> > >  # Other system configury

> > >  case "${target}" in

> > > -  *-*-linux*)

> > > +  *-*-linux* | *-*-uclinux*)

> > >          if test "$enable_linux_futex" = yes; then

> > >            config_path="linux/$ARCH linux $config_path"

> > >          fi

> > > diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4

> > > index cf5add1..fc49a97 100644

> > > --- a/libstdc++-v3/acinclude.m4

> > > +++ b/libstdc++-v3/acinclude.m4

> > > @@ -1403,7 +1403,7 @@ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [

> > >          ac_has_nanosleep=yes

> > >          ac_has_sched_yield=yes

> > >          ;;

> > > -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> > > +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> > >          AC_MSG_CHECKING([for at least GNU libc 2.17])

> > >          AC_TRY_COMPILE(

> > >            [#include <features.h>],

> > > @@ -1525,7 +1525,7 @@ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [

> > >

> > >    if test x"$ac_has_clock_monotonic" != x"yes"; then

> > >      case ${target_os} in

> > > -      linux*)

> > > +      linux* | uclinux*)

> > >          AC_MSG_CHECKING([for clock_gettime syscall])

> > >          AC_TRY_COMPILE(

> > >            [#include <unistd.h>

> > > @@ -2410,7 +2410,7 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [

> > >    # Default to "generic".

> > >    if test $enable_clocale_flag = auto; then

> > >      case ${target_os} in

> > > -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> > > +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> > >          enable_clocale_flag=gnu

> > >          ;;

> > >        darwin*)

> > > @@ -2656,7 +2656,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ALLOCATOR], [

> > >    # Default to "new".

> > >    if test $enable_libstdcxx_allocator_flag = auto; then

> > >      case ${target_os} in

> > > -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> > > +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> > >          enable_libstdcxx_allocator_flag=new

> > >          ;;

> > >        *)

> > > @@ -4290,7 +4290,7 @@ AC_DEFUN([GLIBCXX_ENABLE_FILESYSTEM_TS], [

> > >        freebsd*|netbsd*|openbsd*|dragonfly*|darwin*)

> > >          enable_libstdcxx_filesystem_ts=yes

> > >          ;;

> > > -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> > > +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> > >          enable_libstdcxx_filesystem_ts=yes

> > >          ;;

> > >        rtems*)

> > > @@ -4438,7 +4438,7 @@ dnl

> > >      AC_MSG_CHECKING([for sendfile that can copy files])

> > >      AC_CACHE_VAL(glibcxx_cv_sendfile, [dnl

> > >        case "${target_os}" in

> > > -        gnu* | linux* | solaris*)

> > > +        gnu* | linux* | solaris* | uclinux*)

> > >            GCC_TRY_COMPILE_OR_LINK(

> > >              [#include <sys/sendfile.h>],

> > >              [sendfile(1, 2, (off_t*)0, sizeof 1);],

> > > diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure

> > > index d126add..827266d 100755

> > > --- a/libstdc++-v3/configure

> > > +++ b/libstdc++-v3/configure

> > > @@ -6414,7 +6414,7 @@ irix5* | irix6* | nonstopux*)

> > >    ;;

> > >

> > >  # This must be Linux ELF.

> > > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >    lt_cv_deplibs_check_method=pass_all

> > >    ;;

> > >

> > > @@ -8766,7 +8766,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

> > >        lt_prog_compiler_static='-non_shared'

> > >        ;;

> > >

> > > -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> > >        case $cc_basename in

> > >        # old Intel for x86_64 which still supported -KPIC.

> > >        ecc*)

> > > @@ -9361,7 +9361,7 @@ _LT_EOF

> > >        archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

> > >        ;;

> > >

> > > -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >        tmp_diet=no

> > >        if test "$host_os" = linux-dietlibc; then

> > >          case $cc_basename in

> > > @@ -10901,7 +10901,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> > >    ;;

> > >

> > >  # This must be Linux ELF.

> > > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >    version_type=linux

> > >    need_lib_prefix=no

> > >    need_version=no

> > > @@ -12826,7 +12826,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi

> > >          inherit_rpath_CXX=yes

> > >          ;;

> > >

> > > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >          case $cc_basename in

> > >            KCC*)

> > >              # Kuck and Associates, Inc. (KAI) C++ Compiler

> > > @@ -13413,7 +13413,7 @@ interix[3-9]*)

> > >    postdeps_CXX=

> > >    ;;

> > >

> > > -linux*)

> > > +linux* | uclinux*)

> > >    case `$CC -V 2>&1 | sed 5q` in

> > >    *Sun\ C*)

> > >      # Sun C++ 5.9

> > > @@ -13664,7 +13664,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }

> > >              ;;

> > >          esac

> > >          ;;

> > > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> > >          case $cc_basename in

> > >            KCC*)

> > >              # KAI C++ Compiler

> > > @@ -14585,7 +14585,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> > >    ;;

> > >

> > >  # This must be Linux ELF.

> > > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >    version_type=linux

> > >    need_lib_prefix=no

> > >    need_version=no

> > > @@ -15842,7 +15842,7 @@ fi

> > >    # Default to "generic".

> > >    if test $enable_clocale_flag = auto; then

> > >      case ${target_os} in

> > > -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> > > +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> > >          enable_clocale_flag=gnu

> > >          ;;

> > >        darwin*)

> > > @@ -16259,7 +16259,7 @@ fi

> > >    # Default to "new".

> > >    if test $enable_libstdcxx_allocator_flag = auto; then

> > >      case ${target_os} in

> > > -      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)

> > > +      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> > >          enable_libstdcxx_allocator_flag=new

> > >          ;;

> > >        *)

> > > @@ -20535,7 +20535,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu

> > >          ac_has_nanosleep=yes

> > >          ac_has_sched_yield=yes

> > >          ;;

> > > -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> > > +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> > >          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at least GNU libc 2.17" >&5

> > >  $as_echo_n "checking for at least GNU libc 2.17... " >&6; }

> > >          cat confdefs.h - <<_ACEOF >conftest.$ac_ext

> > > @@ -21035,7 +21035,7 @@ $as_echo "$ac_has_nanosleep" >&6; }

> > >

> > >    if test x"$ac_has_clock_monotonic" != x"yes"; then

> > >      case ${target_os} in

> > > -      linux*)

> > > +      linux* | uclinux*)

> > >          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime syscall" >&5

> > >  $as_echo_n "checking for clock_gettime syscall... " >&6; }

> > >          cat confdefs.h - <<_ACEOF >conftest.$ac_ext

> > > @@ -27927,7 +27927,7 @@ _ACEOF

> > >  if ac_fn_c_try_link "$LINENO"; then :

> > >    chktls_save_LDFLAGS="$LDFLAGS"

> > >                                case $host in

> > > -           *-*-linux*)

> > > +           *-*-linux* | -*-uclinux*)

> > >                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

> > >                ;;

> > >            esac

> > > @@ -53603,7 +53603,7 @@ _ACEOF

> > >  if ac_fn_c_try_link "$LINENO"; then :

> > >    chktls_save_LDFLAGS="$LDFLAGS"

> > >                                case $host in

> > > -           *-*-linux*)

> > > +           *-*-linux* | -*-uclinux*)

> > >                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

> > >                ;;

> > >            esac

> > > @@ -59804,7 +59804,7 @@ _ACEOF

> > >  if ac_fn_c_try_link "$LINENO"; then :

> > >    chktls_save_LDFLAGS="$LDFLAGS"

> > >                                case $host in

> > > -           *-*-linux*)

> > > +           *-*-linux* | -*-uclinux*)

> > >                LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"

> > >                ;;

> > >            esac

> > > @@ -78438,7 +78438,7 @@ fi

> > >

> > >

> > >  case "$target" in

> > > -  *-linux*)

> > > +  *-linux* | *-uclinux*)

> > >      case "$enable_linux_futex" in

> > >        default)

> > >          # If headers don't have gettid/futex syscalls definition, then

> > > @@ -80074,7 +80074,7 @@ $as_echo_n "checking whether to build Filesystem TS support... " >&6; }

> > >        freebsd*|netbsd*|openbsd*|dragonfly*|darwin*)

> > >          enable_libstdcxx_filesystem_ts=yes

> > >          ;;

> > > -      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)

> > > +      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)

> > >          enable_libstdcxx_filesystem_ts=yes

> > >          ;;

> > >        rtems*)

> > > @@ -80498,7 +80498,7 @@ $as_echo_n "checking for sendfile that can copy files... " >&6; }

> > >    $as_echo_n "(cached) " >&6

> > >  else

> > >          case "${target_os}" in

> > > -        gnu* | linux* | solaris*)

> > > +        gnu* | linux* | solaris* | uclinux*)

> > >            if test x$gcc_no_link = xyes; then

> > >    cat confdefs.h - <<_ACEOF >conftest.$ac_ext

> > >  /* end confdefs.h.  */

> > > diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host

> > > index caea9de..067d6e1 100644

> > > --- a/libstdc++-v3/configure.host

> > > +++ b/libstdc++-v3/configure.host

> > > @@ -261,7 +261,7 @@ case "${host_os}" in

> > >    linux-musl*)

> > >      os_include_dir="os/generic"

> > >      ;;

> > > -  gnu* | linux* | kfreebsd*-gnu)

> > > +  gnu* | linux* | kfreebsd*-gnu | uclinux*)

> > >      if [ "$uclibc" = "yes" ]; then

> > >        os_include_dir="os/uclibc"

> > >      elif [ "$bionic" = "yes" ]; then

> > > @@ -324,7 +324,7 @@ esac

> > >  # Set any OS-dependent and CPU-dependent bits.

> > >  # THIS TABLE IS SORTED.  KEEP IT THAT WAY.

> > >  case "${host}" in

> > > -  *-*-linux*)

> > > +  *-*-linux* | *-*-uclinux*)

> > >      case "${host_cpu}" in

> > >        i[567]86)

> > >          abi_baseline_pair=i486-linux-gnu

> > > @@ -355,7 +355,7 @@ case "${host}" in

> > >          fi

> > >      esac

> > >      case "${host}" in

> > > -      arm*-*-linux-*)

> > > +      arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)

> > > port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver"

> > >          ;;

> > >      esac

> > > diff --git a/libtool.m4 b/libtool.m4

> > > index 24d13f3..048931b 100644

> > > --- a/libtool.m4

> > > +++ b/libtool.m4

> > > @@ -2449,7 +2449,7 @@ linux*oldld* | linux*aout* | linux*coff*)

> > >    ;;

> > >

> > >  # This must be Linux ELF.

> > > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >    version_type=linux

> > >    need_lib_prefix=no

> > >    need_version=no

> > > @@ -3089,7 +3089,7 @@ irix5* | irix6* | nonstopux*)

> > >    ;;

> > >

> > >  # This must be Linux ELF.

> > > -linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >    lt_cv_deplibs_check_method=pass_all

> > >    ;;

> > >

> > > @@ -3734,7 +3734,7 @@ m4_if([$1], [CXX], [

> > >              ;;

> > >          esac

> > >          ;;

> > > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> > >          case $cc_basename in

> > >            KCC*)

> > >              # KAI C++ Compiler

> > > @@ -4032,7 +4032,7 @@ m4_if([$1], [CXX], [

> > >        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'

> > >        ;;

> > >

> > > -    linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)

> > >        case $cc_basename in

> > >        # old Intel for x86_64 which still supported -KPIC.

> > >        ecc*)

> > > @@ -4449,7 +4449,7 @@ _LT_EOF

> > >        _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'

> > >        ;;

> > >

> > > -    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >        tmp_diet=no

> > >        if test "$host_os" = linux-dietlibc; then

> > >          case $cc_basename in

> > > @@ -5946,7 +5946,7 @@ if test "$_lt_caught_CXX_error" != yes; then

> > >          _LT_TAGVAR(inherit_rpath, $1)=yes

> > >          ;;

> > >

> > > -      linux* | k*bsd*-gnu | kopensolaris*-gnu)

> > > +      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)

> > >          case $cc_basename in

> > >            KCC*)

> > >              # Kuck and Associates, Inc. (KAI) C++ Compiler

> > > @@ -6598,7 +6598,7 @@ interix[[3-9]]*)

> > >    _LT_TAGVAR(postdeps,$1)=

> > >    ;;

> > >

> > > -linux*)

> > > +linux* | uclinux*)

> > >    case `$CC -V 2>&1 | sed 5q` in

> > >    *Sun\ C*)

> > >      # Sun C++ 5.9

> > > --

> > > 2.6.3

> > >

> >

Patch

diff --git a/config/futex.m4 b/config/futex.m4
index e95144d..4dffe15 100644
--- a/config/futex.m4
+++ b/config/futex.m4
@@ -9,7 +9,7 @@  AC_DEFUN([GCC_LINUX_FUTEX],[dnl
 GCC_ENABLE(linux-futex,default, ,[use the Linux futex system call],
 	   permit yes|no|default)
 case "$target" in
-  *-linux*)
+  *-linux* | *-uclinux*)
     case "$enable_linux_futex" in
       default)
 	# If headers don't have gettid/futex syscalls definition, then
diff --git a/config/tls.m4 b/config/tls.m4
index 4e170c8..5a8676e 100644
--- a/config/tls.m4
+++ b/config/tls.m4
@@ -76,7 +76,7 @@  AC_DEFUN([GCC_CHECK_TLS], [
 	  dnl Shared library options may depend on the host; this check
 	  dnl is only known to be needed for GNU/Linux.
 	  case $host in
-	    *-*-linux*)
+	    *-*-linux* | -*-uclinux*)
 	      LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
 	      ;;
 	  esac
diff --git a/gcc/config.gcc b/gcc/config.gcc
index ef67c88..808ff82 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -759,7 +759,7 @@  case ${target} in
 *-*-fuchsia*)
   native_system_header_dir=/include
   ;;
-*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
+*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
   extra_options="$extra_options gnu-user.opt"
   gas=yes
   gnu_ld=yes
@@ -768,7 +768,7 @@  case ${target} in
   esac
   tmake_file="t-slibgcc"
   case $target in
-    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
+    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu  | *-*-uclinuxfdpiceabi)
       :;;
     *-*-gnu*)
       native_system_header_dir=/include
@@ -788,7 +788,7 @@  case ${target} in
     *-*-*android*)
       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
       ;;
-    *-*-*uclibc*)
+    *-*-*uclibc* | *-*-uclinuxfdpiceabi)
       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
       ;;
     *-*-*musl*)
@@ -1135,7 +1135,7 @@  arm*-*-netbsdelf*)
 	tmake_file="${tmake_file} arm/t-arm"
 	target_cpu_cname="arm6"
 	;;
-arm*-*-linux-*)			# ARM GNU/Linux with ELF
+arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)			# ARM GNU/Linux with ELF
 	tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
 	extra_options="${extra_options} linux-android.opt"
 	case $target in
diff --git a/libatomic/configure b/libatomic/configure
index b902e2c..5b3ef8e 100755
--- a/libatomic/configure
+++ b/libatomic/configure
@@ -5819,7 +5819,7 @@  irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -8305,7 +8305,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -8900,7 +8900,7 @@  _LT_EOF
       archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
       tmp_diet=no
       if test "$host_os" = linux-dietlibc; then
 	case $cc_basename in
@@ -10431,7 +10431,7 @@  linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
   version_type=linux
   need_lib_prefix=no
   need_version=no
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
index ea8c34f..c1a608f 100644
--- a/libatomic/configure.tgt
+++ b/libatomic/configure.tgt
@@ -124,7 +124,7 @@  case "${target}" in
 	config_path="${config_path} linux/aarch64 posix"
 	;;
 
-  arm*-*-linux*)
+  arm*-*-linux* | arm*-*-uclinux*)
 	# OS support for atomic primitives.
 	config_path="${config_path} linux/arm posix"
 	;;
diff --git a/libgcc/config.host b/libgcc/config.host
index 18cabaf..9bcf430 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -235,7 +235,7 @@  case ${host} in
   tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"
   extra_parts="crtbegin.o crtend.o"
   ;;
-*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
+*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
   tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux"
   extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
   if test x$enable_vtable_verify = xyes; then
@@ -421,7 +421,7 @@  arm*-*-fuchsia*)
 arm*-*-netbsdelf*)
 	tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
 	;;
-arm*-*-linux*)			# ARM GNU/Linux with ELF
+arm*-*-linux* | arm*-*-uclinuxfdpiceabi)			# ARM GNU/Linux with ELF
 	tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix t-crtfm"
 	tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
 	tm_file="$tm_file arm/bpabi-lib.h"
diff --git a/libitm/configure b/libitm/configure
index dbf386d..fd82500 100644
--- a/libitm/configure
+++ b/libitm/configure
@@ -6494,7 +6494,7 @@  irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -8981,7 +8981,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -9576,7 +9576,7 @@  _LT_EOF
       archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
       tmp_diet=no
       if test "$host_os" = linux-dietlibc; then
 	case $cc_basename in
@@ -11107,7 +11107,7 @@  linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -13008,7 +13008,7 @@  if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
         inherit_rpath_CXX=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
         case $cc_basename in
           KCC*)
 	    # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -13595,7 +13595,7 @@  interix[3-9]*)
   postdeps_CXX=
   ;;
 
-linux*)
+linux* | uclinux*)
   case `$CC -V 2>&1 | sed 5q` in
   *Sun\ C*)
     # Sun C++ 5.9
@@ -13846,7 +13846,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 	    ;;
 	esac
 	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)
 	case $cc_basename in
 	  KCC*)
 	    # KAI C++ Compiler
@@ -14767,7 +14767,7 @@  linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -16239,7 +16239,7 @@  fi
 
 
 case "$target" in
-  *-linux*)
+  *-linux* | *-uclinux*)
     case "$enable_linux_futex" in
       default)
 	# If headers don't have gettid/futex syscalls definition, then
@@ -16362,7 +16362,7 @@  _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
   chktls_save_LDFLAGS="$LDFLAGS"
 	  	  	  case $host in
-	    *-*-linux*)
+	    *-*-linux* | -*-uclinux*)
 	      LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
 	      ;;
 	  esac
diff --git a/libitm/configure.tgt b/libitm/configure.tgt
index 0cbb097..bc6c3ca 100644
--- a/libitm/configure.tgt
+++ b/libitm/configure.tgt
@@ -127,7 +127,7 @@  config_path="$ARCH posix generic"
 
 # Other system configury
 case "${target}" in
-  *-*-linux*)
+  *-*-linux* | *-*-uclinux*)
 	if test "$enable_linux_futex" = yes; then
 	  config_path="linux/$ARCH linux $config_path"
 	fi
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index cf5add1..fc49a97 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -1403,7 +1403,7 @@  AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [
         ac_has_nanosleep=yes
         ac_has_sched_yield=yes
         ;;
-      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
+      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)
         AC_MSG_CHECKING([for at least GNU libc 2.17])
         AC_TRY_COMPILE(
           [#include <features.h>],
@@ -1525,7 +1525,7 @@  AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [
 
   if test x"$ac_has_clock_monotonic" != x"yes"; then
     case ${target_os} in
-      linux*)
+      linux* | uclinux*)
 	AC_MSG_CHECKING([for clock_gettime syscall])
 	AC_TRY_COMPILE(
 	  [#include <unistd.h>
@@ -2410,7 +2410,7 @@  AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
   # Default to "generic".
   if test $enable_clocale_flag = auto; then
     case ${target_os} in
-      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
+      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)
 	enable_clocale_flag=gnu
 	;;
       darwin*)
@@ -2656,7 +2656,7 @@  AC_DEFUN([GLIBCXX_ENABLE_ALLOCATOR], [
   # Default to "new".
   if test $enable_libstdcxx_allocator_flag = auto; then
     case ${target_os} in
-      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
+      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)
 	enable_libstdcxx_allocator_flag=new
 	;;
       *)
@@ -4290,7 +4290,7 @@  AC_DEFUN([GLIBCXX_ENABLE_FILESYSTEM_TS], [
       freebsd*|netbsd*|openbsd*|dragonfly*|darwin*)
         enable_libstdcxx_filesystem_ts=yes
         ;;
-      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
+      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)
         enable_libstdcxx_filesystem_ts=yes
         ;;
       rtems*)
@@ -4438,7 +4438,7 @@  dnl
     AC_MSG_CHECKING([for sendfile that can copy files])
     AC_CACHE_VAL(glibcxx_cv_sendfile, [dnl
       case "${target_os}" in
-        gnu* | linux* | solaris*)
+        gnu* | linux* | solaris* | uclinux*)
           GCC_TRY_COMPILE_OR_LINK(
             [#include <sys/sendfile.h>],
             [sendfile(1, 2, (off_t*)0, sizeof 1);],
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index d126add..827266d 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -6414,7 +6414,7 @@  irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -8766,7 +8766,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -9361,7 +9361,7 @@  _LT_EOF
       archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
       tmp_diet=no
       if test "$host_os" = linux-dietlibc; then
 	case $cc_basename in
@@ -10901,7 +10901,7 @@  linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -12826,7 +12826,7 @@  if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
         inherit_rpath_CXX=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
         case $cc_basename in
           KCC*)
 	    # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -13413,7 +13413,7 @@  interix[3-9]*)
   postdeps_CXX=
   ;;
 
-linux*)
+linux* | uclinux*)
   case `$CC -V 2>&1 | sed 5q` in
   *Sun\ C*)
     # Sun C++ 5.9
@@ -13664,7 +13664,7 @@  $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 	    ;;
 	esac
 	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)
 	case $cc_basename in
 	  KCC*)
 	    # KAI C++ Compiler
@@ -14585,7 +14585,7 @@  linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -15842,7 +15842,7 @@  fi
   # Default to "generic".
   if test $enable_clocale_flag = auto; then
     case ${target_os} in
-      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
+      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)
 	enable_clocale_flag=gnu
 	;;
       darwin*)
@@ -16259,7 +16259,7 @@  fi
   # Default to "new".
   if test $enable_libstdcxx_allocator_flag = auto; then
     case ${target_os} in
-      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
+      linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)
 	enable_libstdcxx_allocator_flag=new
 	;;
       *)
@@ -20535,7 +20535,7 @@  ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
         ac_has_nanosleep=yes
         ac_has_sched_yield=yes
         ;;
-      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
+      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at least GNU libc 2.17" >&5
 $as_echo_n "checking for at least GNU libc 2.17... " >&6; }
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21035,7 +21035,7 @@  $as_echo "$ac_has_nanosleep" >&6; }
 
   if test x"$ac_has_clock_monotonic" != x"yes"; then
     case ${target_os} in
-      linux*)
+      linux* | uclinux*)
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime syscall" >&5
 $as_echo_n "checking for clock_gettime syscall... " >&6; }
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -27927,7 +27927,7 @@  _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
   chktls_save_LDFLAGS="$LDFLAGS"
 	  	  	  case $host in
-	    *-*-linux*)
+	    *-*-linux* | -*-uclinux*)
 	      LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
 	      ;;
 	  esac
@@ -53603,7 +53603,7 @@  _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
   chktls_save_LDFLAGS="$LDFLAGS"
 	  	  	  case $host in
-	    *-*-linux*)
+	    *-*-linux* | -*-uclinux*)
 	      LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
 	      ;;
 	  esac
@@ -59804,7 +59804,7 @@  _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
   chktls_save_LDFLAGS="$LDFLAGS"
 	  	  	  case $host in
-	    *-*-linux*)
+	    *-*-linux* | -*-uclinux*)
 	      LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
 	      ;;
 	  esac
@@ -78438,7 +78438,7 @@  fi
 
 
 case "$target" in
-  *-linux*)
+  *-linux* | *-uclinux*)
     case "$enable_linux_futex" in
       default)
 	# If headers don't have gettid/futex syscalls definition, then
@@ -80074,7 +80074,7 @@  $as_echo_n "checking whether to build Filesystem TS support... " >&6; }
       freebsd*|netbsd*|openbsd*|dragonfly*|darwin*)
         enable_libstdcxx_filesystem_ts=yes
         ;;
-      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
+      gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu | uclinux*)
         enable_libstdcxx_filesystem_ts=yes
         ;;
       rtems*)
@@ -80498,7 +80498,7 @@  $as_echo_n "checking for sendfile that can copy files... " >&6; }
   $as_echo_n "(cached) " >&6
 else
         case "${target_os}" in
-        gnu* | linux* | solaris*)
+        gnu* | linux* | solaris* | uclinux*)
           if test x$gcc_no_link = xyes; then
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
index caea9de..067d6e1 100644
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -261,7 +261,7 @@  case "${host_os}" in
   linux-musl*)
     os_include_dir="os/generic"
     ;;
-  gnu* | linux* | kfreebsd*-gnu)
+  gnu* | linux* | kfreebsd*-gnu | uclinux*)
     if [ "$uclibc" = "yes" ]; then
       os_include_dir="os/uclibc"
     elif [ "$bionic" = "yes" ]; then
@@ -324,7 +324,7 @@  esac
 # Set any OS-dependent and CPU-dependent bits.
 # THIS TABLE IS SORTED.  KEEP IT THAT WAY.
 case "${host}" in
-  *-*-linux*)
+  *-*-linux* | *-*-uclinux*)
     case "${host_cpu}" in
       i[567]86)
         abi_baseline_pair=i486-linux-gnu
@@ -355,7 +355,7 @@  case "${host}" in
         fi
     esac
     case "${host}" in
-      arm*-*-linux-*)
+      arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
 	port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver"
 	;;
     esac
diff --git a/libtool.m4 b/libtool.m4
index 24d13f3..048931b 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -2449,7 +2449,7 @@  linux*oldld* | linux*aout* | linux*coff*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -3089,7 +3089,7 @@  irix5* | irix6* | nonstopux*)
   ;;
 
 # This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -3734,7 +3734,7 @@  m4_if([$1], [CXX], [
 	    ;;
 	esac
 	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)
 	case $cc_basename in
 	  KCC*)
 	    # KAI C++ Compiler
@@ -4032,7 +4032,7 @@  m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinux*)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -4449,7 +4449,7 @@  _LT_EOF
       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
       tmp_diet=no
       if test "$host_os" = linux-dietlibc; then
 	case $cc_basename in
@@ -5946,7 +5946,7 @@  if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
         case $cc_basename in
           KCC*)
 	    # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -6598,7 +6598,7 @@  interix[[3-9]]*)
   _LT_TAGVAR(postdeps,$1)=
   ;;
 
-linux*)
+linux* | uclinux*)
   case `$CC -V 2>&1 | sed 5q` in
   *Sun\ C*)
     # Sun C++ 5.9