[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: pdp-11 TARGET_PAGE_SIZE mismatch in 2.25
From: |
David Bridgham |
Subject: |
Re: pdp-11 TARGET_PAGE_SIZE mismatch in 2.25 |
Date: |
Fri, 30 Oct 2015 00:08:03 -0400 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
In my previous message I jumped to the fix, rather than giving you just
the problem. Sorry about that.
Here's a little program:
crt0.s:
.text
.even
.globl _start
_start:
mov $0140000, sp
mov sp, r5
mov argv, -(sp) /* argv */
mov $1, -(sp) /* argc */
jsr pc, ___main
add $4, sp
halt
rts pc
.even
.globl ___main
___main:
rts pc
.data
arg1: .asciz "stand-alone"
.even
argv: .word arg1
Now run:
address@hidden> pdp11-aout-as -o crt0.o crt0.s
address@hidden> pdp11-aout-ld -nostdlib -o crt0 crt0.o
address@hidden> pdp11-aout-objdump -x crt0
crt0: file format a.out-pdp11
crt0
architecture: pdp11, flags 0x000000be:
EXEC_P, HAS_LINENO, HAS_DEBUG, HAS_SYMS, HAS_LOCALS, WP_TEXT
start address 0x00000000
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000001c 00000000 00000000 00000010 2**1
CONTENTS, ALLOC, LOAD, CODE
1 .data 0000000e 00000400 00000400 0000002c 2**1
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000002 0000040e 0000040e 00000000 2**1
ALLOC
SYMBOL TABLE:
00000000 l .text 0000 00 02 crt0.o
00000000 g .text 0000 00 22 _start
0000010c l .data 0000 00 03 argv
0000001a g .text 0000 00 22 ___main
00000100 l .data 0000 00 03 arg1
0000001c g .text 0000 00 22 __etext
0000001c g .text 0000 00 22 _etext
00000110 g .bss 0000 00 24 __end
0000010e g .data 0000 00 23 __edata
0000010e g .bss 0000 00 24 __bss_start
0000010e g .data 0000 00 23 _edata
00000110 g .bss 0000 00 24 _end
Notice in the symbol table that arg1, the first item in the .data
segment, has the value 100 while the VMA and LMA of the .data segment
are 400.
I tried setting TARGET_PAGE_SIZE in bfd/pdp11.c to 256, the same value
it has in ld/emulparams/pdp11.sh, and that disagreement went away.
-Dave