# Expect script for ELF compressed debug section tests. # Copyright (C) 2010-2015 Free Software Foundation, Inc. # # This file is part of the GNU Binutils. # # 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 3 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. # # Exclude non-ELF targets. if ![is_elf_format] { return } # The following tests require running the executable generated by ld. if ![isnative] { return } # Check if compiler works if { [which $CC] == 0 } { return } global as if { ![ld_assemble $as "--compress-debug-sections $srcdir/$subdir/empty.s" tmpdir/empty.o ] } { fail "linker compressed debug sections" } if { ![ld_assemble $as "--compress-debug-sections=zlib-gabi $srcdir/$subdir/empty.s" tmpdir/emptyzlib.o ] } { fail "linker compressed debug sections" } set build_tests { {"Build libfoo.so with compressed debug sections" "-shared" "-fPIC -g -Wa,--compress-debug-sections" {foo.c} {} "libfoo.so"} {"Build libbar.so with compressed debug sections" "-shared" "-fPIC -g -Wa,--compress-debug-sections" {begin.c end.c} {} "libbar.so"} {"Build libfoozlib.so with compressed debug sections with zlib-gabi" "-shared" "-fPIC -g -Wa,--compress-debug-sections=zlib-gabi" {foo.c} {} "libfoozlib.so"} {"Build libbarzlib.so with compressed debug sections with zlib-gabi" "-shared" "-fPIC -g -Wa,--compress-debug-sections=zlib-gabi" {begin.c end.c} {} "libbarzlib.so"} } set run_tests { {"Run normal with libfoo.so with compressed debug sections" "tmpdir/begin.o tmpdir/libfoo.so tmpdir/end.o" "" {main.c} "normal" "normal.out" "-Wa,--compress-debug-sections"} {"Run normal with libfoo.so with compressed debug sections with zlib-gabi" "tmpdir/begin.o tmpdir/libfoozlib.so tmpdir/end.o" "" {main.c} "normal" "normal.out" "-Wa,--compress-debug-sections=zlib-gabi"} } run_cc_link_tests $build_tests run_ld_link_exec_tests [] $run_tests set test_name "Link with zlib-gabi compressed debug input" send_log "cmp tmpdir/libfoo.so tmpdir/libfoozlib.so\n" if { [catch {exec cmp tmpdir/libfoo.so tmpdir/libfoozlib.so}] } then { send_log "tmpdir/libfoo.so tmpdir/libfoozlib.so differ.\n" fail "$test_name" } else { pass "$test_name" }