Skip to contentSkip to conversation

Simplify target and platform checks

PATCH In review Pavel Roskin 3 participants 4 messages Jul 17, 2008 – Jul 19, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Simplify target and platform checks

ChangeLog:

* configure.ac: Default to efi platform for x86_64-apple. Allow powerpc64 CPU, default to ieee1275 platform for it. Split CPU adjustments from the rest, only do them if target is not explicitly given. Merge other adjustments with the final sanity check. Remove an extraneous check for supported CPU. Be specific which CPU and which platform is not supported.

configure.ac +13 -22
Index: configure.ac
===================================================================
@@ -61,46 +61,37 @@
   case "$target_cpu"-"$target_vendor" in
     i386-apple) platform=efi ;;
     i386-*) platform=pc ;;
+    x86_64-apple) platform=efi ;;
     x86_64-*) platform=pc ;;
     powerpc-*) platform=ieee1275 ;;
+    powerpc64-*) platform=ieee1275 ;;
     sparc64-*) platform=ieee1275 ;;
-    *) AC_MSG_ERROR([unsupported machine type]) ;;
+    *) AC_MSG_ERROR([unsupported CPU: "$target_cpu"]) ;;
   esac
 else
   platform="$with_platform"
 fi
 
-case "$platform" in
-  linuxbios) platform=coreboot ;;
-esac
-
-if test "x$platform" = "xefi" ; then
-  case "$target_cpu" in
-    i386) ;;
-    x86_64) target_m64=1 ;;
-    *) AC_MSG_ERROR([unsupported CPU type for EFI]) ;;
+# Adjust CPU unless target was explicitly specified.
+if test -z "$target_alias"; then
+  case "$target_cpu"-"$platform" in
+    x86_64-efi) ;;
+    x86_64-*) target_cpu=i386 target_m32=1 ;;
+    powerpc64-ieee1275) target_cpu=powerpc target_m32=1 ;;
   esac
-else
-  case "$target_cpu" in
-    i386) ;;
-    x86_64) target_cpu=i386 target_m32=1 ;;
-    powerpc) ;;
-    powerpc64) target_cpu=powerpc target_m32=1;;
-    sparc64) ;;
-    *) AC_MSG_ERROR([unsupported CPU type]) ;;
-  esac
 fi
 
-# Sanity check.
+# Check if the platform is supported, make final adjustments.
 case "$target_cpu"-"$platform" in
   i386-efi) ;;
-  x86_64-efi) ;;
+  x86_64-efi) target_m64=1 ;;
   i386-pc) ;;
   i386-coreboot) ;;
+  i386-linuxbios) platform=coreboot ;;
   i386-ieee1275) ;;
   powerpc-ieee1275) ;;
   sparc64-ieee1275) ;;
-  *) AC_MSG_ERROR([unsupported machine type]) ;;
+  *) AC_MSG_ERROR([platform "$platform" is not supported for target CPU "$target_cpu"]) ;;
 esac
 
 AC_SUBST(target_cpu)
Signature · 2 lines
Regards,
Pavel Roskin
#1 lore raw
Quoted 64 lines · Pavel Roskin

ChangeLog:

* configure.ac: Default to efi platform for x86_64-apple. Allow powerpc64 CPU, default to ieee1275 platform for it. Split CPU adjustments from the rest, only do them if target is not explicitly given. Merge other adjustments with the final sanity check. Remove an extraneous check for supported CPU. Be specific which CPU and which platform is not supported.

Index: configure.ac
===================================================================

configure.ac +11 -21
@@ -61,46 +61,37 @@
   case "$target_cpu"-"$target_vendor" in
     i386-apple) platform=efi ;;
     i386-*) platform=pc ;;
+    x86_64-apple) platform=efi ;;
     x86_64-*) platform=pc ;;
     powerpc-*) platform=ieee1275 ;;
+    powerpc64-*) platform=ieee1275 ;;
     sparc64-*) platform=ieee1275 ;;
-    *) AC_MSG_ERROR([unsupported machine type]) ;;
+    *) AC_MSG_ERROR([unsupported CPU: "$target_cpu"]) ;;
   esac
 else
   platform="$with_platform"
 fi
 
-case "$platform" in
-  linuxbios) platform=coreboot ;;
-esac
-
-if test "x$platform" = "xefi" ; then
-  case "$target_cpu" in
-    i386) ;;
-    x86_64) target_m64=1 ;;
-    *) AC_MSG_ERROR([unsupported CPU type for EFI]) ;;
+# Adjust CPU unless target was explicitly specified.
+if test -z "$target_alias"; then
+  case "$target_cpu"-"$platform" in
+    x86_64-efi) ;;
+    x86_64-*) target_cpu=i386 target_m32=1 ;;
+    powerpc64-ieee1275) target_cpu=powerpc target_m32=1 ;;
   esac
-else
-  case "$target_cpu" in
-    i386) ;;
-    x86_64) target_cpu=i386 target_m32=1 ;;
-    powerpc) ;;
-    powerpc64) target_cpu=powerpc target_m32=1;;
-    sparc64) ;;
-    *) AC_MSG_ERROR([unsupported CPU type]) ;;
-  esac
 fi
 
-# Sanity check.
+# Check if the platform is supported, make final adjustments.
 case "$target_cpu"-"$platform" in
   i386-efi) ;;
-  x86_64-efi) ;;
+  x86_64-efi) target_m64=1 ;;
   i386-pc) ;;

configure.ac line 97

Quoted 10 lines
configure.ac +2 -1
   i386-coreboot) ;;
+  i386-linuxbios) platform=coreboot ;;
   i386-ieee1275) ;;
   powerpc-ieee1275) ;;
   sparc64-ieee1275) ;;
-  *) AC_MSG_ERROR([unsupported machine type]) ;;
+  *) AC_MSG_ERROR([platform "$platform" is not supported for target CPU "$target_cpu"]) ;;
 esac
 
 AC_SUBST(target_cpu)

Confirmed to work on amd64 PC with Ubuntu Hardy (default system type from config.guess is x86_64-unknown-linux-gnu)

#2 lore raw
Quoted 2 lines · Javier Martín

Confirmed to work on amd64 PC with Ubuntu Hardy (default system type from config.guess is x86_64-unknown-linux-gnu)

Thanks. Applied.

Signature · 2 lines
Regards,
Pavel Roskin
#3 lore raw
In reply to Pavel Roskin

Thanks, this was really needed. I hope it's less of a mess now.

Quoted 84 lines · Pavel Roskin

ChangeLog:

* configure.ac: Default to efi platform for x86_64-apple. Allow powerpc64 CPU, default to ieee1275 platform for it. Split CPU adjustments from the rest, only do them if target is not explicitly given. Merge other adjustments with the final sanity check. Remove an extraneous check for supported CPU. Be specific which CPU and which platform is not supported.

Index: configure.ac
===================================================================

configure.ac +13 -22
@@ -61,46 +61,37 @@
   case "$target_cpu"-"$target_vendor" in
     i386-apple) platform=efi ;;
     i386-*) platform=pc ;;
+    x86_64-apple) platform=efi ;;
     x86_64-*) platform=pc ;;
     powerpc-*) platform=ieee1275 ;;
+    powerpc64-*) platform=ieee1275 ;;
     sparc64-*) platform=ieee1275 ;;
-    *) AC_MSG_ERROR([unsupported machine type]) ;;
+    *) AC_MSG_ERROR([unsupported CPU: "$target_cpu"]) ;;
   esac
 else
   platform="$with_platform"
 fi
 
-case "$platform" in
-  linuxbios) platform=coreboot ;;
-esac
-
-if test "x$platform" = "xefi" ; then
-  case "$target_cpu" in
-    i386) ;;
-    x86_64) target_m64=1 ;;
-    *) AC_MSG_ERROR([unsupported CPU type for EFI]) ;;
+# Adjust CPU unless target was explicitly specified.
+if test -z "$target_alias"; then
+  case "$target_cpu"-"$platform" in
+    x86_64-efi) ;;
+    x86_64-*) target_cpu=i386 target_m32=1 ;;
+    powerpc64-ieee1275) target_cpu=powerpc target_m32=1 ;;
   esac
-else
-  case "$target_cpu" in
-    i386) ;;
-    x86_64) target_cpu=i386 target_m32=1 ;;
-    powerpc) ;;
-    powerpc64) target_cpu=powerpc target_m32=1;;
-    sparc64) ;;
-    *) AC_MSG_ERROR([unsupported CPU type]) ;;
-  esac
 fi
 
-# Sanity check.
+# Check if the platform is supported, make final adjustments.
 case "$target_cpu"-"$platform" in
   i386-efi) ;;
-  x86_64-efi) ;;
+  x86_64-efi) target_m64=1 ;;
   i386-pc) ;;
   i386-coreboot) ;;
+  i386-linuxbios) platform=coreboot ;;
   i386-ieee1275) ;;
   powerpc-ieee1275) ;;
   sparc64-ieee1275) ;;
-  *) AC_MSG_ERROR([unsupported machine type]) ;;
+  *) AC_MSG_ERROR([platform "$platform" is not supported for target CPU "$target_cpu"]) ;;
 esac
 
 AC_SUBST(target_cpu)
Signature · 9 lines
-- 
Regards,
Pavel Roskin


_______________________________________________
Grub-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel
Signature · 5 lines
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What good is a phone call… if you are unable to speak?
(as seen on /.)