comparison tango/lib/compiler/llvmdc/memory.d @ 406:94394be61589

Attempt to fix win32/mingw linking related to unresolved data segment start/end symbols.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Sun, 27 Jul 2008 14:11:31 +0200
parents d9d5d59873d8
children
comparison
equal deleted inserted replaced
405:c39813438df7 406:94394be61589
121 { 121 {
122 version( Win32 ) 122 version( Win32 )
123 { 123 {
124 extern (C) 124 extern (C)
125 { 125 {
126 extern int _xi_a; // &_xi_a just happens to be start of data segment 126 extern int _data_start__;
127 extern int _edata; // &_edata is start of BSS segment 127 extern int _bss_end__;
128 extern int _end; // &_end is past end of BSS 128
129 alias _data_start__ Data_Start;
130 alias _bss_end__ Data_End;
129 } 131 }
130 } 132 }
131 else version( linux ) 133 else version( linux )
132 { 134 {
133 extern (C) 135 extern (C)
155 */ 157 */
156 extern (C) void rt_scanStaticData( scanFn scan ) 158 extern (C) void rt_scanStaticData( scanFn scan )
157 { 159 {
158 version( Win32 ) 160 version( Win32 )
159 { 161 {
160 scan( &_xi_a, &_end ); 162 scan( &Data_Start, &Data_End );
161 } 163 }
162 else version( linux ) 164 else version( linux )
163 { 165 {
164 //printf("scanning static data from %p to %p\n", &__data_start, &_end); 166 //printf("scanning static data from %p to %p\n", &Data_Start, &Data_End);
165 scan( &__data_start, &_end ); 167 scan( &Data_Start, &Data_End );
166 } 168 }
167 else 169 else
168 { 170 {
169 static assert( false, "Operating system not supported." ); 171 static assert( false, "Operating system not supported." );
170 } 172 }