changeset 4159:61358aef9ab3

6532562 unix needs to be in sync with itself
author josephb
date Thu, 03 May 2007 14:25:49 -0700
parents 2c6eae4728c5
children c23579e36e7c
files usr/src/uts/common/krtld/kobj.c usr/src/uts/i86pc/os/fakebop.c
diffstat 2 files changed, 17 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/krtld/kobj.c	Thu May 03 13:07:35 2007 -0700
+++ b/usr/src/uts/common/krtld/kobj.c	Thu May 03 14:25:49 2007 -0700
@@ -548,6 +548,19 @@
 fail:
 
 	_kobj_printf(ops, "krtld: error during initial load/link phase\n");
+
+#if !defined(_UNIX_KRTLD)
+	_kobj_printf(ops, "\n");
+	_kobj_printf(ops, "krtld could neither locate nor resolve symbols"
+	    " for:\n");
+	_kobj_printf(ops, "    %s\n", filename);
+	_kobj_printf(ops, "in the boot archive. Please verify that this"
+	    " file\n");
+	_kobj_printf(ops, "matches what is found in the boot archive.\n");
+	_kobj_printf(ops, "You may need to boot using the Solaris failsafe to"
+	    " fix this.\n");
+	bop_panic("Unable to boot");
+#endif
 }
 
 #if !defined(_UNIX_KRTLD)
--- a/usr/src/uts/i86pc/os/fakebop.c	Thu May 03 13:07:35 2007 -0700
+++ b/usr/src/uts/i86pc/os/fakebop.c	Thu May 03 14:25:49 2007 -0700
@@ -691,7 +691,7 @@
 	bop_printf(NULL, "\nPress any key to reboot.\n");
 	(void) bcons_getchar();
 	bop_printf(NULL, "Resetting...\n");
-	reset();
+	pc_reset();
 }
 
 /*
@@ -1098,13 +1098,10 @@
 	static int depth = 0;
 
 	/*
-	 * Check for an infinite loop of traps. Avoid bop_printf() here to
-	 * reduce code path and further possibility of failure.
+	 * Check for an infinite loop of traps.
 	 */
-	if (++depth > 2) {
-		PUT_STRING("Nested trap, calling reset()\n");
-		reset();
-	}
+	if (++depth > 2)
+		bop_panic("Nested trap");
 
 	/*
 	 * adjust the tf for optional error_code by detecting the code selector