summaryrefslogtreecommitdiffstats
path: root/meta/recipes-bsp/grub/files/0002-i386-x86_64-ppc-fix-switch-fallthrough-cases-with-GC.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-bsp/grub/files/0002-i386-x86_64-ppc-fix-switch-fallthrough-cases-with-GC.patch')
-rw-r--r--meta/recipes-bsp/grub/files/0002-i386-x86_64-ppc-fix-switch-fallthrough-cases-with-GC.patch248
1 files changed, 248 insertions, 0 deletions
diff --git a/meta/recipes-bsp/grub/files/0002-i386-x86_64-ppc-fix-switch-fallthrough-cases-with-GC.patch b/meta/recipes-bsp/grub/files/0002-i386-x86_64-ppc-fix-switch-fallthrough-cases-with-GC.patch
new file mode 100644
index 0000000000..94f048c28b
--- /dev/null
+++ b/meta/recipes-bsp/grub/files/0002-i386-x86_64-ppc-fix-switch-fallthrough-cases-with-GC.patch
@@ -0,0 +1,248 @@
1From 4bd4a88725604471fdbd86316c91967a7f4dba5a Mon Sep 17 00:00:00 2001
2From: Andrei Borzenkov <arvidjaar@gmail.com>
3Date: Tue, 4 Apr 2017 19:23:55 +0300
4Subject: [PATCH 2/4] i386, x86_64, ppc: fix switch fallthrough cases with GCC7
5
6In util/getroot and efidisk slightly modify exitsing comment to mostly
7retain it but still make GCC7 compliant with respect to fall through
8annotation.
9
10In grub-core/lib/xzembed/xz_dec_lzma2.c it adds same comments as
11upstream.
12
13In grub-core/tests/setjmp_tets.c declare functions as "noreturn" to
14suppress GCC7 warning.
15
16In grub-core/gnulib/regexec.c use new __attribute__, because existing
17annotation is not recognized by GCC7 parser (which requires that comment
18immediately precedes case statement).
19
20Otherwise add FALLTHROUGH comment.
21
22Closes: 50598
23---
24Upstream-Status: Backport
25Signed-off-by: Khem Raj <raj.khem@gmail.com>
26
27 grub-core/commands/hdparm.c | 1 +
28 grub-core/commands/nativedisk.c | 1 +
29 grub-core/disk/cryptodisk.c | 1 +
30 grub-core/disk/efi/efidisk.c | 2 +-
31 grub-core/efiemu/mm.c | 1 +
32 grub-core/gdb/cstub.c | 1 +
33 grub-core/gnulib/regexec.c | 3 +++
34 grub-core/lib/xzembed/xz_dec_lzma2.c | 4 ++++
35 grub-core/lib/xzembed/xz_dec_stream.c | 6 ++++++
36 grub-core/loader/i386/linux.c | 3 +++
37 grub-core/tests/setjmp_test.c | 5 ++++-
38 grub-core/video/ieee1275.c | 1 +
39 grub-core/video/readers/jpeg.c | 1 +
40 util/getroot.c | 2 +-
41 util/grub-install.c | 1 +
42 util/grub-mkimagexx.c | 1 +
43 util/grub-mount.c | 1 +
44 17 files changed, 32 insertions(+), 3 deletions(-)
45
46Index: grub-2.00/grub-core/commands/hdparm.c
47===================================================================
48--- grub-2.00.orig/grub-core/commands/hdparm.c
49+++ grub-2.00/grub-core/commands/hdparm.c
50@@ -328,6 +328,7 @@ grub_cmd_hdparm (grub_extcmd_context_t c
51 ata = ((struct grub_scsi *) disk->data)->data;
52 break;
53 }
54+ /* FALLTHROUGH */
55 default:
56 return grub_error (GRUB_ERR_IO, "not an ATA device");
57 }
58Index: grub-2.00/grub-core/disk/cryptodisk.c
59===================================================================
60--- grub-2.00.orig/grub-core/disk/cryptodisk.c
61+++ grub-2.00/grub-core/disk/cryptodisk.c
62@@ -268,6 +268,7 @@ grub_cryptodisk_endecrypt (struct grub_c
63 break;
64 case GRUB_CRYPTODISK_MODE_IV_PLAIN64:
65 iv[1] = grub_cpu_to_le32 (sector >> 32);
66+ /* FALLTHROUGH */
67 case GRUB_CRYPTODISK_MODE_IV_PLAIN:
68 iv[0] = grub_cpu_to_le32 (sector & 0xFFFFFFFF);
69 break;
70Index: grub-2.00/grub-core/disk/efi/efidisk.c
71===================================================================
72--- grub-2.00.orig/grub-core/disk/efi/efidisk.c
73+++ grub-2.00/grub-core/disk/efi/efidisk.c
74@@ -262,7 +262,7 @@ name_devices (struct grub_efidisk_data *
75 {
76 case GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE:
77 is_hard_drive = 1;
78- /* Fall through by intention. */
79+ /* Intentionally fall through. */
80 case GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE:
81 {
82 struct grub_efidisk_data *parent, *parent2;
83Index: grub-2.00/grub-core/efiemu/mm.c
84===================================================================
85--- grub-2.00.orig/grub-core/efiemu/mm.c
86+++ grub-2.00/grub-core/efiemu/mm.c
87@@ -410,6 +410,7 @@ grub_efiemu_mmap_fill (void)
88 default:
89 grub_dprintf ("efiemu",
90 "Unknown memory type %d. Assuming unusable\n", type);
91+ /* FALLTHROUGH */
92 case GRUB_MEMORY_RESERVED:
93 return grub_efiemu_add_to_mmap (addr, size,
94 GRUB_EFI_UNUSABLE_MEMORY);
95Index: grub-2.00/grub-core/gdb/cstub.c
96===================================================================
97--- grub-2.00.orig/grub-core/gdb/cstub.c
98+++ grub-2.00/grub-core/gdb/cstub.c
99@@ -336,6 +336,7 @@ grub_gdb_trap (int trap_no)
100 /* sAA..AA: Step one instruction from AA..AA(optional). */
101 case 's':
102 stepping = 1;
103+ /* FALLTHROUGH */
104
105 /* cAA..AA: Continue at address AA..AA(optional). */
106 case 'c':
107Index: grub-2.00/grub-core/gnulib/regexec.c
108===================================================================
109--- grub-2.00.orig/grub-core/gnulib/regexec.c
110+++ grub-2.00/grub-core/gnulib/regexec.c
111@@ -4104,6 +4104,9 @@ check_node_accept (const re_match_contex
112 case OP_UTF8_PERIOD:
113 if (ch >= ASCII_CHARS)
114 return false;
115+#if defined __GNUC__ && __GNUC__ >= 7
116+ __attribute__ ((fallthrough));
117+#endif
118 /* FALLTHROUGH */
119 #endif
120 case OP_PERIOD:
121Index: grub-2.00/grub-core/lib/xzembed/xz_dec_lzma2.c
122===================================================================
123--- grub-2.00.orig/grub-core/lib/xzembed/xz_dec_lzma2.c
124+++ grub-2.00/grub-core/lib/xzembed/xz_dec_lzma2.c
125@@ -1042,6 +1042,8 @@ enum xz_ret xz_dec_lzma2_run(
126
127 s->lzma2.sequence = SEQ_LZMA_PREPARE;
128
129+ /* Fall through */
130+
131 case SEQ_LZMA_PREPARE:
132 if (s->lzma2.compressed < RC_INIT_BYTES)
133 return XZ_DATA_ERROR;
134@@ -1052,6 +1054,8 @@ enum xz_ret xz_dec_lzma2_run(
135 s->lzma2.compressed -= RC_INIT_BYTES;
136 s->lzma2.sequence = SEQ_LZMA_RUN;
137
138+ /* Fall through */
139+
140 case SEQ_LZMA_RUN:
141 /*
142 * Set dictionary limit to indicate how much we want
143Index: grub-2.00/grub-core/lib/xzembed/xz_dec_stream.c
144===================================================================
145--- grub-2.00.orig/grub-core/lib/xzembed/xz_dec_stream.c
146+++ grub-2.00/grub-core/lib/xzembed/xz_dec_stream.c
147@@ -749,6 +749,7 @@ static enum xz_ret dec_main(struct xz_de
148
149 s->sequence = SEQ_BLOCK_START;
150
151+ /* FALLTHROUGH */
152 case SEQ_BLOCK_START:
153 /* We need one byte of input to continue. */
154 if (b->in_pos == b->in_size)
155@@ -772,6 +773,7 @@ static enum xz_ret dec_main(struct xz_de
156 s->temp.pos = 0;
157 s->sequence = SEQ_BLOCK_HEADER;
158
159+ /* FALLTHROUGH */
160 case SEQ_BLOCK_HEADER:
161 if (!fill_temp(s, b))
162 return XZ_OK;
163@@ -782,6 +784,7 @@ static enum xz_ret dec_main(struct xz_de
164
165 s->sequence = SEQ_BLOCK_UNCOMPRESS;
166
167+ /* FALLTHROUGH */
168 case SEQ_BLOCK_UNCOMPRESS:
169 ret = dec_block(s, b);
170 if (ret != XZ_STREAM_END)
171@@ -809,6 +812,7 @@ static enum xz_ret dec_main(struct xz_de
172
173 s->sequence = SEQ_BLOCK_CHECK;
174
175+ /* FALLTHROUGH */
176 case SEQ_BLOCK_CHECK:
177 ret = hash_validate(s, b, 0);
178 if (ret != XZ_STREAM_END)
179@@ -863,6 +867,7 @@ static enum xz_ret dec_main(struct xz_de
180
181 s->sequence = SEQ_INDEX_CRC32;
182
183+ /* FALLTHROUGH */
184 case SEQ_INDEX_CRC32:
185 ret = hash_validate(s, b, 1);
186 if (ret != XZ_STREAM_END)
187@@ -871,6 +876,7 @@ static enum xz_ret dec_main(struct xz_de
188 s->temp.size = STREAM_HEADER_SIZE;
189 s->sequence = SEQ_STREAM_FOOTER;
190
191+ /* FALLTHROUGH */
192 case SEQ_STREAM_FOOTER:
193 if (!fill_temp(s, b))
194 return XZ_OK;
195Index: grub-2.00/grub-core/loader/i386/linux.c
196===================================================================
197--- grub-2.00.orig/grub-core/loader/i386/linux.c
198+++ grub-2.00/grub-core/loader/i386/linux.c
199@@ -977,10 +977,13 @@ grub_cmd_linux (grub_command_t cmd __att
200 {
201 case 'g':
202 shift += 10;
203+ /* FALLTHROUGH */
204 case 'm':
205 shift += 10;
206+ /* FALLTHROUGH */
207 case 'k':
208 shift += 10;
209+ /* FALLTHROUGH */
210 default:
211 break;
212 }
213Index: grub-2.00/grub-core/video/readers/jpeg.c
214===================================================================
215--- grub-2.00.orig/grub-core/video/readers/jpeg.c
216+++ grub-2.00/grub-core/video/readers/jpeg.c
217@@ -701,6 +701,7 @@ grub_jpeg_decode_jpeg (struct grub_jpeg_
218 case JPEG_MARKER_SOS: /* Start Of Scan. */
219 if (grub_jpeg_decode_sos (data))
220 break;
221+ /* FALLTHROUGH */
222 case JPEG_MARKER_RST0: /* Restart. */
223 case JPEG_MARKER_RST1:
224 case JPEG_MARKER_RST2:
225Index: grub-2.00/util/grub-mkimagexx.c
226===================================================================
227--- grub-2.00.orig/util/grub-mkimagexx.c
228+++ grub-2.00/util/grub-mkimagexx.c
229@@ -485,6 +485,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e
230 + sym->st_value
231 - image_target->vaddr_offset));
232 }
233+ /* FALLTHROUGH */
234 case R_IA64_LTOFF_FPTR22:
235 *gpptr = grub_host_to_target64 (addend + sym_addr);
236 add_value_to_slot_21 ((grub_addr_t) target,
237Index: grub-2.00/util/grub-mount.c
238===================================================================
239--- grub-2.00.orig/util/grub-mount.c
240+++ grub-2.00/util/grub-mount.c
241@@ -487,6 +487,7 @@ argp_parser (int key, char *arg, struct
242 if (arg[0] != '-')
243 break;
244
245+ /* FALLTHROUGH */
246 default:
247 if (!arg)
248 return 0;