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 /* 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 .code16
jmp far movb %al, %bl
.org 4
.space 300
far:
.byte 0

View file

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