[PATCH, CFI] Fix EH for coldfire-uclinux

Maxim Kuvyrkov maxim@codesourcery.com
Tue Nov 3 21:36:00 GMT 2009


Hi,

The following patch fixes a problem in EH on coldfire-uclinux.  Due to 
peculiarities of ColdFire uClinux it is not possible to use PC-relative 
encoding for CFI.  This problem was uncovered by recent switch of GCC to 
emit .cfi* directives by default.

To generate bFLT binaries for coldfire-uclinux elf2flt utility is used. 
  Elf2flt does not honor PT_LOAD's from the executable.  So, despite 
appearances of the ELF file, .text and .eh_frame sections will not end 
up in the same segment in bFLT file.  Therefore PC-relative encoding 
cannot be used for CFI on coldfire-uclinux.  Hence this patch defines 
CFI_DIFF_EXPR_OK to 0 for coldfire-uclinux.

However, there is one exception to the above -- encoding of LSDA.  LSDA 
encoding is explicitly specified by the compiler and can be relied on. 
So the patch also adds CFI_DIFF_LSDA_OK macro to convince GAS to accept 
PC-relative encoding in this one case.

Tested on coldfire-uclinux and various other architectures where this 
patch is a no-op.

OK to check in?

Thanks,

--
Maxim Kuvyrkov
CodeSourcery
maxim@codesourcery.com
(650) 331-3385 x724

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fsf-binutils-cf-uclinux-cfi-fixes.ChangeLog
URL: <https://sourceware.org/pipermail/binutils/attachments/20091103/783a61d7/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fsf-binutils-cf-uclinux-cfi-fixes.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20091103/783a61d7/attachment-0001.ksh>


More information about the Binutils mailing list