grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: HOST_* flags are not used by gnulib


From: Mike Gilbert
Subject: Re: HOST_* flags are not used by gnulib
Date: Sun, 27 Jul 2014 14:55:12 -0400

On Sun, Jul 27, 2014 at 2:48 PM, Andrey Borzenkov <address@hidden> wrote:
> В Sun, 27 Jul 2014 20:42:36 +0200
> Vladimir 'φ-coder/phcoder' Serbinenko <address@hidden> пишет:
>
>> On 27.07.2014 20:39, Andrey Borzenkov wrote:
>> > В Sun, 27 Jul 2014 14:24:07 -0400
>> > Mike Gilbert <address@hidden> пишет:
>> >
>> >> On Sun, Jul 27, 2014 at 2:10 PM, Vladimir 'phcoder' Serbinenko
>> >> <address@hidden> wrote:
>> >>>
>> >>> On 27 Jul 2014 20:07, "Mike Gilbert" <address@hidden> wrote:
>> >>>>
>> >>>> On Wed, Jul 23, 2014 at 3:41 AM, Vladimir 'φ-coder/phcoder' Serbinenko
>> >>>> <address@hidden> wrote:
>> >>>>> On 03.04.2014 20:01, Andrey Borzenkov wrote:
>> >>>>>> I noticed that host flags are not propagated to gnulib. This does not
>> >>>>>> feel right; in particular I noticed it because attempt to enable
>> >>>>>> debugging for host tools (HOST_CFLAGS=-g) did not work for gnulib
>> >>>>>> files.
>> >>>>>>
>> >>>>> It should be just CFLAGS (refer to INSTALL)
>> >>>>
>> >>>> Last I checked, CFLAGS ends up getting used for both host utilities
>> >>>> and at least some of the target/boot code. That might be a bug in the
>> >>>> build system.
>> >>>>
>> >>>>
>> >>> CFLAGS is used as default for TARGET_CFLAGS. If it happens in another
>> >>> context it's most likely a bug. Can you provide more details?
>> >>
>> >> Sure. If I configure with this script:
>> >>
>> >> #!/bin/sh
>> >> CHOST=x86_64-pc-linux-gnu
>> >> CBUILD=$CHOST
>> >> CTARGET=armv7a-hardfloat-linux-gnueabi
>> >> S="${HOME}"/src/grub
>> >>
>> >> # This will cause a build failure if passed to armv7a compiler
>> >> export CFLAGS="-march=x86-64"
>> >> export TARGET_CFLAGS="-Os"
>> >>
>> >> "${S}"/configure --build="${CBUILD}" --host="${CHOST}" 
>> >> --target="${CTARGET}"
>> >>
>> >>
>> >> I get this build failure:
>> >>
>> >> armv7a-hardfloat-linux-gnueabi-gcc -DHAVE_CONFIG_H -I.
>> >> -I/home/floppym/src/grub/grub-core -I..  -Wall -W
>> >> -I/home/floppym/src/grub/include -I../include  -DGRUB_MACHINE_UBOOT=1
>> >> -DGRUB_MACHINE=ARM_UBOOT -nostdinc -isystem
>> >> /usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/4.8.3/include
>> >> -DGRUB_FILE=\"lib/disk.c\" -I. -I/home/floppym/src/grub/grub-core -I..
>> >> -I/home/floppym/src/grub -I/home/floppym/src/grub/include -I../include
>> >> -I/home/floppym/src/grub/grub-core/lib/libgcrypt-grub/src/     -Os
>> >> -Wall -W -Wshadow -Wpointer-arith -Wundef -Wchar-subscripts -Wcomment
>> >> -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero
>> >> -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k
>> >> -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wmain
>> >> -Wmissing-braces -Wmissing-format-attribute -Wmultichar -Wparentheses
>> >> -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wswitch
>> >> -Wtrigraphs -Wunknown-pragmas -Wunused -Wunused-function
>> >> -Wunused-label -Wunused-parameter -Wunused-value  -Wunused-variable
>> >> -Wwrite-strings -Wnested-externs -Wstrict-prototypes -g
>> >> -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations
>> >> -Wcast-align  -Wextra -Wattributes -Wendif-labels -Winit-self
>> >> -Wint-to-pointer-cast -Winvalid-pch -Wmissing-field-initializers
>> >> -Wnonnull -Woverflow -Wvla -Wpointer-to-int-cast -Wstrict-aliasing
>> >> -Wvariadic-macros -Wvolatile-register-var -Wpointer-sign
>> >> -Wmissing-prototypes -Wmissing-declarations -Wformat=2
>> >> -freg-struct-return -fno-dwarf2-cfi-asm
>> >> -fno-asynchronous-unwind-tables -mlong-calls -mthumb-interwork -Qn
>> >> -fno-stack-protector -mno-unaligned-access -Wtrampolines -Werror
>> >> -ffreestanding  -march=x86-64 -MT lib/disk_module-disk.o -MD -MP -MF
>> >
>> > This is Automake generated rule for dependency tracking. It adds
>> > $(CFLAGS) indeed. Not sure how we can work around it.
>> >
>> CFLAGS is supposed to be set to TARGET_CFLAGS in grub-core/Makefile. I
>> don't know why it didn't happen.
>
> It sets AM_CFLAGS, not CFLAGS.
>
> AM_CFLAGS = $(TARGET_CFLAGS)
>

Right. I end up with this in grub-core/Makefile:

CFLAGS = -march=x86-64
...
AM_CFLAGS = $(TARGET_CFLAGS)
...
lib/disk_module-disk.o: lib/disk.c
        $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
$(disk_module_CPPFLAGS) $(CPPFLAGS) $(disk_module_CFLAGS) $(CFLAGS)
-MT lib/disk_module-disk.o -MD -MP -MF
lib/$(DEPDIR)/disk_module-disk.Tpo -c -o lib/disk_module-disk.o `test
-f 'lib/disk.c' || echo '$(srcdir)/'`lib/disk.c



reply via email to

[Prev in Thread] Current Thread [Next in Thread]