old-cross-binutils/ld/testsuite/ld-pe/pe-compile.exp
Dave Korn c1711530e6 ==> bfd/ChangeLog <==
2009-05-19  Dave Korn  <dave.korn.cygwin@gmail.com>

	* cofflink.c (process_embedded_commands):  Ignore "-aligncomm".

==> gas/ChangeLog <==
2009-05-19  Dave Korn  <dave.korn.cygwin@gmail.com>

	* NEWS:  Mention new feature.
	* config/obj-coff.c (obj_coff_common_parse):  New function.
	(obj_coff_comm):  Likewise.
	(coff_pseudo_table):  Override default ".comm" definition on PE.
	* doc/as.texinfo:  Document new feature.

==> gas/testsuite/ChangeLog <==
2009-05-19  Dave Korn  <dave.korn.cygwin@gmail.com>

	* gas/pe/:  New directory for PE format-specific tests.
	* gas/pe/aligncomm-a.d:  New test pattern file.
	* gas/pe/aligncomm-a.s:  New test source file.
	* gas/pe/aligncomm-b.d:  New test pattern file.
	* gas/pe/aligncomm-b.s:  New test source file.
	* gas/pe/aligncomm-c.d:  New test pattern file.
	* gas/pe/aligncomm-c.s:  New test source file.
	* gas/pe/aligncomm-d.d:  New test pattern file.
	* gas/pe/aligncomm-d.s:  New test source file.
	* gas/pe/pe.exp:  New test control script.
	* lib/gas-defs.exp (is_pecoff_format):  New function.

==> ld/ChangeLog <==
2009-05-19  Dave Korn  <dave.korn.cygwin@gmail.com>

	* NEWS:  Mention new feature.
	* deffile.h (def_file_aligncomm):  Add new struct definition.
	(def_file):  Add new def_file_aligncomm member.
	* deffilep.y (%token):  Add new ALIGNCOMM token.
	(command):  Add production rule for ALIGNCOMM.
	(def_file_free):  Free any chained def_file_aligncomm structs.
	(diropts[]):  Add entry for '-aligncomm' .drectve command.
	(def_aligncomm):  New grammar function.
	* ld.texinfo:  Document new feature.
	* pe-dll.c (process_def_file):  Rename from this ...
	(process_def_file_and_drectve):  ... to this, updating all callers,
	and process any aligncomms chained to the def file after scanning
	all .drectve sections.
	(generate_edata):  Updated to match.
	(pe_dll_build_sections):  Likewise.

==> ld/testsuite/ChangeLog <==
2009-05-19  Dave Korn  <dave.korn.cygwin@gmail.com>

	* ld-pe/aligncomm-1.c:  New test source file.
	* ld-pe/aligncomm-2.c:  Likewise.
	* ld-pe/aligncomm-3.c:  Likewise.
	* ld-pe/aligncomm-4.c:  Likewise.
	* ld-pe/aligncomm.d:  New test pattern file.

	* ld-pe/direct.exp:  Deleted, and content moved into ...
	* ld-pe/pe-run.exp:  ... New common file for all PE run tests.

	* ld-pe/vers-script.exp:  Deleted, and content merged into ...
	* ld-pe/pe-compile.exp:  ... New common file for PE tests needing
	a compiler, adding aligned common tests.

	* ld-pe/pe.exp:  Update header comment.
2009-05-19 16:08:08 +00:00

91 lines
2.7 KiB
Text
Executable file

# Expect script for complex PE tests that require a C compiler
# in addition to the just-built binutils.
# Copyright 2009
# 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.
#
# These tests can only be run on PE/COFF platforms.
if {![is_pecoff_format]} {
return
}
# No compiler, no test.
if { [which $CC] == 0 } {
untested "PE version scripts"
untested "aligned common tests"
# Add more "untested" directives here when adding more tests below.
return
}
proc build_vers_script_dll_o {} {
global CC
global CFLAGS
global srcdir
global subdir
# Compile the object file.
if ![ld_compile "$CC $CFLAGS -shared" $srcdir/$subdir/vers-script-dll.c tmpdir/vers-script-dll.o] {
fail "compiling shared lib object"
}
}
proc run_ver_script_test { testname } {
global CC
global srcdir
global subdir
global verbose
if ![ld_simple_link "$CC -shared \
-Wl,--version-script,$srcdir/$subdir/$testname.ver \
-Wl,--output-def,tmpdir/$testname.def" tmpdir/$testname.dll \
"tmpdir/vers-script-dll.o"] {
fail "linking DLL"
}
if { $verbose > 2 } then { verbose "output is [file_contents tmpdir/$testname.def]" 3 }
if { [regexp_diff tmpdir/$testname.def $srcdir/$subdir/$testname.d] } then {
fail $testname
if { $verbose == 2 } then { verbose "output is [file_contents tmpdir/$testname.def]" 2 }
return
}
pass "$testname"
}
build_vers_script_dll_o
run_ver_script_test "vers-script-1"
run_ver_script_test "vers-script-2"
run_ver_script_test "vers-script-3"
run_ver_script_test "vers-script-4"
set align_tests {
{"aligned common 1" "" "" {aligncomm-1.c}
{{nm -C aligncomm.d}} "aligncomm-1.x"}
{"aligned common 2" "" "" {aligncomm-2.c}
{{nm -C aligncomm.d}} "aligncomm-2.x"}
{"aligned common 3" "" "" {aligncomm-3.c}
{{nm -C aligncomm.d}} "aligncomm-3.x"}
{"aligned common 4" "" "" {aligncomm-4.c}
{{nm -C aligncomm.d}} "aligncomm-4.x"}
}
run_ld_link_tests $align_tests