NetBSD Problem Report #52427

From martin@duskware.de  Tue Jul 25 07:48:07 2017
Return-Path: <martin@duskware.de>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (verified OK))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 72EA07A16F
	for <gnats-bugs@gnats.NetBSD.org>; Tue, 25 Jul 2017 07:48:07 +0000 (UTC)
From: martin@NetBSD.org
Reply-To: martin@NetBSD.org
To: gnats-bugs@NetBSD.org
Subject: VAX text relocations
X-Send-Pr-Version: 3.95

>Number:         52427
>Category:       toolchain
>Synopsis:       VAX text relocations
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    toolchain-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jul 25 07:50:00 +0000 2017
>Originator:     Martin Husemann
>Release:        NetBSD 8.99.1
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD dead-to-the-world.duskware.de 8.99.1 NetBSD 8.99.1 (DEAD) #7: Sun Jul 23 12:04:50 CEST 2017 martin@seven-days-to-the-wolves.aprisoft.de:/work/src/sys/arch/vax/compile/DEAD vax
Architecture: vax
Machine: vax
>Description:

After my recent fixes to compiler_rt, perl is buildable on VAX again.
But:

 > perl -e 'print "hello\n";'
/usr/pkg/lib/perl5/5.26.0/vax-netbsd-thread-multi/CORE/libperl.so: text relocations
hello


Looking at the relocations show they are all of the form:

	R_VAX_RELATIVE   *ABS*+0x6967c

and seem to be part of big switch/case things. The first looks like this:

   5ca00:       31 de db        brw 5a5e1 <Perl_yylex+0x2e6f>
   5ca03:       cf 50 00 0a     casel r0,$0x0,$0xa
   5ca07:       27 11 38 45     divp $0x11,$0x38,$0x14[r5],*0xffffd214(r2),*0x46
(r0),*0x46(r0)
   5ca0b:       14 d2 14 d2 
   5ca0f:       b0 46 b0 46 
   5ca13:       95 12           tstb $0x12
   5ca15:       95 12           tstb $0x12
   5ca17:       19 00           blss 5ca19 <Perl_yylex+0x52a7>
   5ca19:       14 d2           bgtr 5c9ed <Perl_yylex+0x527b>
   5ca1b:       38 45 31 06     editpc $0x31[r5],$0x6,$0x0,$0x17
   5ca1f:       00 17 
   5ca21:       9f cf 76 06     pushab 5d09b <Perl_yylex+0x5929>
                        5ca22: R_VAX_RELATIVE   *ABS*+0x676cf
   5ca25:       00              halt
   5ca26:       dd 5a           pushl r10
   5ca28:       fb 01 ff bd     calls $0x1,*1a60ec <_GLOBAL_OFFSET_TABLE_+0xea0>
   5ca2c:       96 14 00 


All others look like a jump table:

   5cdd1:       17 9f 30 6c     jmp *0x66c30
   5cdd5:       06 00 
                        5cdd3: R_VAX_RELATIVE   *ABS*+0x66c30
   5cdd7:       17 9f 7c 96     jmp *0x6967c
   5cddb:       06 00 
                        5cdd9: R_VAX_RELATIVE   *ABS*+0x6967c
   5cddd:       17 9f a8 71     jmp *0x671a8
   5cde1:       06 00 


Is this a binutils or gcc issue? Is it avoidable? If not, should we make
ld.elf_so quiet about it on VAX?

>How-To-Repeat:
Build perl on vax and use it.

>Fix:
n/a

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.