grub-devel.gnu.org archive mirror
 help / color / mirror / Atom feed
From: Andrey Borzenkov <arvidjaar@gmail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Cc: floppym@gentoo.org
Subject: Re: HOST_* flags are not used by gnulib
Date: Sun, 27 Jul 2014 22:39:56 +0400	[thread overview]
Message-ID: <20140727223956.2b1f2dad@opensuse.site> (raw)
In-Reply-To: <CAJ0EP42st=RN46maDptQrDU1E-X8kuq079BmKpWOpuwGFjv2pA@mail.gmail.com>

В Sun, 27 Jul 2014 14:24:07 -0400
Mike Gilbert <floppym@gentoo.org> пишет:

> On Sun, Jul 27, 2014 at 2:10 PM, Vladimir 'phcoder' Serbinenko
> <phcoder@gmail.com> wrote:
> >
> > On 27 Jul 2014 20:07, "Mike Gilbert" <floppym@gentoo.org> wrote:
> >>
> >> On Wed, Jul 23, 2014 at 3:41 AM, Vladimir 'φ-coder/phcoder' Serbinenko
> >> <phcoder@gmail.com> 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.

./Makefile:	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(grub_syslinux2cfg_CPPFLAGS) $(CPPFLAGS) $(grub_syslinux2cfg_CFLAGS) $(CFLAGS) -MT grub-core/kern/emu/grub_syslinux2cfg-hostfs.o -MD -MP -MF grub-core/kern/emu/$(DEPDIR)/grub_syslinux2cfg-hostfs.Tpo -c -o grub-core/kern/emu/grub_syslinux2cfg-hostfs.o `test -f 'grub-core/kern/emu/hostfs.c' || echo '$(srcdir)/'`grub-core/kern/emu/hostfs.c

For now I'm afraid the only workaround is "do not do it" - any stray
C(PP)FLAGS during make run will confuse it ... :(

> lib/.deps-core/disk_module-disk.Tpo -c -o lib/disk_module-disk.o `test
> -f 'lib/disk.c' || echo '/home/floppym/src/grub/grub-core/'`lib/disk.c
> armv7a-hardfloat-linux-gnueabi-gcc: error: unrecognized argument in
> option ‘-march=x86-64’
> 
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel



  reply	other threads:[~2014-07-27 18:40 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-03 18:01 HOST_* flags are not used by gnulib Andrey Borzenkov
2014-07-23  7:41 ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-07-27 18:06   ` Mike Gilbert
2014-07-27 18:10     ` Vladimir 'phcoder' Serbinenko
2014-07-27 18:24       ` Mike Gilbert
2014-07-27 18:39         ` Andrey Borzenkov [this message]
2014-07-27 18:42           ` Vladimir 'φ-coder/phcoder' Serbinenko
2014-07-27 18:48             ` Andrey Borzenkov
2014-07-27 18:55               ` Mike Gilbert
2014-07-28  2:52   ` Andrey Borzenkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140727223956.2b1f2dad@opensuse.site \
    --to=arvidjaar@gmail.com \
    --cc=floppym@gentoo.org \
    --cc=grub-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).