[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