]> git.wh0rd.org Git - patches.git/blob - elf2flt-user-label-prefix.patch
scummvm random work
[patches.git] / elf2flt-user-label-prefix.patch
1 Index: configure.in
2 ===================================================================
3 RCS file: /var/cvs/elf2flt/configure.in,v
4 retrieving revision 1.10
5 diff -u -p -r1.10 configure.in
6 --- configure.in        3 Jan 2007 03:49:47 -0000       1.10
7 +++ configure.in        22 Sep 2007 10:04:57 -0000
8 @@ -106,6 +106,14 @@ Run configure again specifying these opt
9  ])
10  fi
11  
12 +SYMBOL_PREFIX=
13 +case $target in
14 +       bfin*)
15 +               SYMBOL_PREFIX=_
16 +               ;;
17 +esac
18 +
19 +
20  dnl Checks for header files.
21  AC_HEADER_STDC
22  AC_CHECK_HEADERS(fcntl.h unistd.h bfd.h)
23 @@ -129,6 +137,7 @@ AC_SUBST(binutils_include_dir)
24  AC_SUBST(binutils_ldscript_dir)
25  AC_SUBST(got_check)
26  AC_SUBST(emit_relocs)
27 +AC_SUBST(SYMBOL_PREFIX)
28  
29 -AC_OUTPUT(Makefile ld-elf2flt)
30 +AC_OUTPUT(Makefile ld-elf2flt elf2flt.ld)
31  
32 Index: elf2flt.ld
33 ===================================================================
34 RCS file: /var/cvs/elf2flt/elf2flt.ld,v
35 retrieving revision 1.15
36 diff -u -p -r1.15 elf2flt.ld
37 --- elf2flt.ld  21 Jul 2006 13:11:04 -0000      1.15
38 +++ elf2flt.ld  22 Sep 2007 10:04:58 -0000
39 @@ -1,5 +1,5 @@
40  
41 -ENTRY (_start)
42 +ENTRY (@SYMBOL_PREFIX@_start)
43  
44  MEMORY {
45         flatmem : ORIGIN = 0x0, LENGTH = 0xfffffff
46 @@ -10,7 +10,7 @@ SECTIONS {
47         .text 0x0 : {
48                 . = . + 4;
49                 . = ALIGN(0x4) ;
50 -               _stext = . ;
51 +               @SYMBOL_PREFIX@_stext = . ;
52                 *(.text)
53                 *(.text.*)
54                 *(.gnu.warning)
55 @@ -32,19 +32,19 @@ W_RODAT             *(.gnu.linkonce.r*)
56                    the start followed by the code pointed to by entries
57                    in the lookup table.  */
58                 . = ALIGN (4) ;
59 -               PROVIDE(__ctbp = .);
60 +               PROVIDE(@SYMBOL_PREFIX@__ctbp = .);
61                 *(.call_table_data)
62                 *(.call_table_text)
63  
64                 . = ALIGN(0x20) ;
65 -               _etext = . ;
66 +               @SYMBOL_PREFIX@_etext = . ;
67         } > flatmem
68  
69         .data : {
70                 . = ALIGN(0x4) ;
71 -               _sdata = . ;
72 -               __data_start = . ;
73 -               data_start = . ;
74 +               @SYMBOL_PREFIX@_sdata = . ;
75 +               @SYMBOL_PREFIX@__data_start = . ;
76 +               @SYMBOL_PREFIX@data_start = . ;
77                 *(.got.plt)
78                 *(.got)
79                 FILL(0) ;
80 @@ -65,14 +65,14 @@ R_RODAT             *(.gnu.linkonce.r*)
81  
82                 /* Microblaze has .sdata and .sbss (small bss).  They must
83                    be contiguous, so please don't move any of this. JW */
84 -               _ssrw = . ;                     
85 +               @SYMBOL_PREFIX@_ssrw = . ;                      
86                 *(.sdata) 
87                 *(.sdata.*)
88                 *(.sbss)                        /* Don't move this! */
89 -               _essrw = . ;
90 +               @SYMBOL_PREFIX@_essrw = . ;
91  
92 -               _ssrw_size = _essrw - _ssrw;
93 -               PROVIDE(_SDA_BASE_ = _ssrw + (_ssrw_size / 2));
94 +               @SYMBOL_PREFIX@_ssrw_size = @SYMBOL_PREFIX@_essrw - @SYMBOL_PREFIX@_ssrw;
95 +               PROVIDE(@SYMBOL_PREFIX@_SDA_BASE_ = @SYMBOL_PREFIX@_ssrw + (@SYMBOL_PREFIX@_ssrw_size / 2));
96  
97                 *(.gnu.linkonce.s.*)
98                 *(__libc_atexit)
99 @@ -82,15 +82,15 @@ R_RODAT             *(.gnu.linkonce.r*)
100  
101                 /* microblaze-specific read-only small data area
102                    and associated locating symbols */
103 -               _ssro = . ;
104 +               @SYMBOL_PREFIX@_ssro = . ;
105                 *(.sdata2)
106 -               _essro = . ;
107 -               _ssro_size = _essro - _ssro;
108 -               PROVIDE(_SDA2_BASE_ = _ssro + (_ssro_size / 2));
109 +               @SYMBOL_PREFIX@_essro = . ;
110 +               @SYMBOL_PREFIX@_ssro_size = @SYMBOL_PREFIX@_essro - @SYMBOL_PREFIX@_ssro;
111 +               PROVIDE(@SYMBOL_PREFIX@_SDA2_BASE_ = @SYMBOL_PREFIX@_ssro + (@SYMBOL_PREFIX@_ssro_size / 2));
112  
113                 . = ALIGN(4) ;
114 -               __CTOR_LIST__ = .;
115 -               LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
116 +               @SYMBOL_PREFIX@__CTOR_LIST__ = .;
117 +               LONG((@SYMBOL_PREFIX@__CTOR_END__ - @SYMBOL_PREFIX@__CTOR_LIST__) / 4 - 2)
118  SINGLE_LINK:   /* gcc uses crtbegin.o to find the start of
119  SINGLE_LINK:      the constructors, so we make sure it is
120  SINGLE_LINK:      first.  Because this is a wildcard, it
121 @@ -109,38 +109,38 @@ SINGLE_LINK:      KEEP (*(EXCLUDE_FILE (*crte
122  SINGLE_LINK:   KEEP (*(SORT(.ctors.*)))
123                 KEEP (*(.ctors))
124                 LONG(0)
125 -               __CTOR_END__ = .;
126 -               __DTOR_LIST__ = .;
127 -               LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
128 +               @SYMBOL_PREFIX@__CTOR_END__ = .;
129 +               @SYMBOL_PREFIX@__DTOR_LIST__ = .;
130 +               LONG((@SYMBOL_PREFIX@__DTOR_END__ - @SYMBOL_PREFIX@__DTOR_LIST__) / 4 - 2)
131  SINGLE_LINK:   KEEP (*crtbegin*.o(.dtors))
132  SINGLE_LINK:   KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
133  SINGLE_LINK:   KEEP (*(SORT(.dtors.*)))
134                 KEEP (*(.dtors))
135                 LONG(0)
136 -               __DTOR_END__ = .;
137 +               @SYMBOL_PREFIX@__DTOR_END__ = .;
138  
139 -               PROVIDE (__preinit_array_start = .);
140 +               PROVIDE (@SYMBOL_PREFIX@__preinit_array_start = .);
141                 KEEP (*(.preinit_array))
142 -               PROVIDE (__preinit_array_end = .);
143 +               PROVIDE (@SYMBOL_PREFIX@__preinit_array_end = .);
144  
145 -               PROVIDE (__init_array_start = .);
146 +               PROVIDE (@SYMBOL_PREFIX@__init_array_start = .);
147                 KEEP (*(SORT(.init_array.*)))
148                 KEEP (*(.init_array))
149 -               PROVIDE (__init_array_end = .);
150 +               PROVIDE (@SYMBOL_PREFIX@__init_array_end = .);
151  
152 -               PROVIDE (__fini_array_start = .);
153 +               PROVIDE (@SYMBOL_PREFIX@__fini_array_start = .);
154                 KEEP (*(.fini_array))
155                 KEEP (*(SORT(.fini_array.*)))
156 -               PROVIDE (__fini_array_end = .);
157 +               PROVIDE (@SYMBOL_PREFIX@__fini_array_end = .);
158  
159                 . = ALIGN(0x10) ; 
160 -               _edata = . ;
161 +               @SYMBOL_PREFIX@_edata = . ;
162         } > flatmem
163  
164         .bss : {
165                 . = ALIGN(0x4) ;
166 -               _sbss = ALIGN(0x4) ;
167 -               __bss_start = . ;
168 +               @SYMBOL_PREFIX@_sbss = ALIGN(0x4) ;
169 +               @SYMBOL_PREFIX@__bss_start = . ;
170                 *(.dynsbss)
171                 *(.sbss)
172                 *(.sbss.*)
173 @@ -152,9 +152,9 @@ SINGLE_LINK:        KEEP (*(SORT(.dtors.*)))
174                 *(.gnu.linkonce.b*)
175                 *(COMMON)
176                 . = ALIGN(0x10) ;
177 -               _ebss = . ;
178 -               _end = . ;
179 -               end = . ;
180 +               @SYMBOL_PREFIX@_ebss = . ;
181 +               @SYMBOL_PREFIX@_end = . ;
182 +               @SYMBOL_PREFIX@end = . ;
183         } > flatmem
184  
185         .stack : {