Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 69724 | Differences between
and this patch

Collapse All | Expand All

(-)stage2/char_io.c.mps (+9 lines)
Lines 1162-1194 Link Here
1162
}
1162
}
1163
#endif /* ! STAGE1_5 */
1163
#endif /* ! STAGE1_5 */
1164
1164
1165
#ifdef __PIC__
1166
extern char _start[];
1167
extern char _end[];
1168
#endif
1169
1165
int
1170
int
1166
memcheck (int addr, int len)
1171
memcheck (int addr, int len)
1167
{
1172
{
1168
#ifdef GRUB_UTIL
1173
#ifdef GRUB_UTIL
1174
#ifdef __PIC__
1175
  if (_start <= addr && _end > addr + len)
1176
#else
1169
  static int start_addr (void)
1177
  static int start_addr (void)
1170
    {
1178
    {
1171
      int ret;
1179
      int ret;
1172
# if defined(HAVE_START_SYMBOL)
1180
# if defined(HAVE_START_SYMBOL)
1173
      asm volatile ("movl	$start, %0" : "=a" (ret));
1181
      asm volatile ("movl	$start, %0" : "=a" (ret));
1174
# elif defined(HAVE_USCORE_START_SYMBOL)
1182
# elif defined(HAVE_USCORE_START_SYMBOL)
1175
      asm volatile ("movl	$_start, %0" : "=a" (ret));
1183
      asm volatile ("movl	$_start, %0" : "=a" (ret));
1176
# endif
1184
# endif
1177
      return ret;
1185
      return ret;
1178
    }
1186
    }
1179
1187
1180
  static int end_addr (void)
1188
  static int end_addr (void)
1181
    {
1189
    {
1182
      int ret;
1190
      int ret;
1183
# if defined(HAVE_END_SYMBOL)
1191
# if defined(HAVE_END_SYMBOL)
1184
      asm volatile ("movl	$end, %0" : "=a" (ret));
1192
      asm volatile ("movl	$end, %0" : "=a" (ret));
1185
# elif defined(HAVE_USCORE_END_SYMBOL)
1193
# elif defined(HAVE_USCORE_END_SYMBOL)
1186
      asm volatile ("movl	$_end, %0" : "=a" (ret));
1194
      asm volatile ("movl	$_end, %0" : "=a" (ret));
1187
# endif
1195
# endif
1188
      return ret;
1196
      return ret;
1189
    }
1197
    }
1190
1198
1191
  if (start_addr () <= addr && end_addr () > addr + len)
1199
  if (start_addr () <= addr && end_addr () > addr + len)
1200
#endif
1192
    return ! errnum;
1201
    return ! errnum;
1193
#endif /* GRUB_UTIL */
1202
#endif /* GRUB_UTIL */
1194
1203

Return to bug 69724