This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH]: Fixes for MN10300 linker relaxation


Hi Guys,

  I am applying the patch below to fix some problems with mn10300
  linker relaxation.  The first problem was that alignment directives
  in the assembler source were not being passed on to the linker so
  that relaxation would not break alignments.  The patch creates a new
  reloc to handle this situation.

  The second problem was an off by one error in the delete bytes
  routine which would mistakenly adjust a symbol at the end of the
  region being deleted.

  The third problem was that the test to generate sym_diff relocs was
  not catching all the situations where they should be generated.

  The patch also adds some more mn10300 linker tests for relaxation
  and disables one gas test since it no longer applies.

Cheers
  Nick

include/elf/ChangeLog
2007-10-30  Nick Clifton  <nickc@redhat.com>

	* mn10300.h (R_MN10300_ALIGN): Define.

bfd/ChangeLog
2007-10-30  Nick Clifton  <nickc@redhat.com>

	* reloc.c (BFD_RELOC_MN10300_ALIGN): Add.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* elf-m10300.h: Handle R_MN10300_ALIGN relocs.
	(mn10300_elf_relax_delete_bytes): Honour R_MN10300_ALIGN relocs.
	Re-fix off by one error in comparisons.
  
gas/ChangeLog
2007-10-30  Nick Clifton  <nickc@redhat.com>

	* config/tc-mn10300.c (tc_gen_reloc): Fix test that decides when
	sym_diff relocs should be generated.
	(md_apply_fix): Skip R_MN10300_ALIGN relocs.
	(mn10300_fix_adjustable): Do not adjust R_MN10300_ALIGN relocs.
	(mn10300_handle_align): New function.  Generate R_MN10300_ALIGN
	relocs to record alignment requests.
	* config/tc-mn10300.h (TC_FORCE_RELOCATION_SUB_SAME): Also force
	R_MN10300_ALIGN relocs.
	(HANDLE_ALIGN): Define.  Call mn10300_handle_align.


gas/testsuite/ChangeLog
2007-10-30  Nick Clifton  <nickc@redhat.com>

	* gas/all/gas.exp: Do not run diff1.s test for mn10300.

ld/testsuite/ChangeLog
2007-10-30  Nick Clifton  <nickc@redhat.com>

	* ld-mn10300/mn10300.exp: Run new tests.  Skip i126256 test if
	a compiler is not available.
	* ld-mn10300/i112045-3.s: New test.
	* ld-mn10300/i112045-3.d: Expected disassembly.
	* ld-mn10300/i135409.s: Rename to i135409-1.s.
	* ld-mn10300/i135409.d: Rename to i135409-1.d
	* ld-mn10300/i135409-2.s: New test.
	* ld-mn10300/i135409-2.d: Expected symbol table.
        * ld-mn10300/i36434.d: Adjust expected disassembly.

Attachment: mn10300.align-reloc.patch.bz2
Description: BZip2 compressed data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]