]> git.wh0rd.org Git - patches.git/blob - u-boot-cpp-linker-script.patch
scummvm random work
[patches.git] / u-boot-cpp-linker-script.patch
1 Index: config.mk
2 ===================================================================
3 --- config.mk   (revision 608)
4 +++ config.mk   (working copy)
5 @@ -182,7 +182,7 @@
6  
7  AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS)
8  
9 -LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
10 +LDFLAGS += -Bstatic -T $(LDSCRIPT) $(PLATFORM_LDFLAGS)
11  
12  # Location of a usable BFD library, where we define "usable" as
13  # "built for ${HOST}, supports ${TARGET}".  Sensible values are
14 Index: Makefile
15 ===================================================================
16 --- Makefile    (revision 608)
17 +++ Makefile    (working copy)
18 @@ -2299,6 +2299,7 @@
19         rm -f $(obj)tools/env/fw_printenv $(obj)tools/env/fw_setenv
20         rm -f $(obj)tools/bin2ldr/app.bin $(obj)tools/bin2ldr/app.hex $(obj)tools/bin2ldr/app.ldr
21         rm -f $(obj)tools/bin2ldr/init_sdram* $(obj)tools/bin2ldr/jump $(obj)tools/bin2ldr/bin2ldr
22 +       rm -f $(obj)board/bf*/u-boot.lds
23         rm -f $(obj)board/cray/L1/bootscript.c $(obj)board/cray/L1/bootscript.image
24         rm -f $(obj)board/netstar/eeprom $(obj)board/netstar/crcek $(obj)board/netstar/crcit
25         rm -f $(obj)board/netstar/*.srec $(obj)board/netstar/*.bin
26 Index: board/bf537-stamp/u-boot.lds
27 ===================================================================
28 --- board/bf537-stamp/u-boot.lds        (revision 608)
29 +++ board/bf537-stamp/u-boot.lds        (working copy)
30 @@ -1,188 +0,0 @@
31 -/*
32 - * U-boot - u-boot.lds
33 - *
34 - * Copyright (c) 2005 blackfin.uclinux.org
35 - *
36 - * (C) Copyright 2000-2004
37 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
38 - *
39 - * See file CREDITS for list of people who contributed to this
40 - * project.
41 - *
42 - * This program is free software; you can redistribute it and/or
43 - * modify it under the terms of the GNU General Public License as
44 - * published by the Free Software Foundation; either version 2 of
45 - * the License, or (at your option) any later version.
46 - *
47 - * This program is distributed in the hope that it will be useful,
48 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
49 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
50 - * GNU General Public License for more details.
51 - *
52 - * You should have received a copy of the GNU General Public License
53 - * along with this program; if not, write to the Free Software
54 - * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
55 - * MA 02111-1307 USA
56 - */
57 -
58 -OUTPUT_ARCH(bfin)
59 -SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib);
60 -/* Do we need any of these for elf?
61 -   __DYNAMIC = 0;    */
62 -MEMORY
63 - {
64 - ram :            ORIGIN = 0x03FC0000, LENGTH = (256 * 1024)
65 - l1_code : ORIGIN = 0xFFA00000, LENGTH = 0xC000
66 - l1_data : ORIGIN = 0xFF900000, LENGTH = 0x4000
67 - }
68 -
69 -SECTIONS
70 -{
71 -  /* Read-only sections, merged into text segment: */
72 -  . = + SIZEOF_HEADERS; /*0x1000;*/
73 -  .interp : { *(.interp) }
74 -  .hash          : { *(.hash)          }
75 -  .dynsym        : { *(.dynsym)                }
76 -  .dynstr        : { *(.dynstr)                }
77 -  .rel.text      : { *(.rel.text)      }
78 -  .rela.text     : { *(.rela.text)     }
79 -  .rel.data      : { *(.rel.data)      }
80 -  .rela.data     : { *(.rela.data)     }
81 -  .rel.rodata    : { *(.rel.rodata)    }
82 -  .rela.rodata   : { *(.rela.rodata)   }
83 -  .rel.got       : { *(.rel.got)       }
84 -  .rela.got      : { *(.rela.got)      }
85 -  .rel.ctors     : { *(.rel.ctors)     }
86 -  .rela.ctors    : { *(.rela.ctors)    }
87 -  .rel.dtors     : { *(.rel.dtors)     }
88 -  .rela.dtors    : { *(.rela.dtors)    }
89 -  .rel.bss       : { *(.rel.bss)       }
90 -  .rela.bss      : { *(.rela.bss)      }
91 -  .rel.plt       : { *(.rel.plt)       }
92 -  .rela.plt      : { *(.rela.plt)      }
93 -  .init          : { *(.init)          }
94 -  .plt : { *(.plt) }
95 -  .text      :
96 -  {
97 -    /* WARNING - the following is hand-optimized to fit within */
98 -    /* the sector before the environment sector. If it throws  */
99 -    /* an error during compilation remove an object here to get        */
100 -    /* it linked after the configuration sector.               */
101 -
102 -    cpu/bf537/start.o          (.text)
103 -    cpu/bf537/start1.o         (.text)
104 -    cpu/bf537/traps.o          (.text)
105 -    cpu/bf537/interrupt.o      (.text)
106 -    cpu/bf537/serial.o         (.text)
107 -    common/dlmalloc.o          (.text)
108 -/*  lib_blackfin/bf533_string.o        (.text) */
109 -/*  lib_generic/vsprintf.o     (.text) */
110 -    lib_generic/crc32.o                (.text)
111 -    lib_generic/zlib.o         (.text)
112 -/*  board/bf537-stamp/bf537-stamp.o            (.text) */
113 -
114 -    . = DEFINED(env_offset) ? env_offset : .;
115 -    common/environment.o       (.text)
116 -
117 -    *(EXCLUDE_FILE (board/bf537-stamp/post-memory.o) .text)    
118 -    *(.fixup)
119 -    *(.got1)
120 -  }  > ram 
121 -  _etext = .;
122 -  PROVIDE (etext = .);
123 -  .text_l1     :
124 -  {
125 -  . = ALIGN(4) ;
126 -  _text_l1 = .;
127 -  PROVIDE (text_l1 = .);
128 -  board/bf537-stamp/post-memory.o   (.text)
129 -  . = ALIGN(4) ;
130 -  _etext_l1 = .;
131 -  PROVIDE (etext_l1 = .);
132 -  } > l1_code AT > ram
133 -
134 -  .rodata :
135 -  {
136 -    . = ALIGN(4);
137 -    *(EXCLUDE_FILE (board/bf537-stamp/post-memory.o) .rodata)
138 -    *(EXCLUDE_FILE (board/bf537-stamp/post-memory.o) .rodata1)
139 -    *(EXCLUDE_FILE (board/bf537-stamp/post-memory.o) .rodata.str1.4)
140 -    *(.eh_frame)
141 -    . = ALIGN(4);
142 -  } > ram
143 -
144 -  . = ALIGN(4);
145 -  _erodata = .;
146 -  PROVIDE (erodata = .);
147 -  .rodata_l1 :
148 - {
149 -   . = ALIGN(4) ;
150 -   _rodata_l1 = .;
151 -   PROVIDE (rodata_l1 = .);
152 -   board/bf537-stamp/post-memory.o (.rodata)
153 -   board/bf537-stamp/post-memory.o (.rodata1)
154 -   board/bf537-stamp/post-memory.o (.rodata.str1.4)
155 -   . = ALIGN(4) ;
156 -   _erodata_l1 = .;
157 -   PROVIDE(erodata_l1 = .);
158 - } > l1_data AT > ram
159 -
160 -  .fini      : { *(.fini)    } =0
161 -  .ctors     : { *(.ctors)   }
162 -  .dtors     : { *(.dtors)   }
163 -
164 -  /* Read-write section, merged into data segment: */
165 -  . = (. + 0x00FF) & 0xFFFFFF00;
166 -  _erotext = .;
167 -  PROVIDE (erotext = .);
168 -  .reloc   :
169 -  {
170 -    *(.got)
171 -    _GOT2_TABLE_ = .;
172 -    *(.got2)
173 -    _FIXUP_TABLE_ = .;
174 -    *(.fixup)
175 -  }
176 -  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
177 -  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
178 -
179 -  .data    :
180 -  {
181 -    *(.data)
182 -    *(.data1)
183 -    *(.sdata)
184 -    *(.sdata2)
185 -    *(.dynamic)
186 -    CONSTRUCTORS
187 -  } > ram
188 -  _edata  =  .;
189 -  PROVIDE (edata = .);
190 -
191 -  ___u_boot_cmd_start = .;
192 -  .u_boot_cmd : { *(.u_boot_cmd) } > ram
193 -  ___u_boot_cmd_end = .;
194 -
195 -
196 -  __start___ex_table = .;
197 -  __ex_table : { *(__ex_table) }
198 -  __stop___ex_table = .;
199 -
200 -  . = ALIGN(256);
201 -  __init_begin = .;
202 -  .text.init : { *(.text.init) }
203 -  .data.init : { *(.data.init) }
204 -  . = ALIGN(256);
205 -  __init_end = .;
206 -
207 -  .bss       :
208 -  {
209 -  __bss_start = .;
210 -   *(.sbss) *(.scommon)
211 -   *(.dynbss)
212 -   *(.bss)
213 -   *(COMMON)
214 -  } > ram
215 -  _end = . ;
216 -  PROVIDE (end = .);
217 -}
218 -
219 Index: board/bf537-stamp/u-boot.lds.S
220 ===================================================================
221 --- board/bf537-stamp/u-boot.lds.S      (revision 608)
222 +++ board/bf537-stamp/u-boot.lds.S      (working copy)
223 @@ -25,6 +25,8 @@
224   * MA 02111-1307 USA
225   */
226  
227 +#include <config.h>
228 +
229  OUTPUT_ARCH(bfin)
230  SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib);
231  /* Do we need any of these for elf?
232 @@ -62,6 +64,7 @@
233    .rela.plt      : { *(.rela.plt)      }
234    .init          : { *(.init)          }
235    .plt : { *(.plt) }
236 +  . = CFG_MONITOR_BASE;
237    .text      :
238    {
239      /* WARNING - the following is hand-optimized to fit within */
240 Index: board/bf537-stamp/config.mk
241 ===================================================================
242 --- board/bf537-stamp/config.mk (revision 608)
243 +++ board/bf537-stamp/config.mk (working copy)
244 @@ -21,4 +21,4 @@
245  # MA 02111-1307 USA
246  #
247  
248 -TEXT_BASE = 0x03FC0000
249 +TEXT_BASE = do-not-use-me
250 Index: board/bf537-stamp/Makefile
251 ===================================================================
252 --- board/bf537-stamp/Makefile  (revision 608)
253 +++ board/bf537-stamp/Makefile  (working copy)
254 @@ -31,9 +31,13 @@
255  
256  OBJS   = $(BOARD).o flash.o ether_bf537.o post-memory.o stm_m25p64.o cmd_bf537led.o nand.o
257  
258 -$(LIB):        .depend $(OBJS)
259 +$(LIB):        .depend $(OBJS) u-boot.lds
260         $(AR) cr $@ $(OBJS)
261  
262 +u-boot.lds: u-boot.lds.S
263 +       $(CPP) $(CPPFLAGS) -P -Ubfin $^ > $@.tmp
264 +       mv -f $@.tmp $@
265 +
266  #########################################################################
267  
268  .depend:       Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)