+++ /dev/null
-# Copyright (C) 1999, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# gcc-patches@gcc.gnu.org
-
-# This file defines procs for determining features supported by the target.
-
-###############################
-# proc check_weak_available { }
-###############################
-
-# weak symbols are only supported in some configs/object formats
-# this proc returns 1 if they're supported, 0 if they're not, or -1 if unsure
-
-proc check_weak_available { } {
- global target_triplet
- global target_cpu
-
- # All mips targets should support it
-
- if { [ string first "mips" $target_cpu ] >= 0 } {
- return 1
- }
-
- # All solaris2 targets should support it
-
- if { [regexp ".*-solaris2.*" $target_triplet] } {
- return 1
- }
-
- # DEC OSF/1/Digital UNIX/Tru64 UNIX supports it
-
- if { [regexp "alpha.*osf.*" $target_triplet] } {
- return 1
- }
-
- # ELF and ECOFF support it. a.out does with gas/gld but may also with
- # other linkers, so we should try it
-
- set objformat [gcc_target_object_format]
-
- switch $objformat {
- elf { return 1 }
- ecoff { return 1 }
- a.out { return 1 }
- unknown { return -1 }
- default { return 0 }
- }
-}
-
-###############################
-# proc check_alias_available { }
-###############################
-
-# Determine if the target toolchain supports the alias attribute.
-# Parameter is the pathname of a file that can be used to test the alias support.
-# Returns yes if it does.
-# Returns no if it does not.
-# Returns dontknow if something went wrong
-# For an example of the use of this function, see gcc.dg/special/ecos.exp
-
-proc check_alias_available { testfile } {
- global alias_available_saved
-
- if [info exists alias_available_saved] {
- verbose "check_alias_available returning saved $alias_available_saved" 2
- } else {
- verbose "check_alias_available compiling testfile $testfile" 2
- set lines [gcc_target_compile $testfile "tmp.o" object ""]
-
- if [string match "" $lines] then {
- # No error messages, everything is OK.
- set alias_available_saved yes
- } else {
- if [regexp "alias definitions not supported" $lines] {
- verbose "check_alias_available target does not support aliases" 2
-
- set objformat [gcc_target_object_format]
-
- if { $objformat == "elf" } {
- verbose "check_alias_available but target uses ELF format, so it ought to" 2
- set alias_available_saved dontknow
- } else {
- set alias_available_saved no
- }
- } else {
- if [regexp "only weak aliases are supported" $lines] {
- verbose "check_alias_available target supports only weak aliases" 2
- set alias_available_saved no
- } else {
- set alias_available_saved dontknow
- }
- }
- }
-
- verbose "check_alias_available returning $alias_available_saved" 2
- }
-
- return $alias_available_saved
-}