Relax requirements on asm for non-BIOS i386 platforms.

These platforms don't have a hard limit on size of resulting code16
code, so we don't care if assembly is bigger than necessarry.
This commit is contained in:
Vladimir Serbinenko 2015-02-21 20:18:18 +01:00
parent 3c6043245e
commit f16b8c0405
3 changed files with 19 additions and 12 deletions

10
asm-tests/i386-pc.S Normal file
View File

@ -0,0 +1,10 @@
/* on x86 old clang doesn't support .code16
newer clang supports it but creates 6-byte jumps instead of 3-byte ones
which makes us go over boot sector size. */
.code16
jmp far
.org 4
.space 300
far:
.byte 0

View File

@ -1,10 +1,4 @@
/* on x86 old clang doesn't support .code16
newer clang supports it but creates 6-byte jumps instead of 3-byte ones
which makes us go over boot sector size. */
/* on x86 old clang doesn't support .code16 */
.code16
jmp far
.org 4
.space 300
far:
.byte 0
movb %al, %bl

View File

@ -562,14 +562,17 @@ AC_COMPILE_IFELSE(
AC_CACHE_CHECK([for options to compile assembly], [grub_cv_cc_target_asm_compile], [
test_program=
case "x$target_cpu" in
xmips | xmipsel)
case "x$target_cpu-$platform" in
xmips-* | xmipsel-*)
test_program=mips
;;
xi386 | xx86_64)
xi386-pc)
test_program=i386-pc
;;
xi386-* | xx86_64-*)
test_program=i386
;;
xpowerpc | xsparc64 | xarm)
xpowerpc-* | xsparc64-* | xarm-*)
test_program=$target_cpu
;;
esac