[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: R_ARM(_THM)_MOVT_ABS(_NC) support
From: |
Leif Lindholm |
Subject: |
Re: R_ARM(_THM)_MOVT_ABS(_NC) support |
Date: |
Tue, 3 Feb 2015 21:37:30 +0000 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Sat, Jan 31, 2015 at 01:10:02PM +0100, Michael Zimmermann wrote:
> What I almost forgot is that you need the following patch to fix
> compilation with O2/O3(it fixes warnings):
I can verify that this patch works, and makes it possible to compile
with gcc 4.9 at -O3 (so is effectively a prerequisite for the added
relocation handling patch I just sent).
The only question I would have is whether this approach is considered
OK, or whether we should try to figure out why gcc spots potential
"used uninitialised" paths in the code?
/
Leif
> From 54fe81d049c1ea24f8dc72eff16e88bf39291c7d Mon Sep 17 00:00:00 2001
> From: M1cha <address@hidden>
> Date: Sat, 31 Jan 2015 13:08:43 +0100
> Subject: [PATCH 1/1] fix compilation with O2/O3
>
> ---
> grub-core/commands/verify.c | 2 +-
> grub-core/fs/hfsplus.c | 8 ++++----
> grub-core/gnulib/regcomp.c | 2 +-
> grub-core/normal/main.c | 2 +-
> 4 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/grub-core/commands/verify.c b/grub-core/commands/verify.c
> index 6569391..9620a3b 100644
> --- a/grub-core/commands/verify.c
> +++ b/grub-core/commands/verify.c
> @@ -454,7 +454,7 @@ grub_verify_signature_real (char *buf, grub_size_t size,
> grub_err_t err;
> grub_size_t i;
> gcry_mpi_t mpis[10];
> - grub_uint8_t type;
> + grub_uint8_t type = 0;
>
> err = read_packet_header (sig, &type, &len);
> if (err)
> diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c
> index 8f07f85..f7a43f1 100644
> --- a/grub-core/fs/hfsplus.c
> +++ b/grub-core/fs/hfsplus.c
> @@ -786,8 +786,8 @@ grub_hfsplus_iterate_dir (grub_fshelp_node_t dir,
> };
>
> struct grub_hfsplus_key_internal intern;
> - struct grub_hfsplus_btnode *node;
> - grub_disk_addr_t ptr;
> + struct grub_hfsplus_btnode *node = NULL;
> + grub_disk_addr_t ptr = 0;
>
> {
> struct grub_fshelp_node *fsnode;
> @@ -970,8 +970,8 @@ grub_hfsplus_label (grub_device_t device, char **label)
> struct grub_hfsplus_catkey *catkey;
> int i, label_len;
> struct grub_hfsplus_key_internal intern;
> - struct grub_hfsplus_btnode *node;
> - grub_disk_addr_t ptr;
> + struct grub_hfsplus_btnode *node = NULL;
> + grub_disk_addr_t ptr = 0;
>
> *label = 0;
>
> diff --git a/grub-core/gnulib/regcomp.c b/grub-core/gnulib/regcomp.c
> index 596e0cf..1c36c7e 100644
> --- a/grub-core/gnulib/regcomp.c
> +++ b/grub-core/gnulib/regcomp.c
> @@ -3143,7 +3143,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t
> *dfa, re_token_t *token,
>
> while (1)
> {
> - bracket_elem_t start_elem, end_elem;
> + bracket_elem_t start_elem = {0}, end_elem = {0};
> unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE];
> unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE];
> reg_errcode_t ret;
> diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
> index 623b93b..78a70a8 100644
> --- a/grub-core/normal/main.c
> +++ b/grub-core/normal/main.c
> @@ -445,7 +445,7 @@ grub_cmdline_run (int nested, int force_auth)
>
> while (1)
> {
> - char *line;
> + char *line = NULL;
>
> if (grub_normal_exit_level)
> break;
> --
> 2.1.0
>
> On Sat, Jan 31, 2015 at 1:01 PM, Michael Zimmermann
> <address@hidden> wrote:
> > I forgot the Linux distro: (it doesn't matter since I'm cross
> > compiling) Ubuntu 14.10
> >
> > On Sat, Jan 31, 2015 at 1:00 PM, Michael Zimmermann
> > <address@hidden> wrote:
> >> The configure line:
> >> ./configure --host arm-linux-gnueabihf CFLAGS='-static-libgcc
> >> -Wl,-static' TARGET_CFLAGS='-O3'
> >>
> >> My compiler is gcc-linaro-arm-linux-gnueabihf-4.9-2014.09 (
> >> http://releases.linaro.org/14.09/components/toolchain/binaries )
> >>
> >> gcc -v :
> >> Using built-in specs.
> >> COLLECT_GCC=./prebuilts/gcc/linux-x86/arm/arm-linux-gnueabihf-4.9/bin/arm-linux-gnueabihf-gcc
> >> COLLECT_LTO_WRAPPER=/media/Data/repositories/git/bigG/prebuilts/gcc/linux-x86/arm/arm-linux-gnueabihf-4.9/bin/../libexec/gcc/arm-linux-gnueabihf/4.9.2/lto-wrapper
> >> Target: arm-linux-gnueabihf
> >> Configured with:
> >> /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/gcc-linaro-4.9-2014.09/configure
> >> --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu
> >> --target=arm-linux-gnueabihf
> >> --prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install
> >> --with-sysroot=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc
> >> --enable-languages=c,c++,fortran --disable-multilib --enable-multiarch
> >> --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3-d16
> >> --with-float=hard --with-pkgversion='crosstool-NG
> >> linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09'
> >> --with-bugurl=https://bugs.launchpad.net/gcc-linaro
> >> --enable-__cxa_atexit --enable-libmudflap --enable-libgomp
> >> --enable-libssp
> >> --with-gmp=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static
> >> --with-mpfr=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static
> >> --with-mpc=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static
> >> --with-isl=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static
> >> --with-cloog=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static
> >> --with-libelf=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static
> >> --enable-threads=posix --disable-libstdcxx-pch
> >> --enable-linker-build-id --enable-plugin --enable-gold
> >> --with-local-prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc
> >> --enable-c99 --enable-long-long --with-mode=thumb --disable-multilib
> >> --with-float=hard
> >> Thread model: posix
> >> gcc version 4.9.2 20140904 (prerelease) (crosstool-NG
> >> linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09)
> >>
> >> Michael
> >>
> >> On Sat, Jan 31, 2015 at 12:45 PM, Leif Lindholm
> >> <address@hidden> wrote:
> >>> On Sat, Jan 31, 2015 at 12:35:34PM +0100, Michael Zimmermann wrote:
> >>>> when compiling grub with O2 or O3 on a ARM target mkimage fails with
> >>>> "error: relocation4 X is not implemented yet" for
> >>>> R_ARM_THM_MOVT_ABS and R_ARM_THM_MOVW_ABS_NC (thumb)
> >>>> or R_ARM_MOVW_ABS and R_ARM_MOVW_ABS_NC (arm)
> >>>
> >>> To help me try to reproduce:
> >>> What are your complete config options (how are you adding the -O2/O3)?
> >>> What toolchain version (output of gcc -v)?
> >>> And (for my own curiosity) which Linux distribution?
> >>>
> >>> /
> >>> Leif
> >>>
> >>> _______________________________________________
> >>> Grub-devel mailing list
> >>> address@hidden
> >>> https://lists.gnu.org/mailman/listinfo/grub-devel
>
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/grub-devel
- Re: R_ARM(_THM)_MOVT_ABS(_NC) support, Leif Lindholm, 2015/02/01
- Re: R_ARM(_THM)_MOVT_ABS(_NC) support, Michael Zimmermann, 2015/02/01
- Re: R_ARM(_THM)_MOVT_ABS(_NC) support, Leif Lindholm, 2015/02/01
- Re: R_ARM(_THM)_MOVT_ABS(_NC) support, Michael Zimmermann, 2015/02/01
- Re: R_ARM(_THM)_MOVT_ABS(_NC) support, Michael Zimmermann, 2015/02/03
- Re: R_ARM(_THM)_MOVT_ABS(_NC) support, Leif Lindholm, 2015/02/03
- Re: R_ARM(_THM)_MOVT_ABS(_NC) support, Michael Zimmermann, 2015/02/03
- Re: R_ARM(_THM)_MOVT_ABS(_NC) support, Leif Lindholm, 2015/02/03
- Re: R_ARM(_THM)_MOVT_ABS(_NC) support,
Leif Lindholm <=