On Fri, Feb 10, 2012 at 01:15:23PM -0500, Lennart Sorensen wrote: > On Fri, Feb 10, 2012 at 05:02:42PM +0100, Vladimir 'φ-coder/phcoder' > Serbinenko wrote: > > Yes, those are annoying but important since otherwise GCC might > > misoptimise the code. > > I will grab the latest code again and run the compiler and get the > exact message. > > > >Funny, the changelog says it was removed from powerpc about 3 weeks ago > > >by you: > > > > > >2012-01-18 Vladimir Serbinenko<phco...@gmail.com> > > > > > > * grub-core/kern/powerpc/dl.c (grub_arch_dl_get_tramp_got_size): > > > Remove > > > set but not used variable. > > Read again: I've just removed an unused variable. > > Hmm I misread it. You didn't remove grub_arch_dl_get_tramp_got_size, > just something in it. I wonder why the linker can find > grub_arch_dl_get_tramp_got_size then. > > > >Actually removing powerpc from here builds successfully and grub > > >is booting the machine, so it seems to work without it. > > It results in memory corruption. > > Where should grub_arch_dl_get_tramp_got_size come from? The linker > whines about it. > > So here are errors and warnings I am seeing with a current checkout: > > gcc-4.4 -DHAVE_CONFIG_H -I. -I../.. -Wall -W -I./include -DGRUB_UTIL=1 > -DGRUB_LIBDIR=\"/usr/lib/grub\" -DLOCALEDIR=\"/usr/share/locale\" > -DGRUB_MACHINE_EMU=1 -DGRUB_MACHINE=POWERPC_EMU -DGRUB_TARGET_CPU_POWERPC=1 > -DGRUB_FILE=\"util/getroot.c\" -I. -I../.. -I. -I../.. -I../../include > -I./include -I./grub-core/gnulib -I../../grub-core/gnulib -g > -Wall -O2 -Wall -W -Wshadow -Wold-style-declaration -Wold-style-definition > -Wpointer-arith -Wmissing-prototypes -Wundef -Wextra -Waddress -Warray-bounds > -Wattributes -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts > -Wclobbered -Wcomment -Wcoverage-mismatch -Wdeprecated > -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wempty-body > -Wendif-labels -Wfloat-equal -Wformat-contains-nul -Wformat-extra-args > -Wformat-security -Wformat-y2k -Wignored-qualifiers -Wimplicit > -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Winline > -Wint-to-pointer-cast -Winvalid-pch -Wunsafe-loop-optimizations -Wlogical-op > -Wmain -Wmissing-braces -W > missing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn > -Wmudflap -Wmultichar -Wnonnull -Woverflow -Wpacked-bitfield-compat > -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type > -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector -Wstrict-aliasing > -Wstrict-overflow -Wswitch -Wsync-nand -Wtrigraphs -Wtype-limits -Wundef > -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused > -Wunused-function -Wunused-label -Wunused-parameter -Wunused-result > -Wunused-value -Wunused-variable -Wvariadic-macros -Wvolatile-register-var > -Wwrite-strings -Wmissing-declarations -Wmissing-parameter-type > -Wmissing-prototypes -Wnested-externs -Wstrict-prototypes -Wpointer-sign > -Werror -Wno-undef -Wno-sign-compare -Wno-unused -Wno-unused-parameter > -Wno-redundant-decls -Wno-unreachable-code -Wno-conversion > -Wno-old-style-definition -c -o util/libgrubkern_a-getroot.o > `test -f 'util/getroot.c' || echo '../../'`util/getroot.c > cc1: warnings being treated as errors > ../../util/getroot.c: In function 'find_partition': > ../../util/getroot.c:1995: error: format '%lu' expects type 'long unsigned > int', but argument 3 has type 'grub_disk_addr_t' > ../../util/getroot.c: In function 'grub_util_biosdisk_get_grub_dev': > ../../util/getroot.c:2025: error: format '%lu' expects type 'long unsigned > int', but argument 3 has type 'grub_disk_addr_t' > > Then after changing %lu to %llu I get: > > gcc-4.4 -DHAVE_CONFIG_H -I. -I../.. -Wall -W -I./include -DGRUB_UTIL=1 > -DGRUB_LIBDIR=\"/usr/lib/grub\" -DLOCALEDIR=\"/usr/share/locale\" > -DGRUB_MACHINE_EMU=1 -DGRUB_MACHINE=POWERPC_EMU -DGRUB_TARGET_CPU_POWERPC=1 > -DGRUB_FILE=\"util/getroot.c\" -I. -I../.. -I. -I../.. -I../../include > -I./include -I./grub-core/gnulib -I../../grub-core/gnulib -g > -Wall -O2 -Wall -W -Wshadow -Wold-style-declaration -Wold-style-definition > -Wpointer-arith -Wmissing-prototypes -Wundef -Wextra -Waddress -Warray-bounds > -Wattributes -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts > -Wclobbered -Wcomment -Wcoverage-mismatch -Wdeprecated > -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wempty-body > -Wendif-labels -Wfloat-equal -Wformat-contains-nul -Wformat-extra-args > -Wformat-security -Wformat-y2k -Wignored-qualifiers -Wimplicit > -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Winline > -Wint-to-pointer-cast -Winvalid-pch -Wunsafe-loop-optimizations -Wlogical-op > -Wmain -Wmissing-braces -W > missing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn > -Wmudflap -Wmultichar -Wnonnull -Woverflow -Wpacked-bitfield-compat > -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type > -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector -Wstrict-aliasing > -Wstrict-overflow -Wswitch -Wsync-nand -Wtrigraphs -Wtype-limits -Wundef > -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused > -Wunused-function -Wunused-label -Wunused-parameter -Wunused-result > -Wunused-value -Wunused-variable -Wvariadic-macros -Wvolatile-register-var > -Wwrite-strings -Wmissing-declarations -Wmissing-parameter-type > -Wmissing-prototypes -Wnested-externs -Wstrict-prototypes -Wpointer-sign > -Werror -Wno-undef -Wno-sign-compare -Wno-unused -Wno-unused-parameter > -Wno-redundant-decls -Wno-unreachable-code -Wno-conversion > -Wno-old-style-definition -c -o util/libgrubkern_a-getroot.o > `test -f 'util/getroot.c' || echo '../../'`util/getroot.c > cc1: warnings being treated as errors > ../../util/getroot.c: In function 'grub_find_root_devices_from_mountinfo': > ../../util/getroot.c:448: error: assuming signed overflow does not occur when > simplifying conditional to constant > ../../util/getroot.c:448: error: assuming signed overflow does not occur when > simplifying conditional to constant > > I am not even sure what that one means. It's a new one to me.
I ignored that one thing and then got to: gcc-4.4 -DHAVE_CONFIG_H -I. -I../.. -Wall -W -I./include -DGRUB_UTIL=1 -DGRUB_LIBDIR=\"/usr/lib/grub\" -DLOCALEDIR=\"/usr/share/locale\" -DGRUB_MACHINE_EMU=1 -DGRUB_MACHINE=POWERPC_EMU -DGRUB_TARGET_CPU_POWERPC=1 -DGRUB_FILE=\"grub-core/kern/emu/hostdisk.c\" -I. -I../.. -I. -I../.. -I../../include -I./include -I./grub-core/gnulib -I../../grub-core/gnulib -g -Wall -O2 -Wall -W -Wshadow -Wold-style-declaration -Wold-style-definition -Wpointer-arith -Wmissing-prototypes -Wundef -Wextra -Waddress -Warray-bounds -Wattributes -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered -Wcomment -Wcoverage-mismatch -Wdeprecated -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equal -Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y2k -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Winline -Wint-to-pointer-cast -Winvalid-pch -Wunsafe-loop-optimizations -Wlogical-op -Wmain -Wmissing-braces -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn -Wmudflap -Wmultichar -Wnonnull -Woverflow -Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector -Wstrict-aliasing -Wstrict-overflow -Wswitch -Wsync-nand -Wtrigraphs -Wtype-limits -Wundef -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-result -Wunused-value -Wunused-variable -Wvariadic-macros -Wvolatile-register-var -Wwrite-strings -Wmissing-declarations -Wmissing-parameter-type -Wmissing-prototypes -Wnested-externs -Wstrict-prototypes -Wpointer-sign -Werror -Wno-undef -Wno-sign-compare -Wno-unused -Wno-unused-parameter -Wno-redundant-decls -Wno-unreachable-code -Wno-conversion -Wno-old-style-definition -c -o grub-core/kern/emu/libgrubkern_a-hostdisk.o `test -f 'grub-core/kern/emu/hostdisk.c' || echo '../../'`grub-core/kern/emu/hostdisk.c cc1: warnings being treated as errors ../../grub-core/kern/emu/hostdisk.c: In function 'open_device': ../../include/grub/list.h:41: error: dereferencing pointer 'linux_partition_cache_list.66' does break strict-aliasing rules ../../grub-core/kern/emu/hostdisk.c:717: note: initialized from here And also: gcc-4.4 -DHAVE_CONFIG_H -I. -I../.. -Wall -W -I./include -DGRUB_UTIL=1 -DGRUB_LIBDIR=\"/usr/lib/grub\" -DLOCALEDIR=\"/usr/share/locale\" -DGRUB_MACHINE_EMU=1 -DGRUB_MACHINE=POWERPC_EMU -DGRUB_TARGET_CPU_POWERPC=1 -DGRUB_FILE=\"grub-core/disk/luks.c\" -I. -I../.. -I. -I../.. -I../../include -I./include -I./grub-core/gnulib -I../../grub-core/gnulib -g -Wall -O2 -Wall -W -Wshadow -Wold-style-declaration -Wold-style-definition -Wpointer-arith -Wmissing-prototypes -Wundef -Wextra -Waddress -Warray-bounds -Wattributes -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered -Wcomment -Wcoverage-mismatch -Wdeprecated -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equal -Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y2k -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Winline -Wint-to-pointer-cast -Winvalid-pch -Wunsafe-loop-optimizations -Wlogical-op -Wmain -Wmissing-braces -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn -Wmudflap -Wmultichar -Wnonnull -Woverflow -Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector -Wstrict-aliasing -Wstrict-overflow -Wswitch -Wsync-nand -Wtrigraphs -Wtype-limits -Wundef -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-result -Wunused-value -Wunused-variable -Wvariadic-macros -Wvolatile-register-var -Wwrite-strings -Wmissing-declarations -Wmissing-parameter-type -Wmissing-prototypes -Wnested-externs -Wstrict-prototypes -Wpointer-sign -Werror -Wno-undef -Wno-sign-compare -Wno-unused -Wno-unused-parameter -Wno-redundant-decls -Wno-unreachable-code -Wno-conversion -Wno-old-style-definition -c -o grub-core/disk/libgrubkern_a-luks.o `test -f 'grub-core/disk/luks.c' || echo '../../'`grub-core/disk/luks.c cc1: warnings being treated as errors ../../grub-core/disk/luks.c: In function 'configure_ciphers': ../../grub-core/disk/luks.c:107: error: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 ../../grub-core/disk/luks.c: In function 'grub_luks_init': ../../include/grub/list.h:40: error: dereferencing pointer 'cr.27' does break strict-aliasing rules ../../include/grub/list.h:37: error: dereferencing pointer 'cr.27' does break strict-aliasing rules ../../include/grub/cryptodisk.h:114: note: initialized from here ../../include/grub/list.h:41: error: dereferencing pointer 'grub_cryptodisk_list.26' does break strict-aliasing rules ../../include/grub/cryptodisk.h:114: note: initialized from here ../../grub-core/disk/luks.c: In function 'grub_mod_init': ../../include/grub/list.h:40: error: dereferencing pointer 'cr.27' does break strict-aliasing rules ../../include/grub/list.h:37: error: dereferencing pointer 'cr.27' does break strict-aliasing rules ../../include/grub/cryptodisk.h:114: note: initialized from here ../../include/grub/list.h:41: error: dereferencing pointer 'grub_cryptodisk_list.26' does break strict-aliasing rules ../../include/grub/cryptodisk.h:114: note: initialized from here ../../grub-core/disk/luks.c: In function 'grub_luks_fini': ../../include/grub/list.h:52: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:51: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:50: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:50: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:49: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:48: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:48: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:47: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/cryptodisk.h:121: note: initialized from here ../../grub-core/disk/luks.c: In function 'grub_mod_fini': ../../include/grub/list.h:52: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:51: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:50: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:50: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:49: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:48: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:48: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/list.h:47: error: dereferencing pointer 'cr.28' does break strict-aliasing rules ../../include/grub/cryptodisk.h:121: note: initialized from here ../../grub-core/disk/luks.c: In function 'configure_ciphers': ../../grub-core/disk/luks.c:107: error: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 ../../grub-core/disk/luks.c:68: error: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 ../../grub-core/disk/luks.c:107: error: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 -- Len Sorensen _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel