summaryrefslogtreecommitdiff
path: root/bootadm/debian/patches/dyson-bootadm-disable-multiarch.patch
blob: a48112421e2a9bff4bb0b444d13918b420483003 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Index: bootadm/usr/src/cmd/boot/bootadm/bootadm_upgrade.c
===================================================================
--- bootadm.orig/usr/src/cmd/boot/bootadm/bootadm_upgrade.c	2012-10-08 04:25:23.000000000 +0400
+++ bootadm/usr/src/cmd/boot/bootadm/bootadm_upgrade.c	2013-01-12 19:45:01.242071252 +0400
@@ -36,7 +36,6 @@
 
 #include <sys/mman.h>
 #include <sys/elf.h>
-#include <sys/multiboot.h>
 
 #include "message.h"
 #include "bootadm.h"
@@ -111,7 +110,6 @@
 	uchar_t		*ident;
 	int		fd;
 	int		m;
-	multiboot_header_t *mbh;
 	struct stat	sb;
 	int		error;
 	const char	*fcn = "get_boot_cap()";
@@ -128,6 +126,10 @@
 		return (BAM_ERROR);
 	}
 
+    bam_direct = BAM_DIRECT_DBOOT;
+    BAM_DPRINTF((D_RETURN_SUCCESS, fcn));
+    return (BAM_SUCCESS);
+#if 0
 	(void) snprintf(fname, PATH_MAX, "%s/%s", osroot,
 	    "platform/i86pc/kernel/unix");
 	fd = open(fname, O_RDONLY);
@@ -204,6 +206,7 @@
 
 	BAM_DPRINTF((D_RETURN_SUCCESS, fcn));
 	return (BAM_SUCCESS);
+#endif
 }
 
 #define	INST_RELEASE	"var/sadm/system/admin/INST_RELEASE"
Index: bootadm/usr/src/cmd/boot/bootadm/bootadm.c
===================================================================
--- bootadm.orig/usr/src/cmd/boot/bootadm/bootadm.c	2013-01-12 19:40:33.628941536 +0400
+++ bootadm/usr/src/cmd/boot/bootadm/bootadm.c	2013-01-12 19:44:20.854943702 +0400
@@ -2393,13 +2393,10 @@
 		if (ret == BAM_ERROR)
 			return (BAM_ERROR);
 	} else {
-		int	what = FILE32;
-		do {
+		int	what = is_amd64() ? FILE64 : FILE32;
 			ret = is_valid_archive(root, what);
 			if (ret == BAM_ERROR)
 				return (BAM_ERROR);
-			what++;
-		} while (bam_direct == BAM_DIRECT_DBOOT && what < CACHEDIR_NUM);
 	}
 
 	if (bam_nowrite())
@@ -2434,9 +2431,8 @@
 
 		set_dir_present(FILE64);
 	} else {
-		int	what = FILE32;
+		int	what = is_amd64() ? FILE64 : FILE32;
 
-		do {
 			if (set_cache_dir(root, what) != 0)
 				return (BAM_ERROR);
 
@@ -2444,17 +2440,18 @@
 
 			if (set_update_dir(root, what) != 0)
 				return (BAM_ERROR);
-			what++;
-		} while (bam_direct == BAM_DIRECT_DBOOT && what < CACHEDIR_NUM);
 	}
 
 	/*
 	 * if force, create archive unconditionally
 	 */
 	if (bam_force) {
-		if (!is_sparc())
+		if (is_sparc())
+			set_dir_flag(FILE64, NEED_UPDATE);
+		else if (is_amd64())
+			set_dir_flag(FILE64, NEED_UPDATE);
+		else
 			set_dir_flag(FILE32, NEED_UPDATE);
-		set_dir_flag(FILE64, NEED_UPDATE);
 		if (bam_verbose)
 			bam_print(UPDATE_FORCE);
 		return (BAM_SUCCESS);
@@ -2681,7 +2678,6 @@
 		(void) snprintf(path, sizeof (path), "%s/%s",
 		    root, file);
 		if (access(path, F_OK) < 0) {
-			int	what;
 
 			if (bam_verbose)
 				bam_print(PARSEABLE_STALE_FILE, path);
@@ -2689,7 +2685,7 @@
 			if (is_flag_on(IS_SPARC_TARGET)) {
 				set_dir_flag(FILE64, NEED_UPDATE);
 			} else {
-				for (what = FILE32; what < CACHEDIR_NUM; what++)
+                int	what = is_amd64() ? FILE64 : FILE32;
 					if (has_cachedir(what))
 						delete_stale(file, what);
 			}
@@ -3376,14 +3372,13 @@
 
 	/* If there is mkisofs, use it to create the required archives */
 	if (is_mkisofs()) {
-		for (what = FILE32; what < CACHEDIR_NUM; what++) {
+        what = is_amd64() ? FILE64 : FILE32;
 			if (has_cachedir(what) && is_dir_flag_on(what,
 			    NEED_UPDATE)) {
 				ret = mkisofs_archive(root, what);
 				if (ret != 0)
 					status = BAM_ERROR;
 			}
-		}
 		return (status);
 	}