[PATCH] [MSP430] Fix relocation type for _bsssize being R_MSP430X_ABS16 when large memory model is used

Corinna Vinschen vinschen@redhat.com
Wed Apr 19 13:06:00 GMT 2017


On Apr 19 13:53, Jozef Lawrynowicz wrote:
> On 19 April 2017 at 13:29, Corinna Vinschen <vinschen@redhat.com> wrote:
> > On Apr 19 12:58, Jozef Lawrynowicz wrote:
> >> For the msp430 target, trying to link a program with .bss larger than
> >> 64K causes a few different errors to be reported.
> >>
> >> > /usr/local/bin/../lib/gcc/msp430-elf/6.3.1/../../../../msp430-elf/bin/ld: stone-msp430 section `.bss' will not fit in region `RAM'
> >> > /usr/local/bin/../lib/gcc/msp430-elf/6.3.1/../../../../msp430-elf/bin/ld: region `RAM' overflowed by 65906 bytes
> >> > /usr/local/bin/../lib/gcc/msp430-elf/6.3.1/../../../../msp430-elf/lib/large/libcrt.a(crt_bss.o): In function `.Loc.75.1':
> >> > [...]/msp430-elf/large/libgloss/msp430/../../../../../libgloss/msp430/crt0.S:73:(.crt_0100init_bss+0x8): relocation truncated to fit: R_MSP430X_ABS16 against symbol `__bsssize' defined in *ABS* section in stone-msp430
> >>
> >> Even though BSS shouldn't be larger than 64K, the relocation trunated
> >> to fit error still looks like a bug.
> >> The patch below changes one of the instructions in
> >> libgloss/msp430/crt0.S from mov.w to mov_, so that the
> >> R_MSP430X_ABS20_A relocation type is used instead of the
> >> R_MSP430X_ABS16 for the _bsssize variable when the large memory model
> >> is used. I also fixed a typo in a comment.
> >> With the patch applied, linking the program with large bss now reports
> >> only the following errors:
> >>
> >> > /usr/local/bin/../lib/gcc/msp430-elf/6.3.1/../../../../msp430-elf/bin/ld: stone-msp430 section `.bss' will not fit in region `RAM'
> >> > /usr/local/bin/../lib/gcc/msp430-elf/6.3.1/../../../../msp430-elf/bin/ld: region `RAM' overflowed by 65906 bytes
> >>
> >> I don't have write access, so if this patch is satisfactory, I would
> >> appreciate if someone could commit it for me.
> >
> > Your patch doesn't apply cleanly.  Can you please recrate it and make
> > sure the whitespaces are correct?  Ideally just create an attachment with
> > the output of `git format-patch'.
> 
> Looks like my email client changed the tabs to spaces.
> 
> Patch is attached.

Pushed.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20170419/310e066f/attachment.sig>


More information about the Newlib mailing list