diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2008-07-22 05:47:31 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2008-07-22 05:47:31 +0000 |
commit | e1095fc5217e4a41bb485608f309f16da0293d05 (patch) | |
tree | bc31b86877ec12c7a1094e45cd2bfada9032eaae /c | |
parent | 2008-07-21 Till Straumann <strauman@slac.stanford.edu> (diff) | |
download | rtems-e1095fc5217e4a41bb485608f309f16da0293d05.tar.bz2 |
2008-07-21 Till Straumann <strauman@slac.stanford.edu>
* dlentry/dlentry.S: load R13 with _SDA_BASE_ so that
SVR4-ABI access of short data area works. No support
for R2/sdata2/eabi, so far but that would be easy
(atm R2 is loaded with got address IIRC).
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/virtex/ChangeLog | 7 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/virtex/dlentry/dlentry.S | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/virtex/ChangeLog b/c/src/lib/libbsp/powerpc/virtex/ChangeLog index 453b40a110..1206fed7b9 100644 --- a/c/src/lib/libbsp/powerpc/virtex/ChangeLog +++ b/c/src/lib/libbsp/powerpc/virtex/ChangeLog @@ -1,5 +1,12 @@ 2008-07-21 Till Straumann <strauman@slac.stanford.edu> + * dlentry/dlentry.S: load R13 with _SDA_BASE_ so that + SVR4-ABI access of short data area works. No support + for R2/sdata2/eabi, so far but that would be easy + (atm R2 is loaded with got address IIRC). + +2008-07-21 Till Straumann <strauman@slac.stanford.edu> + * startup/linkcmds: fixed sdata/sbss areas -- these must be contiguous for SVR4 complicant access via R13. Use kludged layout so that sbss, bss, sbss2 are all diff --git a/c/src/lib/libbsp/powerpc/virtex/dlentry/dlentry.S b/c/src/lib/libbsp/powerpc/virtex/dlentry/dlentry.S index afca899ef4..abf015566c 100644 --- a/c/src/lib/libbsp/powerpc/virtex/dlentry/dlentry.S +++ b/c/src/lib/libbsp/powerpc/virtex/dlentry/dlentry.S @@ -130,6 +130,9 @@ text_length: la r5,environ@l(r5) /* environp */ li r4, 0 /* argv */ li r3, 0 /* argc */ + .extern SYM(_SDA_BASE_) + lis r13,SYM(_SDA_BASE_)@h + ori r13,r13,SYM(_SDA_BASE_)@l .extern SYM (boot_card) b SYM (boot_card) /* call the first C routine */ |