# Test SORT_BY_NAME/SORT_BY_ALIGNMENT/SORT in a linker script.
# By H.J. Lu  <hongjiu.lu@intel.com>
#   Copyright 2004
#   Free Software Foundation, Inc.
#
# This file 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.

# FIXME: The expected outputs are correct only for ELF.
if ![is_elf_format] {
    return
}

load_lib ld-lib.exp

set sort_test_list [lsort [glob -nocomplain $srcdir/$subdir/sort*.d]]
for { set i 0 } { $i < [llength $sort_test_list] } { incr i } {
    verbose [file rootname [lindex $sort_test_list $i]]
    run_dump_test [file rootname [lindex $sort_test_list $i]]
}
