From 19765f5229668571b2a86c42cd2a1faa8e374208 Mon Sep 17 00:00:00 2001
From: Iain Sandoe <iain@codesourcery.com>
Date: Thu, 23 Feb 2012 16:29:56 +0000
Subject: deal with endian-ness in mach-o non-scattered relocs.

BFD:

	* mach-o.c (bfd_mach_o_swap_in_non_scattered_reloc): New.
	(bfd_mach_o_canonicalize_one_reloc):  Swap non-scattered reloc
	bit-fields when target and host differ in endian-ness.  When
	PAIRs are non-scattered	find the 'symbol' from the preceding
	reloc.  Add FIXME re. reloc symbols on section boundaries.
	(bfd_mach_o_swap_out_non_scattered_reloc): New.
	(bfd_mach_o_write_relocs): Use bfd_mach_o_encode_non_scattered_reloc.

include/mach-o:

	* external.h: Add comments about relocations fields.  Add macros
	for non-scattered relocations.  Move scattered relocation macros to here.
	* reloc.h: Remove macros related to external representation of reloc fields.
---
 include/mach-o/reloc.h | 22 +---------------------
 1 file changed, 1 insertion(+), 21 deletions(-)

(limited to 'include/mach-o/reloc.h')

diff --git a/include/mach-o/reloc.h b/include/mach-o/reloc.h
index 93ebb8b..bab31ef 100644
--- a/include/mach-o/reloc.h
+++ b/include/mach-o/reloc.h
@@ -1,5 +1,5 @@
 /* Mach-O support for BFD.
-   Copyright 2011
+   Copyright 2011, 2012
    Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -22,26 +22,6 @@
 #ifndef _MACH_O_RELOC_H
 #define _MACH_O_RELOC_H
 
-/* Fields for a normal (non-scattered) entry.  */
-#define BFD_MACH_O_R_PCREL		0x01000000
-#define BFD_MACH_O_GET_R_LENGTH(s)	(((s) >> 25) & 0x3)
-#define BFD_MACH_O_R_EXTERN		0x08000000
-#define BFD_MACH_O_GET_R_TYPE(s)	(((s) >> 28) & 0x0f)
-#define BFD_MACH_O_GET_R_SYMBOLNUM(s)	((s) & 0x00ffffff)
-#define BFD_MACH_O_SET_R_LENGTH(l)	(((l) & 0x3) << 25)
-#define BFD_MACH_O_SET_R_TYPE(t)	(((t) & 0xf) << 28)
-#define BFD_MACH_O_SET_R_SYMBOLNUM(s)	((s) & 0x00ffffff)
-
-/* Fields for a scattered entry.  */
-#define BFD_MACH_O_SR_SCATTERED		0x80000000
-#define BFD_MACH_O_SR_PCREL		0x40000000
-#define BFD_MACH_O_GET_SR_LENGTH(s)	(((s) >> 28) & 0x3)
-#define BFD_MACH_O_GET_SR_TYPE(s)	(((s) >> 24) & 0x0f)
-#define BFD_MACH_O_GET_SR_ADDRESS(s)	((s) & 0x00ffffff)
-#define BFD_MACH_O_SET_SR_LENGTH(l)	(((l) & 0x3) << 28)
-#define BFD_MACH_O_SET_SR_TYPE(t)	(((t) & 0xf) << 24)
-#define BFD_MACH_O_SET_SR_ADDRESS(s)	((s) & 0x00ffffff)
-
 /* Generic relocation types (used by i386).  */
 #define BFD_MACH_O_GENERIC_RELOC_VANILLA 	0
 #define BFD_MACH_O_GENERIC_RELOC_PAIR	 	1
-- 
cgit v1.1