From bd1738b89c5451f311d1fae8e2fc9e67940492ca Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Thu, 2 Feb 1995 07:39:23 +0000 Subject: [PATCH] * gas/hppa/reloc/picreloc.c: New test. * gas/hppa/reloc/reloc.exp (do_pic_relocation_test): Run it. --- gas/testsuite/gas/hppa/reloc/.Sanitize | 1 + gas/testsuite/gas/hppa/reloc/picreloc.s | 13 +++++++++ gas/testsuite/gas/hppa/reloc/reloc.exp | 37 +++++++++++++++++++++++-- 3 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 gas/testsuite/gas/hppa/reloc/picreloc.s diff --git a/gas/testsuite/gas/hppa/reloc/.Sanitize b/gas/testsuite/gas/hppa/reloc/.Sanitize index 266f475306..577c109a5a 100644 --- a/gas/testsuite/gas/hppa/reloc/.Sanitize +++ b/gas/testsuite/gas/hppa/reloc/.Sanitize @@ -33,6 +33,7 @@ exitbug.s fixupbug.s funcrelocbug.s labelopbug.s +picreloc.s plabelbug.s reduce.s reduce2.s diff --git a/gas/testsuite/gas/hppa/reloc/picreloc.s b/gas/testsuite/gas/hppa/reloc/picreloc.s new file mode 100644 index 0000000000..639a44c3ab --- /dev/null +++ b/gas/testsuite/gas/hppa/reloc/picreloc.s @@ -0,0 +1,13 @@ + + .SPACE $TEXT$,SORT=8 + .SUBSPA $CODE$,QUAD=0,ALIGN=4,ACCESS=0x2c,CODE_ONLY,SORT=24 + .SPACE $PRIVATE$,SORT=16 + .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=16 +bogo + .ALIGN 8 + .WORD bogo+4 ; = 0x4 + .STRING "\x00\x00\x00{\x00\x00\x01\xC8\x00\x00\x03\x15" + .SPACE $PRIVATE$ + .SUBSPA $DATA$ + .EXPORT bogo + .END diff --git a/gas/testsuite/gas/hppa/reloc/reloc.exp b/gas/testsuite/gas/hppa/reloc/reloc.exp index 0026b20cd9..1d00e4192d 100755 --- a/gas/testsuite/gas/hppa/reloc/reloc.exp +++ b/gas/testsuite/gas/hppa/reloc/reloc.exp @@ -215,9 +215,9 @@ proc do_plabel_relocation_test {} { # Check that we make PLABEL relocation entries when they're needed. while 1 { expect { - -re "^\[0c\]0000000\[^\n\]*PLABEL\[^\n\]*\n" + -re "^00000000\[^\n\]*PLABEL\[^\n\]*\n" { set x [expr $x+1] } - -re "^\[0c\]0000004\[^\n\]*PLABEL\[^\n\]*\n" + -re "^00000004\[^\n\]*PLABEL\[^\n\]*\n" { set x [expr $x+1] } -re "\[^\n\]*\n" { } timeout { perror "timeout\n"; break } @@ -541,7 +541,7 @@ proc do_r_no_reloc {} { # Make sure GAS generated a correct relocation for the reference. while 1 { expect { - -re "^\[0c\]00c0004\[^\n\]*PLABEL\[^\n]*g\[^\n\]*\n" + -re "^000c0004\[^\n\]*PLABEL\[^\n]*g\[^\n\]*\n" { set x [expr $x+1] } -re "\[^\n\]*\n" { } timeout { perror "timeout\n"; break } @@ -559,6 +559,33 @@ proc do_r_no_reloc {} { } } +proc do_pic_relocation_test {} { + set testname "picreloc.s: Test for proper PIC relocation (part 2)" + set x 0 + + # ELF (osf) doesn't really handle extra sections too well... + if [istarget hppa*-*-*elf*] then { + return; + } + + gas_start "picreloc.s" "-al" + + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 00000004\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + eof { break } + } + } + + # This was intended to do any cleanup necessary. It kinda looks like it + # isn't needed, but just in case, please keep it in for now. + gas_finish + + # Did we find what we were looking for? If not, flunk it. + if [expr $x==1] then { pass $testname } else { fail $testname } +} if [istarget hppa*-*-*] then { # Make sure we put the right relocation entry on a BLE instruction. do_ble_relocation_test @@ -607,4 +634,8 @@ if [istarget hppa*-*-*] then { # Test for an off-by-one bug in the handling of 4-byte R_NO_RELOCATION # fixups. do_r_no_reloc + + # Test a relocation problem which shows up when building shared + # libraries in SOM + do_pic_relocation_test } -- 2.34.1