Subject: VAX: ELF regression
To: None <binutils@sources.redhat.com>
From: Jan-Benedict Glaw <jbglaw@microdata-pos.de>
List: port-vax
Date: 03/30/2005 15:16:58
Hi!

(This is cross-posted to two lists. Please reply to the
 binutils list *only*. Thanks.)

On Sep 27, 2002, there was a gas test added for VAX, which fails on
NetBSD these days. I've also built a binutils snapshot of Sep 30,
but that also fails. This test isn't strictly vax-netbsdelf specific,
but should also run for vax-linux (patch will follow the other day).
Could somebody review it?

gas/testsuite/gas/vax/elf-rel.s:
      1         .data
      2 
      3         .byte   data_vax_8
      4         .word   data_vax_16
      5         .long   data_vax_32
      6 
      7         .byte   data_vax_8+8
      8         .word   data_vax_16+16
      9         .long   data_vax_32+32
     10 
     11         .text
     12         .globl  x
     13 x:
     14         .word   0
     15 
     16         calls   $0, b`text_vax_pc8
     17         calls   $0, w`text_vax_pc16
     18         calls   $0, l`text_vax_pc32
     19         calls   $0, text_vax_plt32
     20 
     21         tstl    b`text_vax_pc8
     22         tstl    w`text_vax_pc16
     23         tstl    l`text_vax_pc32
     24         tstl    text_vax_got32
     25 
     26         tstl    b`text_vax_pc8+8
     27         tstl    w`text_vax_pc16+16
     28         tstl    l`text_vax_pc32+32
     29         tstl    text_vax_got32+32
     30         ret

Result (expected lines are inserted and "*" marked):
      1 #objdump: -sr
      2 #name: VAX ELF relocations
      3 
      4 # Test VAX ELF relocations
      5 
      6 .*:     file format elf32-vax
      7 
      8 RELOCATION RECORDS FOR \[\.text\]:
      9 OFFSET [ ]+ TYPE              VALUE 
     10 00000015 R_VAX_PLT32       text_vax_plt32
******* 00000015 R_VAX_PC32        text_vax_plt32
     11 00000028 R_VAX_GOT32       text_vax_got32
******* 00000028 R_VAX_PC32        text_vax_got32
     12 0000003b R_VAX_GOT32       text_vax_got32\+0x00000020
******* 0000003b R_VAX_PC32        text_vax_got32+0x00000020
     13 00000005 R_VAX_PC8         text_vax_pc8
     14 00000009 R_VAX_PC16        text_vax_pc16
     15 0000000e R_VAX_PC32        text_vax_pc32
     16 0000001b R_VAX_PC8         text_vax_pc8
     17 0000001e R_VAX_PC16        text_vax_pc16
     18 00000022 R_VAX_PC32        text_vax_pc32
     19 0000002e R_VAX_PC8         text_vax_pc8\+0x00000008
     20 00000031 R_VAX_PC16        text_vax_pc16\+0x00000010
     21 00000035 R_VAX_PC32        text_vax_pc32\+0x00000020
     22 
     23 
     24 RELOCATION RECORDS FOR \[\.data\]:
     25 OFFSET [ ]+ TYPE              VALUE 
     26 00000000 R_VAX_8           data_vax_8
     27 00000001 R_VAX_16          data_vax_16
     28 00000003 R_VAX_32          data_vax_32
     29 00000007 R_VAX_8           data_vax_8\+0x00000008
     30 00000008 R_VAX_16          data_vax_16\+0x00000010
     31 0000000a R_VAX_32          data_vax_32\+0x00000020
     32 
     33 
     34 Contents of section \.text:
     35  0000 0000fb00 affafb00 cff5fffb 00efeeff  .*
     36  0010 fffffb00 ef000000 00d5afe4 d5cfe0ff  .*
*******  0010 fffffb00 efe7ffff ffd5afe4 d5cfe0ff  ................"
     37  0020 d5efdaff ffffd5ef 00000000 d5afd9d5  .*
*******  0020 d5efdaff ffffd5ef d4ffffff d5afd9d5  ................"
     38  0030 cfddffd5 efe7ffff ffd5ef00 00000004  .*
*******  0030 cfddffd5 efe7ffff ffd5efe1 ffffff04  ................"
     39 Contents of section \.data:
     40  0000 00000000 00000000 00000000 0000      .*
     41 #pass

The testcase was added at 
http://sources.redhat.com/ml/binutils-cvs/2002-09/msg00184.html .
Building this results in no testcase tailures. Then came
http://sources.redhat.com/ml/binutils-cvs/2002-09/msg00190.html, which
modifies PLT32/PC32 handling and the testcase starts failing. But
wasn't vax-netbsdelf the only target at the time that was ELF? And
probably even the most famous [tm] VAX target at that time. I wonder
why this didn't came up earlier...

MfG, JBG

-- 
AWEK microdata GmbH -- Am Wellbach 4 -- 33609 Bielefeld