initial import
[patches.git] / binutils-gas-obj-fdpicelf-2.patch
CommitLineData
5e993f12 1Index: Makefile.am
2===================================================================
3RCS file: /cvs/src/src/gas/Makefile.am,v
4retrieving revision 1.156
5diff -u -p -r1.156 Makefile.am
6--- Makefile.am 13 Mar 2008 02:05:20 -0000 1.156
7+++ Makefile.am 22 Apr 2008 20:47:23 -0000
8@@ -364,6 +364,7 @@ OBJ_FORMAT_CFILES = \
9 config/obj-ecoff.c \
10 config/obj-elf.c \
11 config/obj-evax.c \
12+ config/obj-fdpicelf.c \
13 config/obj-som.c
14
15 OBJ_FORMAT_HFILES = \
16@@ -372,6 +373,7 @@ OBJ_FORMAT_HFILES = \
17 config/obj-ecoff.h \
18 config/obj-elf.h \
19 config/obj-evax.h \
20+ config/obj-fdpicelf.h \
21 config/obj-som.h
22
23 # Emulation header files in config
24@@ -586,6 +588,8 @@ obj-elf.o : $(srcdir)/config/obj-elf.c $
25 $(COMPILE) -c $(srcdir)/config/obj-elf.c
26 obj-evax.o : $(srcdir)/config/obj-evax.c
27 $(COMPILE) -c $(srcdir)/config/obj-evax.c
28+obj-fdpicelf.o : $(srcdir)/config/obj-fdpicelf.c
29+ $(COMPILE) -c $(srcdir)/config/obj-fdpicelf.c
30 obj-multi.o : $(srcdir)/config/obj-multi.c
31 $(COMPILE) -c $(srcdir)/config/obj-multi.c
32 obj-som.o : $(srcdir)/config/obj-som.c
33Index: Makefile.in
34===================================================================
35RCS file: /cvs/src/src/gas/Makefile.in,v
36retrieving revision 1.173
37diff -u -p -r1.173 Makefile.in
38--- Makefile.in 17 Mar 2008 22:17:29 -0000 1.173
39+++ Makefile.in 22 Apr 2008 20:47:27 -0000
40@@ -608,6 +608,7 @@ OBJ_FORMAT_CFILES = \
41 config/obj-ecoff.c \
42 config/obj-elf.c \
43 config/obj-evax.c \
44+ config/obj-fdpicelf.c \
45 config/obj-som.c
46
47 OBJ_FORMAT_HFILES = \
48@@ -616,6 +617,7 @@ OBJ_FORMAT_HFILES = \
49 config/obj-ecoff.h \
50 config/obj-elf.h \
51 config/obj-evax.h \
52+ config/obj-fdpicelf.h \
53 config/obj-som.h
54
55
56@@ -2586,6 +2588,8 @@ obj-elf.o : $(srcdir)/config/obj-elf.c $
57 $(COMPILE) -c $(srcdir)/config/obj-elf.c
58 obj-evax.o : $(srcdir)/config/obj-evax.c
59 $(COMPILE) -c $(srcdir)/config/obj-evax.c
60+obj-fdpicelf.o : $(srcdir)/config/obj-fdpicelf.c
61+ $(COMPILE) -c $(srcdir)/config/obj-fdpicelf.c
62 obj-multi.o : $(srcdir)/config/obj-multi.c
63 $(COMPILE) -c $(srcdir)/config/obj-multi.c
64 obj-som.o : $(srcdir)/config/obj-som.c
65Index: configure.tgt
66===================================================================
67RCS file: /cvs/src/src/gas/configure.tgt,v
68retrieving revision 1.39
69diff -u -p -r1.39 configure.tgt
70--- configure.tgt 1 Feb 2008 17:58:47 -0000 1.39
71+++ configure.tgt 22 Apr 2008 20:47:27 -0000
72@@ -125,8 +125,11 @@ case ${generic_target} in
73 arm-*-riscix*) fmt=aout em=riscix ;;
74
75 avr-*-*) fmt=elf bfd_gas=yes ;;
76- bfin-*-*) fmt=elf bfd_gas=yes ;;
77+
78+ bfin-*-linux-uclibc) fmt=fdpicelf em=linux ;;
79+ bfin-*-uclinux*) fmt=elf em=linux ;;
80 bfin-*elf) fmt=elf ;;
81+
82 cr16-*-elf*) fmt=elf ;;
83
84 cris-*-linux-* | crisv32-*-linux-*)
85@@ -416,7 +419,7 @@ case ${cpu_type} in
86 ;;
87 esac
88 case ${fmt} in
89- elf | ecoff | multi | som)
90+ elf | ecoff | fdpicelf | multi | som)
91 bfd_gas=yes
92 ;;
93 esac
94Index: config/obj-fdpicelf.c
95===================================================================
96RCS file: config/obj-fdpicelf.c
97diff -N config/obj-fdpicelf.c
98--- /dev/null 1 Jan 1970 00:00:00 -0000
99+++ config/obj-fdpicelf.c 22 Apr 2008 20:47:27 -0000
100@@ -0,0 +1 @@
101+#include "obj-elf.c"
102Index: config/obj-fdpicelf.h
103===================================================================
104RCS file: config/obj-fdpicelf.h
105diff -N config/obj-fdpicelf.h
106--- /dev/null 1 Jan 1970 00:00:00 -0000
107+++ config/obj-fdpicelf.h 22 Apr 2008 20:47:27 -0000
108@@ -0,0 +1,2 @@
109+#define OBJ_FDPIC_ELF 1
110+#include "obj-elf.h"
111Index: config/tc-bfin.c
112===================================================================
113RCS file: /cvs/src/src/gas/config/tc-bfin.c,v
114retrieving revision 1.15
115diff -u -p -r1.15 tc-bfin.c
116--- config/tc-bfin.c 26 Mar 2008 16:33:33 -0000 1.15
117+++ config/tc-bfin.c 22 Apr 2008 20:47:28 -0000
118@@ -50,8 +50,14 @@ FILE *errorf;
119 /* Flags to set in the elf header */
120 #define DEFAULT_FLAGS 0
121
122-static flagword bfin_flags = DEFAULT_FLAGS;
123-static const char *bfin_pic_flag = (const char *)0;
124+#ifdef OBJ_FDPIC_ELF
125+# define DEFAULT_FDPIC EF_BFIN_FDPIC
126+#else
127+# define DEFAULT_FDPIC 0
128+#endif
129+
130+static flagword bfin_flags = DEFAULT_FLAGS | DEFAULT_FDPIC;
131+static const char *bfin_pic_flag = DEFAULT_FDPIC ? "-mfdpic" : (const char *)0;
132
133 /* Registers list. */
134 struct bfin_reg_entry
135@@ -305,10 +311,13 @@ const char FLT_CHARS[] = "fFdDxX";
136 const char *md_shortopts = "";
137
138 #define OPTION_FDPIC (OPTION_MD_BASE)
139+#define OPTION_NOPIC (OPTION_MD_BASE + 1)
140
141 struct option md_longopts[] =
142 {
143- { "mfdpic", no_argument, NULL, OPTION_FDPIC },
144+ { "mfdpic", no_argument, NULL, OPTION_FDPIC },
145+ { "mnopic", no_argument, NULL, OPTION_NOPIC },
146+ { "mno-fdpic", no_argument, NULL, OPTION_NOPIC },
147 { NULL, no_argument, NULL, 0 },
148 };
149
150@@ -327,6 +336,11 @@ md_parse_option (int c ATTRIBUTE_UNUSED,
151 bfin_flags |= EF_BFIN_FDPIC;
152 bfin_pic_flag = "-mfdpic";
153 break;
154+
155+ case OPTION_NOPIC:
156+ bfin_flags &= ~(EF_BFIN_FDPIC);
157+ bfin_pic_flag = 0;
158+ break;
159 }
160
161 return 1;