http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49448

           Summary: gcc configure script wrongly detect
                    TARGET_BIG_ENDIAN_DEFAULT
           Product: gcc
           Version: 4.5.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: other
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: gough...@yahoo.com.cn


In the configure script "gcc/config.gcc", around line 733:

arm*-*-linux*)                  # ARM GNU/Linux with ELF
        tm_file="dbxelf.h elfos.h linux.h glibc-stdint.h arm/elf.h
arm/linux-gas.h arm/linux-elf.h"
        case $target in
        arm*b-*)
                tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
                ;;
        esac
        tmake_file="${tmake_file} t-linux arm/t-arm"

If $target have the form "arm-tab-linux-gnu", this script will enable
big-endian defaults. But the resulting gcc will, by default, generate
little-endian object files, and pass some big-endian argument to linker.

This might be a common problem in scripts. Should the use of "*" be restricted,
or warned in some important scripts?

Reply via email to