There is indeed more simplification possible (alpha-vms for example
caught my attention while reviewing), but proceeding incrementally
does not hurt.

This patch is okay, thanks.

Paolo


2011/5/4, Joseph S. Myers <jos...@codesourcery.com>:
> This patch separates cases disabling newlib and libgloss for various
> target OSes from the main toplevel case statement over targets.
>
> By doing so, the logic is significantly simplified; there is now a
> single case for all *-*-linux* targets that disables newlib and
> libgloss for them, for example.  (The only Linux port of newlib is for
> x86, so it's correct the disable newlib for all Linux targets except
> for x86 where the existing logic is retained.)  Most empty cases in
> the main case statement can now be removed because once this disabling
> is done consistently on a per-OS basis there is no longer a
> possibility that an empty case has a use to stop falling through to
> later cases such as *-*-linux*.  (A few empty cases need to be kept to
> stop falling through to cases such as mips*-*-*, however.)
>
> Where newlib and libgloss were disabled for an OS on multiple
> architectures I generally wrote a patter that matched all
> architectures for that OS.  For sparc-*-sunos4* the logic disabled
> them only for cross compilers, but newlib and libgloss are disabled by
> default for native compilers anyway so I didn't keep any such
> conditional when moving that disabling up.
>
> While there's certainly scope for more splitting up of the big
> toplevel case statement (so each project sharing the toplevel has its
> own case statement, eventually coming from a subdirectory file), I
> think this patch may be the last piece involving substantial
> simplification through splitting up case statements.
>
> OK to commit?
>
> 2011-05-04  Joseph Myers  <jos...@codesourcery.com>
>
>       * configure.ac (alpha*-dec-osf*, i[[3456789]]86-*-rdos*,
>       sh*-*-pe|mips*-*-pe|arm-wince-pe, sparc-*-sunos4*, *-*-aix*,
>       *-*-beos*, *-*-chorusos, *-*-dragonfly*, *-*-freebsd*, *-*-linux*
>       | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu, *-*-lynxos*,
>       *-*-mingw*, *-*-netbsd*, *-*-netware*, *-*-tpf*, *-*-uclinux*,
>       *-*-vxworks*): Disable newlib and libgloss in separate case
>       statement.
>       (i[[3456789]]86-*-linux*): Move logic allowing newlib to be built
>       to separate case statement.
>       (*-*-chorusos, *-*-dragonfly*, *-*-freebsd*, *-*-netbsd*,
>       *-*-netware*, *-*-tpf*, *-*-uclinux*, *-*-vxworks*,
>       alpha*-dec-osf*, alpha*-*-linux*, am33_2.0-*-linux*, sh-*-linux*,
>       sh*-*-pe|mips*-*-pe|*arm-wince-pe, arm-*-coff, arm-*-elf* |
>       arm*-*-eabi*, arm*-*-linux-gnueabi, arm*-*-symbianelf*, avr-*-*,
>       bfin-*-*, cris-*-* | crisv32-*-*, frv-*-*, i[[3456789]]86-*-coff |
>       i[[3456789]]86-*-elf, i[[3456789]]86-w64-mingw*,
>       i[[3456789]]86-*-mingw*, x86_64-*-mingw*,
>       i[[3456789]]86-*-interix*, i[[3456789]]86-*-beos*,
>       i[[3456789]]86-*-rdos*, m32r-*-*,
>       m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*, m68k-*-elf*, m68*-*-*
>       | fido-*-*, powerpc-*-aix*, powerpc-*-beos*, powerpc-*-eabi,
>       powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems*,
>       rs6000-*-lynxos*, rs6000-*-aix*, mips*-*-linux*, sparclet-*-aout*
>       | sparc86x-*-*, sparc-*-elf*, sparc64-*-elf*, sparclite-*-*,
>       sparc-*-sunos4*, sparc-*-solaris* | sparc64-*-solaris* |
>       sparcv9-*-solaris*, *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu |
>       *-*-kopensolaris*-gnu, *-*-lynxos*, *-*-*): Don't disable newlib
>       and libgloss in main case over targets.  Remove most empty cases
>       in main case over targets.
>       * configure: Regenerate.
>
> Index: configure.ac
> ===================================================================
> --- configure.ac      (revision 173360)
> +++ configure.ac      (working copy)
> @@ -744,10 +744,76 @@
>      ;;
>  esac
>
> +# Disable newlib and libgloss for various target OSes.
>  case "${target}" in
> +  alpha*-dec-osf*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  i[[3456789]]86-*-linux*)
> +    # This section makes it possible to build newlib natively on linux.
> +    # If we are using a cross compiler then don't configure newlib.
> +    if test x${is_cross_compiler} != xno ; then
> +      noconfigdirs="$noconfigdirs target-newlib"
> +    fi
> +    noconfigdirs="$noconfigdirs target-libgloss"
> +    # If we are not using a cross compiler, do configure newlib.
> +    # Note however, that newlib will only be configured in this situation
> +    # if the --with-newlib option has been given, because otherwise
> +    # 'target-newlib' will appear in skipdirs.
> +    ;;
> +  i[[3456789]]86-*-rdos*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  sh*-*-pe|mips*-*-pe|arm-wince-pe)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  sparc-*-sunos4*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-aix*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-beos*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
>    *-*-chorusos)
>      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
>      ;;
> +  *-*-dragonfly*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-freebsd*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-lynxos*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-mingw*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-netbsd*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-netware*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-tpf*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-uclinux*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +  *-*-vxworks*)
> +    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> +    ;;
> +esac
> +
> +case "${target}" in
> +  *-*-chorusos)
> +    ;;
>    powerpc-*-darwin*)
>      noconfigdirs="$noconfigdirs ld gas gdb gprof"
>      noconfigdirs="$noconfigdirs sim target-rda"
> @@ -765,10 +831,8 @@
>      noconfigdirs="$noconfigdirs sim target-rda"
>      ;;
>    *-*-dragonfly*)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
>      ;;
>    *-*-freebsd*)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
>      if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
>       && test -f /usr/local/include/gmp.h; then
>        with_gmp=/usr/local
> @@ -779,76 +843,45 @@
>      noconfigdirs="$noconfigdirs target-libgloss"
>      ;;
>    *-*-netbsd*)
> -    # Skip some stuff on all NetBSD configurations.
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
>      ;;
>    *-*-netware*)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
>      ;;
>    *-*-rtems*)
>      noconfigdirs="$noconfigdirs target-libgloss"
>      ;;
>      # The tpf target doesn't support gdb yet.
>    *-*-tpf*)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss gdb tcl tk
> libgui itcl"
> +    noconfigdirs="$noconfigdirs gdb tcl tk libgui itcl"
>      ;;
>    *-*-uclinux*)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda"
> +    noconfigdirs="$noconfigdirs target-rda"
>      ;;
>    *-*-vxworks*)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
>      ;;
>    alpha*-dec-osf*)
>      # ld works, but does not support shared libraries.
> -    # newlib is not 64 bit ready.
>      # gas doesn't generate exception information.
> -    noconfigdirs="$noconfigdirs gas ld target-newlib target-libgloss"
> +    noconfigdirs="$noconfigdirs gas ld"
>      ;;
>    alpha*-*-*vms*)
>      noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
>      ;;
> -  alpha*-*-linux*)
> -    # newlib is not 64 bit ready
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> -    ;;
>    alpha*-*-*)
>      # newlib is not 64 bit ready
>      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
>      ;;
> -  am33_2.0-*-linux*)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> -    ;;
> -  sh-*-linux*)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> -    ;;
>    sh*-*-pe|mips*-*-pe|*arm-wince-pe)
>      noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
> -    noconfigdirs="$noconfigdirs target-newlib"
>      ;;
>    arc-*-*)
>      noconfigdirs="$noconfigdirs target-libgloss"
>      ;;
> -  arm-*-coff)
> -    ;;
> -  arm-*-elf* | arm*-*-eabi* )
> -    ;;
> -  arm*-*-linux-gnueabi)
> -    case ${with_newlib} in
> -      no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> -    esac
> -    ;;
> -  arm*-*-symbianelf*)
> -    ;;
>    arm-*-pe*)
>      noconfigdirs="$noconfigdirs target-libgloss"
>      ;;
>    arm-*-riscix*)
>      noconfigdirs="$noconfigdirs ld target-libgloss"
>      ;;
> -  avr-*-*)
> -    ;;
> -  bfin-*-*)
> -    ;;
>    c4x-*-* | tic4x-*-*)
>      noconfigdirs="$noconfigdirs target-libgloss"
>      ;;
> @@ -858,12 +891,6 @@
>    cr16-*-*)
>      noconfigdirs="$noconfigdirs gdb"
>      ;;
> -  cris-*-* | crisv32-*-*)
> -    case "${target}" in
> -      *-*-linux*)
> -     noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
> -    esac
> -    ;;
>    d10v-*-*)
>      noconfigdirs="$noconfigdirs target-libgloss"
>      ;;
> @@ -873,8 +900,6 @@
>    fr30-*-elf*)
>      noconfigdirs="$noconfigdirs gdb"
>      ;;
> -  frv-*-*)
> -    ;;
>    moxie-*-*)
>      noconfigdirs="$noconfigdirs gprof"
>      ;;
> @@ -918,30 +943,11 @@
>      # No gdb or ld support yet.
>      noconfigdirs="$noconfigdirs readline libgui itcl gdb ld"
>      ;;
> -  i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
> -    ;;
> -  i[[3456789]]86-*-linux*)
> -    # This section makes it possible to build newlib natively on linux.
> -    # If we are using a cross compiler then don't configure newlib.
> -    if test x${is_cross_compiler} != xno ; then
> -      noconfigdirs="$noconfigdirs target-newlib"
> -    fi
> -    noconfigdirs="$noconfigdirs target-libgloss"
> -    # If we are not using a cross compiler, do configure newlib.
> -    # Note however, that newlib will only be configured in this situation
> -    # if the --with-newlib option has been given, because otherwise
> -    # 'target-newlib' will appear in skipdirs.
> -    ;;
>    i[[3456789]]86-w64-mingw*)
> -    noconfigdirs="$noconfigdirs target-libgloss target-newlib"
>      ;;
>    i[[3456789]]86-*-mingw*)
>      target_configdirs="$target_configdirs target-winsup"
> -    noconfigdirs="$noconfigdirs target-libgloss target-newlib"
>      ;;
> -  x86_64-*-mingw*)
> -    noconfigdirs="$noconfigdirs target-libgloss target-newlib"
> -    ;;
>    *-*-cygwin*)
>      target_configdirs="$target_configdirs target-libtermcap target-winsup"
>      noconfigdirs="$noconfigdirs target-libgloss"
> @@ -952,8 +958,6 @@
>        echo "Warning: winsup/cygwin is missing so newlib can't be built."
>      fi
>      ;;
> -  i[[3456789]]86-*-interix* )
> -    ;;
>    i[[3456789]]86-*-pe)
>      noconfigdirs="$noconfigdirs target-libgloss"
>      ;;
> @@ -972,19 +976,11 @@
>      noconfigdirs="$noconfigdirs target-libgloss"
>      ;;
>    i[[3456789]]86-*-beos*)
> -    noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
> +    noconfigdirs="$noconfigdirs gdb"
>      ;;
>    i[[3456789]]86-*-rdos*)
> -    noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
> +    noconfigdirs="$noconfigdirs gdb"
>      ;;
> -  m32r-*-*)
> -    ;;
> -  m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
> -    ;;
> -  m68k-*-elf*)
> -    ;;
> -  m68*-*-* | fido-*-*)
> -    ;;
>    mmix-*-*)
>      noconfigdirs="$noconfigdirs gdb"
>      ;;
> @@ -993,7 +989,7 @@
>      ;;
>    powerpc-*-aix*)
>      # copied from rs6000-*-* entry
> -    noconfigdirs="$noconfigdirs gprof target-libgloss target-newlib"
> +    noconfigdirs="$noconfigdirs gprof"
>      ;;
>    powerpc*-*-winnt* | powerpc*-*-pe*)
>      target_configdirs="$target_configdirs target-winsup"
> @@ -1006,17 +1002,13 @@
>      noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
>      ;;
>    powerpc-*-beos*)
> -    noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
> +    noconfigdirs="$noconfigdirs gdb"
>      ;;
> -  powerpc-*-eabi)
> -    ;;
> -  powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
> -    ;;
>    rs6000-*-lynxos*)
> -    noconfigdirs="$noconfigdirs target-newlib gprof"
> +    noconfigdirs="$noconfigdirs gprof"
>      ;;
>    rs6000-*-aix*)
> -    noconfigdirs="$noconfigdirs gprof target-libgloss target-newlib"
> +    noconfigdirs="$noconfigdirs gprof"
>      ;;
>    rs6000-*-*)
>      noconfigdirs="$noconfigdirs gprof"
> @@ -1042,7 +1034,6 @@
>      noconfigdirs="$noconfigdirs gprof target-libgloss"
>      ;;
>    mips*-*-linux*)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
>      ;;
>    mips*-*-*)
>      noconfigdirs="$noconfigdirs gprof"
> @@ -1055,23 +1046,11 @@
>           noconfigdirs="$noconfigdirs target-libgloss" ;;
>      esac
>      ;;
> -  sparclet-*-aout* | sparc86x-*-*)
> -    ;;
> -  sparc-*-elf*)
> -    ;;
> -  sparc64-*-elf*)
> -    ;;
> -  sparclite-*-*)
> -    ;;
>    sparc-*-sunos4*)
> -    if test x${is_cross_compiler} != xno ; then
> -           noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
> -    else
> +    if test x${is_cross_compiler} = xno ; then
>             use_gnu_ld=no
>      fi
>      ;;
> -  sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
> -    ;;
>    tic6x-*-*)
>      noconfigdirs="$noconfigdirs gdb sim"
>      ;;
> @@ -1081,14 +1060,6 @@
>    vax-*-*)
>      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
>      ;;
> -  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> -    ;;
> -  *-*-lynxos*)
> -    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
> -    ;;
> -  *-*-*)
> -    ;;
>  esac
>
>  # If we aren't building newlib, then don't build libgloss, since libgloss
>
> --
> Joseph S. Myers
> jos...@codesourcery.com
>
>

-- 
Inviato dal mio dispositivo mobile

Reply via email to