URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/gnu-src/binutils-2.18.50/ld/testsuite/ld-pe
- from Rev 132 to Rev 156
- ↔ Reverse comparison
Rev 132 → Rev 156
/secrel1.s
0,0 → 1,79
.text |
|
.ascii ">>>>" |
pre04: .ascii "<<<<" |
.ascii ">>>>>" |
pre0d: .ascii "<<<" |
.ascii ">>>>>>" |
pre16: .ascii "<<" |
.ascii ">>>>>>>" |
pre1f: .ascii "<" |
|
.data |
|
.ascii ">>>>" |
sam04: .ascii "<<<<" |
.ascii ">>>>>" |
sam0d: .ascii "<<<" |
.ascii ">>>>>>" |
sam16: .ascii "<<" |
.ascii ">>>>>>>" |
sam1f: .ascii "<" |
|
.ascii ">>>>" |
.secrel32 pre04 |
.byte 0x11 |
.secrel32 pre0d |
.byte 0x11 |
.secrel32 pre16 |
.byte 0x11 |
.secrel32 pre1f |
.byte 0x11 |
.ascii "<<<<<<<<" |
|
.ascii ">>>>" |
.secrel32 sam04 |
.byte 0x11 |
.secrel32 sam0d |
.byte 0x11 |
.secrel32 sam16 |
.byte 0x11 |
.secrel32 sam1f |
.byte 0x11 |
.ascii "<<<<<<<<" |
|
.ascii ">>>>" |
.secrel32 nex04 |
.byte 0x11 |
.secrel32 nex0d |
.byte 0x11 |
.secrel32 nex16 |
.byte 0x11 |
.secrel32 nex1f |
.byte 0x11 |
.ascii "<<<<<<<<" |
|
.ascii ">>>>" |
.secrel32 ext24 |
.byte 0x11 |
.secrel32 ext2d |
.byte 0x11 |
.secrel32 ext36 |
.byte 0x11 |
.secrel32 ext3f |
.byte 0x11 |
.ascii "<<<<<<<<" |
|
.section .rdata |
|
.ascii ">>>>" |
nex04: .ascii "<<<<" |
.ascii ">>>>>" |
nex0d: .ascii "<<<" |
.ascii ">>>>>>" |
nex16: .ascii "<<" |
.ascii ">>>>>>>" |
nex1f: .ascii "<" |
.ascii ">>>>" |
|
.p2align 4,0 |
/secrel2.s
0,0 → 1,14
.text |
|
.ascii ">>>>" |
.global ext24 |
ext24: .ascii "<<<<" |
.ascii ">>>>>" |
.global ext2d |
ext2d: .ascii "<<<" |
.ascii ">>>>>>" |
.global ext36 |
ext36: .ascii "<<" |
.ascii ">>>>>>>" |
.global ext3f |
ext3f: .ascii "<" |
/pe.exp
0,0 → 1,46
# Expect script for export table in executables tests |
# Copyright 2004, 2006, 2007 |
# 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. |
# |
|
# This test can only be run on PE/COFF platforms that support .secrel32. |
if { ![istarget i*86-*-cygwin*] |
&& ![istarget i*86-*-pe] |
&& ![istarget i*86-*-mingw*] |
&& ![istarget x86_64-*-mingw*] |
&& ![istarget arm-wince-pe] } { |
return |
} |
|
if {[istarget x86_64-*-mingw*] } { |
set pe_tests { |
{".secrel32" "" "" {secrel1.s secrel2.s} |
{{objdump -s secrel_64.d}} "secrel.x"} |
} |
} else { |
set pe_tests { |
{".secrel32" "" "" {secrel1.s secrel2.s} |
{{objdump -s secrel.d}} "secrel.x"} |
} |
} |
|
run_ld_link_tests $pe_tests |
|
run_dump_test "image_size" |
/secrel.d
0,0 → 1,27
|
tmpdir/secrel\.x: +file format pei-.* |
|
Contents of section \.text: |
.*1000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<< |
.*1010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>>< |
.*1020 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<< |
.*1030 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>>< |
.*1040 ........ ........ ........ ........ ................ |
Contents of section \.data: |
.*2000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<< |
.*2010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>>< |
.*2020 3e3e3e3e 04000000 110d0000 00111600 >>>>............ |
.*2030 0000111f 00000011 3c3c3c3c 3c3c3c3c ........<<<<<<<< |
.*2040 3e3e3e3e 04000000 110d0000 00111600 >>>>............ |
.*2050 0000111f 00000011 3c3c3c3c 3c3c3c3c ........<<<<<<<< |
.*2060 3e3e3e3e 04000000 110d0000 00111600 >>>>............ |
.*2070 0000111f 00000011 3c3c3c3c 3c3c3c3c ........<<<<<<<< |
.*2080 3e3e3e3e 24000000 112d0000 00113600 >>>>\$....-....6. |
.*2090 0000113f 00000011 3c3c3c3c 3c3c3c3c ...\?....<<<<<<<< |
Contents of section \.rdata: |
.*3000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<< |
.*3010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>>< |
.*3020 3e3e3e3e 00000000 00000000 00000000 >>>>............ |
Contents of section \.idata: |
.*4000 00000000 00000000 00000000 00000000 ................ |
.*4010 00000000 .... |
/direct.exp
0,0 → 1,146
# Expect script for direct linking from dll tests |
# Copyright 2006, 2007 |
# 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. |
# |
# Written by Pedro Alves <pedro_alves@portugalmail.pt> |
# |
|
# Note: |
# |
# This test checks the "direct linking to a dll" functionality. |
# |
# The test has 7 stages: |
# |
# 1. compile and link a test dll with ".dll" extension. |
# |
# 2. compile and link a test dll with ".sl" (i.e. != ".dll") extension. |
# |
# 3. compile and link a client application linking directly to the ".dll" dll built in 1. |
# This should produce no errors. |
# |
# 4. compile and link a client application linking directly to the ".sl" dll built in 2. |
# This should produce no errors. |
# |
# 5. compile and link a client application linking directly to a symlink into |
# the ".dll" dll built in 1. |
# This should produce no errors. |
# |
# 6. compile and link a client application linking directly to a symlink into |
# the ".sl" dll built in 1. |
# This should produce no errors. |
# |
# 7. run the produced executables |
|
# This test can only be run on PE/COFF platforms. |
if { ![istarget *-*-cygwin*] |
&& ![istarget *-*-mingw*] |
&& ![istarget *-*-pe] } { |
return |
} |
|
# No compiler, no test. |
if { [which $CC] == 0 } { |
untested "Direct linking to dll test" |
return |
} |
|
set tmpdir tmpdir |
|
proc test_direct_link_dll {} { |
global CC |
global CFLAGS |
global srcdir |
global subdir |
global tmpdir |
|
# Compile the dll. |
if ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/direct_dll.c $tmpdir/direct_dll.o ] { |
fail "compiling shared lib" |
} elseif ![ld_simple_link "$CC -shared" $tmpdir/direct_dll.dll "$tmpdir/direct_dll.o" ] { |
fail "linking shared lib (.dll)" |
} elseif ![ld_simple_link "$CC -shared" $tmpdir/direct_dll.sl "$tmpdir/direct_dll.o" ] { |
fail "linking shared lib (.sl)" |
} else { |
# Compile and link the client program. |
if ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/direct_client.c $tmpdir/direct_client.o ] { |
fail "compiling client" |
} else { |
# Check linking directly to direct_dll.dll. |
set msg "linking client (.dll)" |
if [ld_simple_link $CC $tmpdir/direct_client_dll.exe "$tmpdir/direct_client.o $tmpdir/direct_dll.dll" ] { |
pass $msg |
} else { |
fail $msg |
} |
|
# Check linking directly to direct_dll.sl. |
set msg "linking client (.sl)" |
if [ld_simple_link $CC $tmpdir/direct_client_sl.exe "$tmpdir/direct_client.o $tmpdir/direct_dll.sl" ] { |
pass $msg |
} else { |
fail $msg |
} |
|
# Check dll direct linking through symlink to .dll. |
# Create symbolic link. |
catch "exec ln -fs direct_dll.dll $tmpdir/libdirect_dll.dll.a" ln_catch |
set msg "linking client (symlink -> .dll)" |
if [ld_simple_link $CC $tmpdir/direct_client_symlink_dll.exe "$tmpdir/direct_client.o $tmpdir/libdirect_dll.dll.a" ] { |
pass $msg |
} else { |
fail $msg |
} |
|
# Check dll direct linking through symlink to .sl. |
# Create symbolic link. |
catch "exec ln -fs direct_dll.sl $tmpdir/libdirect_sl.dll.a" ln_catch |
set msg "linking client (symlink -> .sl)" |
if [ld_simple_link $CC $tmpdir/direct_client_symlink_sl.exe "$tmpdir/direct_client.o $tmpdir/libdirect_sl.dll.a" ] { |
pass $msg |
} else { |
fail $msg |
} |
} |
} |
} |
|
proc directdll_execute {exe msg} { |
set expected "" |
catch "exec $exe" prog_output |
if [string match $expected $prog_output] then { |
pass $msg |
} else { |
verbose $prog_output |
fail $msg |
} |
} |
|
test_direct_link_dll |
|
# This is as far as we can go with a cross-compiler |
if ![isnative] then { |
verbose "Not running natively, so cannot execute binaries" |
return |
} |
|
directdll_execute "$tmpdir/direct_client_dll.exe" "running direct linked dll (.dll)" |
directdll_execute "$tmpdir/direct_client_sl.exe" "running direct linked dll (.sl)" |
directdll_execute "$tmpdir/direct_client_symlink_sl.exe" "running direct linked dll (symlink -> .sl)" |
directdll_execute "$tmpdir/direct_client_symlink_dll.exe" "running direct linked dll (symlink -> .dll)" |
/direct_dll.c
0,0 → 1,5
__declspec(dllexport) int |
dll_func (void) |
{ |
return 10; |
} |
/secrel_64.d
0,0 → 1,28
|
tmpdir/secrel\.x: +file format pei-.* |
|
Contents of section \.text: |
.*1000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<< |
.*1010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>>< |
.*1020 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<< |
.*1030 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>>< |
.*1040 ffffffff ffffffff 00000000 00000000 ................ |
.*1050 ffffffff ffffffff 00000000 00000000 ................ |
Contents of section \.data: |
.*2000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<< |
.*2010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>>< |
.*2020 3e3e3e3e 04000000 110d0000 00111600 >>>>............ |
.*2030 0000111f 00000011 3c3c3c3c 3c3c3c3c ........<<<<<<<< |
.*2040 3e3e3e3e 04000000 110d0000 00111600 >>>>............ |
.*2050 0000111f 00000011 3c3c3c3c 3c3c3c3c ........<<<<<<<< |
.*2060 3e3e3e3e 04000000 110d0000 00111600 >>>>............ |
.*2070 0000111f 00000011 3c3c3c3c 3c3c3c3c ........<<<<<<<< |
.*2080 3e3e3e3e 24000000 112d0000 00113600 >>>>\$....-....6. |
.*2090 0000113f 00000011 3c3c3c3c 3c3c3c3c ...\?....<<<<<<<< |
Contents of section \.rdata: |
.*3000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<< |
.*3010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>>< |
.*3020 3e3e3e3e 00000000 00000000 00000000 >>>>............ |
Contents of section \.idata: |
.*4000 00000000 00000000 00000000 00000000 ................ |
.*4010 00000000 .... |
/direct_client.c
0,0 → 1,8
__declspec(dllimport) int dll_func (void); |
|
int |
main() |
{ |
dll_func (); |
return 0; |
} |
/image_size.s
0,0 → 1,8
.text |
.global _start |
_start: |
.byte 1 |
.global data |
.data |
data: |
.byte 2 |
/image_size.d
0,0 → 1,9
#name: PE-COFF SizeOfImage |
#ld: -T image_size.t |
#objdump: -p |
#target: i*86-*-mingw32 |
|
.*: file format .* |
#... |
SizeOfImage 00004000 |
#... |
/image_size.t
0,0 → 1,15
SECTIONS |
{ |
. = SIZEOF_HEADERS; |
. = ALIGN(__section_alignment__); |
.text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) : |
{ |
*(.text) |
} |
. = . + 0x1000; |
.data BLOCK(__section_alignment__) : |
{ |
*(.data) |
} |
/DISCARD/ : { *(.*) } |
} |