Hello community, here is the log from the commit of package grub2 for openSUSE:Factory checked in at 2017-04-24 09:46:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/grub2 (Old) and /work/SRC/openSUSE:Factory/.grub2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grub2" Mon Apr 24 09:46:06 2017 rev:160 rq:485744 version:2.02~rc2 Changes: -------- --- /work/SRC/openSUSE:Factory/grub2/grub2.changes 2017-03-21 22:47:24.360961291 +0100 +++ /work/SRC/openSUSE:Factory/.grub2.new/grub2.changes 2017-04-24 09:46:08.930318001 +0200 @@ -1,0 +2,13 @@ +Sun Mar 26 18:08:20 UTC 2017 - [email protected] + +- update grub2-btrfs-workaround-grub2-once.patch to also store saved_entry + in additional environment block (boo#1031025) + +------------------------------------------------------------------- +Wed Mar 22 17:39:52 UTC 2017 - [email protected] + +- fix building with GCC (bsc#1030247) + * add grub2-fix-uninitialized-variable-in-btrfs-with-GCC7.patch + * grub2-add-FALLTHROUGH-annotations.patch + +------------------------------------------------------------------- New: ---- grub2-add-FALLTHROUGH-annotations.patch grub2-fix-uninitialized-variable-in-btrfs-with-GCC7.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ grub2.spec ++++++ --- /var/tmp/diff_new_pack.XxBmjc/_old 2017-04-24 09:46:12.029879605 +0200 +++ /var/tmp/diff_new_pack.XxBmjc/_new 2017-04-24 09:46:12.033879039 +0200 @@ -208,6 +208,8 @@ Patch79: grub2-efi-chainload-harder.patch Patch80: grub2-emu-4-all.patch Patch81: grub2-lvm-allocate-metadata-buffer-from-raw-contents.patch +Patch82: grub2-fix-uninitialized-variable-in-btrfs-with-GCC7.patch +Patch83: grub2-add-FALLTHROUGH-annotations.patch # Btrfs snapshot booting related patches Patch101: grub2-btrfs-01-add-ability-to-boot-from-subvolumes.patch Patch102: grub2-btrfs-02-export-subvolume-envvars.patch @@ -470,6 +472,8 @@ %patch79 -p1 %patch80 -p1 %patch81 -p1 +%patch82 -p1 +%patch83 -p1 %patch101 -p1 %patch102 -p1 %patch103 -p1 ++++++ grub2-add-FALLTHROUGH-annotations.patch ++++++ From: Andrei Borzenkov <[email protected]> Subject: [PATCH] i386, x86_64, ppc: fix switch fallthrough cases with GCC7 In util/getroot and efidisk slightly modify exitsing comment to mostly retain it but still make GCC7 compliant with respect to fall through annotation. In grub-core/lib/xzembed/xz_dec_lzma2.c it adds same comments as upstream (I plan to update after release). In grub-core/tests/setjmp_tets.c declare functions as "noreturn" to suppress GCC7 warning. In grub-core/gnulib/regexec.c move FALLTHROUGH outside of #ifdef block, otherwise it is not accepted by GCC7 parser (which requires that comment immediately precedes case statement). Otherwise add FALLTHROUGH comment. Closes: 50598 --- grub-core/commands/hdparm.c | 1 + grub-core/commands/nativedisk.c | 1 + grub-core/disk/cryptodisk.c | 1 + grub-core/disk/efi/efidisk.c | 2 +- grub-core/efiemu/mm.c | 1 + grub-core/gdb/cstub.c | 1 + grub-core/gnulib/regexec.c | 4 +++- grub-core/lib/xzembed/xz_dec_lzma2.c | 4 ++++ grub-core/lib/xzembed/xz_dec_stream.c | 6 ++++++ grub-core/loader/i386/linux.c | 3 +++ grub-core/tests/setjmp_test.c | 5 ++++- grub-core/video/ieee1275.c | 1 + grub-core/video/readers/jpeg.c | 1 + util/getroot.c | 2 +- util/grub-install.c | 1 + util/grub-mkimagexx.c | 1 + util/grub-mount.c | 1 + 17 files changed, 32 insertions(+), 4 deletions(-) diff --git a/grub-core/commands/hdparm.c b/grub-core/commands/hdparm.c index f6b178e..d3fa966 100644 --- a/grub-core/commands/hdparm.c +++ b/grub-core/commands/hdparm.c @@ -328,6 +328,7 @@ grub_cmd_hdparm (grub_extcmd_context_t ctxt, int argc, char **args) ata = ((struct grub_scsi *) disk->data)->data; break; } + /* FALLTHROUGH */ default: grub_disk_close (disk); return grub_error (GRUB_ERR_IO, "not an ATA device"); diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c index 345f97c..2f56a87 100644 --- a/grub-core/commands/nativedisk.c +++ b/grub-core/commands/nativedisk.c @@ -79,6 +79,7 @@ get_uuid (const char *name, char **uuid, int getnative) case GRUB_DISK_DEVICE_XEN: if (getnative) break; + /* FALLTHROUGH */ /* Virtual disks. */ /* GRUB dynamically generated files. */ diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c index 1e03a09..bd60a66 100644 --- a/grub-core/disk/cryptodisk.c +++ b/grub-core/disk/cryptodisk.c @@ -282,6 +282,7 @@ grub_cryptodisk_endecrypt (struct grub_cryptodisk *dev, break; case GRUB_CRYPTODISK_MODE_IV_PLAIN64: iv[1] = grub_cpu_to_le32 (sector >> 32); + /* FALLTHROUGH */ case GRUB_CRYPTODISK_MODE_IV_PLAIN: iv[0] = grub_cpu_to_le32 (sector & 0xFFFFFFFF); break; diff --git a/grub-core/disk/efi/efidisk.c b/grub-core/disk/efi/efidisk.c index e66b35d..5d2400f 100644 --- a/grub-core/disk/efi/efidisk.c +++ b/grub-core/disk/efi/efidisk.c @@ -224,7 +224,7 @@ name_devices (struct grub_efidisk_data *devices) { case GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE: is_hard_drive = 1; - /* Fall through by intention. */ + /* Intentionally fall through. */ case GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE: { struct grub_efidisk_data *parent, *parent2; diff --git a/grub-core/efiemu/mm.c b/grub-core/efiemu/mm.c index e606dbf..52a032f 100644 --- a/grub-core/efiemu/mm.c +++ b/grub-core/efiemu/mm.c @@ -417,6 +417,7 @@ fill_hook (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, default: grub_dprintf ("efiemu", "Unknown memory type %d. Assuming unusable\n", type); + /* FALLTHROUGH */ case GRUB_MEMORY_RESERVED: return grub_efiemu_add_to_mmap (addr, size, GRUB_EFI_UNUSABLE_MEMORY); diff --git a/grub-core/gdb/cstub.c b/grub-core/gdb/cstub.c index c94411b..b64acd7 100644 --- a/grub-core/gdb/cstub.c +++ b/grub-core/gdb/cstub.c @@ -336,6 +336,7 @@ grub_gdb_trap (int trap_no) /* sAA..AA: Step one instruction from AA..AA(optional). */ case 's': stepping = 1; + /* FALLTHROUGH */ /* cAA..AA: Continue at address AA..AA(optional). */ case 'c': diff --git a/grub-core/gnulib/regexec.c b/grub-core/gnulib/regexec.c index f632cd4..c8d2f09 100644 --- a/grub-core/gnulib/regexec.c +++ b/grub-core/gnulib/regexec.c @@ -4099,8 +4099,10 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node, case OP_UTF8_PERIOD: if (ch >= ASCII_CHARS) return false; - /* FALLTHROUGH */ + goto FALLTHROUGH_TO_OP_PERIOD; + FALLTHROUGH_TO_OP_PERIOD: #endif + case OP_PERIOD: if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE)) || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL))) diff --git a/grub-core/lib/xzembed/xz_dec_lzma2.c b/grub-core/lib/xzembed/xz_dec_lzma2.c index 8a2a118..af7b770 100644 --- a/grub-core/lib/xzembed/xz_dec_lzma2.c +++ b/grub-core/lib/xzembed/xz_dec_lzma2.c @@ -1044,6 +1044,8 @@ enum xz_ret xz_dec_lzma2_run( s->lzma2.sequence = SEQ_LZMA_PREPARE; + /* Fall through */ + case SEQ_LZMA_PREPARE: if (s->lzma2.compressed < RC_INIT_BYTES) return XZ_DATA_ERROR; @@ -1054,6 +1056,8 @@ enum xz_ret xz_dec_lzma2_run( s->lzma2.compressed -= RC_INIT_BYTES; s->lzma2.sequence = SEQ_LZMA_RUN; + /* Fall through */ + case SEQ_LZMA_RUN: /* * Set dictionary limit to indicate how much we want diff --git a/grub-core/lib/xzembed/xz_dec_stream.c b/grub-core/lib/xzembed/xz_dec_stream.c index c16b130..a29751e 100644 --- a/grub-core/lib/xzembed/xz_dec_stream.c +++ b/grub-core/lib/xzembed/xz_dec_stream.c @@ -750,6 +750,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b) s->sequence = SEQ_BLOCK_START; + /* FALLTHROUGH */ case SEQ_BLOCK_START: /* We need one byte of input to continue. */ if (b->in_pos == b->in_size) @@ -773,6 +774,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b) s->temp.pos = 0; s->sequence = SEQ_BLOCK_HEADER; + /* FALLTHROUGH */ case SEQ_BLOCK_HEADER: if (!fill_temp(s, b)) return XZ_OK; @@ -783,6 +785,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b) s->sequence = SEQ_BLOCK_UNCOMPRESS; + /* FALLTHROUGH */ case SEQ_BLOCK_UNCOMPRESS: ret = dec_block(s, b); if (ret != XZ_STREAM_END) @@ -810,6 +813,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b) s->sequence = SEQ_BLOCK_CHECK; + /* FALLTHROUGH */ case SEQ_BLOCK_CHECK: ret = hash_validate(s, b, 0); if (ret != XZ_STREAM_END) @@ -858,6 +862,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b) s->sequence = SEQ_INDEX_CRC32; + /* FALLTHROUGH */ case SEQ_INDEX_CRC32: ret = hash_validate(s, b, 1); if (ret != XZ_STREAM_END) @@ -866,6 +871,7 @@ static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b) s->temp.size = STREAM_HEADER_SIZE; s->sequence = SEQ_STREAM_FOOTER; + /* FALLTHROUGH */ case SEQ_STREAM_FOOTER: if (!fill_temp(s, b)) return XZ_OK; diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c index b15b8cc..083f941 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c @@ -984,10 +984,13 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), { case 'g': shift += 10; + /* FALLTHROUGH */ case 'm': shift += 10; + /* FALLTHROUGH */ case 'k': shift += 10; + /* FALLTHROUGH */ default: break; } diff --git a/grub-core/tests/setjmp_test.c b/grub-core/tests/setjmp_test.c index 390cb26..604a6ce 100644 --- a/grub-core/tests/setjmp_test.c +++ b/grub-core/tests/setjmp_test.c @@ -25,7 +25,10 @@ GRUB_MOD_LICENSE ("GPLv3+"); static grub_jmp_buf jmp_point; static int expected, ctr; -#pragma GCC diagnostic ignored "-Wmissing-noreturn" +/* This fixes GCC7 "unintentional fallthrough" warning */ +static void jmp0 (void) __attribute__ ((noreturn)); +static void jmp1 (void) __attribute__ ((noreturn)); +static void jmp2 (void) __attribute__ ((noreturn)); static void jmp0 (void) diff --git a/grub-core/video/ieee1275.c b/grub-core/video/ieee1275.c index 0b150ec..17a3dbb 100644 --- a/grub-core/video/ieee1275.c +++ b/grub-core/video/ieee1275.c @@ -181,6 +181,7 @@ grub_video_ieee1275_fill_mode_info (grub_ieee1275_phandle_t dev, case 32: out->reserved_mask_size = 8; out->reserved_field_pos = 24; + /* FALLTHROUGH */ case 24: out->red_mask_size = 8; diff --git a/grub-core/video/readers/jpeg.c b/grub-core/video/readers/jpeg.c index c3e0df2..21b0d9d 100644 --- a/grub-core/video/readers/jpeg.c +++ b/grub-core/video/readers/jpeg.c @@ -736,6 +736,7 @@ grub_jpeg_decode_jpeg (struct grub_jpeg_data *data) case JPEG_MARKER_SOS: /* Start Of Scan. */ if (grub_jpeg_decode_sos (data)) break; + /* FALLTHROUGH */ case JPEG_MARKER_RST0: /* Restart. */ case JPEG_MARKER_RST1: case JPEG_MARKER_RST2: diff --git a/util/getroot.c b/util/getroot.c index 92c0d70..847406f 100644 --- a/util/getroot.c +++ b/util/getroot.c @@ -99,7 +99,7 @@ grub_util_pull_device (const char *os_dev) { case GRUB_DEV_ABSTRACTION_LVM: grub_util_pull_lvm_by_command (os_dev); - /* Fallthrough in case that lvm-tools are unavailable. */ + /* Fallthrough - in case that lvm-tools are unavailable. */ case GRUB_DEV_ABSTRACTION_LUKS: grub_util_pull_devmapper (os_dev); return; diff --git a/util/grub-install.c b/util/grub-install.c index 6c89c2b..9074d3e 100644 --- a/util/grub-install.c +++ b/util/grub-install.c @@ -1851,6 +1851,7 @@ main (int argc, char *argv[]) free (mach_kernel); break; } + /* FALLTHROUGH */ case GRUB_INSTALL_PLATFORM_ARM_EFI: case GRUB_INSTALL_PLATFORM_ARM64_EFI: case GRUB_INSTALL_PLATFORM_IA64_EFI: diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c index f8faae8..e63f148 100644 --- a/util/grub-mkimagexx.c +++ b/util/grub-mkimagexx.c @@ -907,6 +907,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections, + sym->st_value - image_target->vaddr_offset)); } + /* FALLTHROUGH */ case R_IA64_LTOFF_FPTR22: *gpptr = grub_host_to_target64 (addend + sym_addr); grub_ia64_add_value_to_slot_21 ((grub_addr_t) target, diff --git a/util/grub-mount.c b/util/grub-mount.c index aca5f82..a25db8a 100644 --- a/util/grub-mount.c +++ b/util/grub-mount.c @@ -530,6 +530,7 @@ argp_parser (int key, char *arg, struct argp_state *state) if (arg[0] != '-') break; + /* FALLTHROUGH */ default: if (!arg) return 0; -- tg: (8014b7b..) bug/50598 (depends on: master) ++++++ grub2-btrfs-workaround-grub2-once.patch ++++++ --- /var/tmp/diff_new_pack.XxBmjc/_old 2017-04-24 09:46:12.341835482 +0200 +++ /var/tmp/diff_new_pack.XxBmjc/_new 2017-04-24 09:46:12.341835482 +0200 @@ -1,7 +1,7 @@ -Index: grub-2.02~beta3/grub-core/kern/fs.c +Index: grub-2.02~rc2/grub-core/kern/fs.c =================================================================== ---- grub-2.02~beta3.orig/grub-core/kern/fs.c -+++ grub-2.02~beta3/grub-core/kern/fs.c +--- grub-2.02~rc2.orig/grub-core/kern/fs.c ++++ grub-2.02~rc2/grub-core/kern/fs.c @@ -27,6 +27,7 @@ #include <grub/mm.h> #include <grub/term.h> @@ -24,10 +24,10 @@ ret += size; len -= size; sector -= ((size + offset) >> GRUB_DISK_SECTOR_BITS); -Index: grub-2.02~beta3/util/grub-editenv.c +Index: grub-2.02~rc2/util/grub-editenv.c =================================================================== ---- grub-2.02~beta3.orig/util/grub-editenv.c -+++ grub-2.02~beta3/util/grub-editenv.c +--- grub-2.02~rc2.orig/util/grub-editenv.c ++++ grub-2.02~rc2/util/grub-editenv.c @@ -23,8 +23,11 @@ #include <grub/util/misc.h> #include <grub/lib/envblk.h> @@ -437,10 +437,10 @@ if (strcmp (command, "create") == 0) grub_util_create_envblk_file (filename); else if (strcmp (command, "list") == 0) -Index: grub-2.02~beta3/util/grub.d/00_header.in +Index: grub-2.02~rc2/util/grub.d/00_header.in =================================================================== ---- grub-2.02~beta3.orig/util/grub.d/00_header.in -+++ grub-2.02~beta3/util/grub.d/00_header.in +--- grub-2.02~rc2.orig/util/grub.d/00_header.in ++++ grub-2.02~rc2/util/grub.d/00_header.in @@ -46,6 +46,11 @@ cat << EOF if [ -s \$prefix/grubenv ]; then load_env @@ -473,3 +473,14 @@ set boot_once=true else set default="${GRUB_DEFAULT}" +@@ -94,6 +105,10 @@ function savedefault { + if [ -z "\${boot_once}" ]; then + saved_entry="\${chosen}" + save_env saved_entry ++ if [ "\${env_block}" ] ; then ++ save_env -f "\${env_block}" saved_entry ++ fi ++ + fi + } + ++++++ grub2-fix-uninitialized-variable-in-btrfs-with-GCC7.patch ++++++ From: Andrei Borzenkov <[email protected]> Subject: [PATCH] btrfs: avoid "used uninitialized" error with GCC7 sblock was local and so considered new variable on every loop iteration. Closes: 50597 --- grub-core/fs/btrfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c index 9cffa91..4849c1c 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -227,11 +227,11 @@ grub_btrfs_read_logical (struct grub_btrfs_data *data, static grub_err_t read_sblock (grub_disk_t disk, struct grub_btrfs_superblock *sb) { + struct grub_btrfs_superblock sblock; unsigned i; grub_err_t err = GRUB_ERR_NONE; for (i = 0; i < ARRAY_SIZE (superblock_sectors); i++) { - struct grub_btrfs_superblock sblock; /* Don't try additional superblocks beyond device size. */ if (i && (grub_le_to_cpu64 (sblock.this_device.size) >> GRUB_DISK_SECTOR_BITS) <= superblock_sectors[i]) -- tg: (ec4af11..) bug/50597-light (depends on: master)
