public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "rguenther at suse dot de" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/65837] [arm-linux-gnueabihf] lto1 target specific builtin not available
Date: Wed, 29 Apr 2015 07:42:00 -0000	[thread overview]
Message-ID: <bug-65837-4-NiAO7nxHSu@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-65837-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65837

--- Comment #20 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 28 Apr 2015, prathamesh3492 at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65837
> 
> --- Comment #17 from prathamesh3492 at gcc dot gnu.org ---
> (In reply to clyon from comment #16)
> > (In reply to prathamesh3492 from comment #15)
> > 
> > > I am not understanding why vfpv3-d16 appears in collect_gcc_options in
> > > run_gcc().
> > Isn't this because you configured GCC --with-fpu=vfpv3-d16?
> 
> COLLECT_GCC_OPTIONS is set by gcc.c:set_collect_gcc_options():
> /* Build COLLECT_GCC_OPTIONS to have all of the options specified to
>      the compiler.  */
>   obstack_grow (&collect_obstack, "COLLECT_GCC_OPTIONS=",
>                 sizeof ("COLLECT_GCC_OPTIONS=") - 1);
> 
> and at the end of set_collect_gcc_options():
> xputenv (XOBFINISH (&collect_obstack, char *));
> which makes it environment variable.
> 
> set_collect_gcc_options() is called by do_spec, which is called by
> driver::maybe_run_linker(), before executing linker.
> So the driver has no knowledge of options passed at compile-time,
> it sets the default -mfpu=vfpv3-d16.
> 
> When lto-wrapper executes,
> it gets linker command line options from environment variable
> COLLECT_GCC_OPTIONS,
> which contains -mfpu=vfpv3-d16.
> and since that was being appended after compile-time options
> (fdecoded_options), -mfpu=vfpv3-d16 overrides -mfpu=neon.
> 
> This also explains why it works in one shot
> arm-linux-gnueabihf -flto -mfpu=neon test.c
> 
> COLLECT_GCC_OPTIONS will have "-mfpu=neon" since it's mentioned on command
> line, and lto-wrapper has access to this COLLECT_GCC_OPTIONS.
> 
> When compiler and linker are run separately, at link time, the driver has no
> knowledege of flags of compile-time run,
> and hence sets default flags in COLLECT_GCC_OPTIONS.
> 
> I think correct way to fix would be in run_gcc() to get values from
> COLLECT_GCC_OPTIONS in decoded_options as is currently done.
> run_gcc() walks through options in object file and saves it in
> fdecoded_options. So override the value in
> decoded_options for the same option found in fdecoded_options. 
> Would that be a right approach ?

No, link-time options always override compile-time ones.

I suspect the fix will be to somehow avoid setting defaults when linking?


  parent reply	other threads:[~2015-04-29  7:42 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-21 20:28 [Bug target/65837] New: " prathamesh3492 at gcc dot gnu.org
2015-04-22  8:54 ` [Bug target/65837] " rguenth at gcc dot gnu.org
2015-04-22 19:53 ` prathamesh3492 at gcc dot gnu.org
2015-04-22 23:38 ` prathamesh3492 at gcc dot gnu.org
2015-04-23  8:18 ` rguenther at suse dot de
2015-04-23  8:18 ` rguenth at gcc dot gnu.org
2015-04-23 11:46 ` rguenth at gcc dot gnu.org
2015-04-23 12:18 ` prathamesh3492 at gcc dot gnu.org
2015-04-23 12:20 ` rguenther at suse dot de
2015-04-23 13:17 ` ramana at gcc dot gnu.org
2015-04-23 13:50 ` prathamesh3492 at gcc dot gnu.org
2015-04-23 13:52 ` ramana at gcc dot gnu.org
2015-04-28 10:48 ` prathamesh3492 at gcc dot gnu.org
2015-04-28 14:14 ` prathamesh3492 at gcc dot gnu.org
2015-04-28 19:22 ` prathamesh3492 at gcc dot gnu.org
2015-04-28 22:40 ` prathamesh3492 at gcc dot gnu.org
2015-04-29  7:42 ` rguenth at gcc dot gnu.org
2015-04-29  7:42 ` rguenther at suse dot de [this message]
2015-04-29  8:00 ` ramana at gcc dot gnu.org
2015-04-29 11:30 ` ramana.radhakrishnan at arm dot com
2015-05-05 15:18 ` ktkachov at gcc dot gnu.org
2015-05-19 13:44 ` chrbr at gcc dot gnu.org
2015-05-19 15:49 ` ramana at gcc dot gnu.org
2015-05-20 13:21 ` chrbr at gcc dot gnu.org
2015-06-22  8:22 ` chrbr at gcc dot gnu.org

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=bug-65837-4-NiAO7nxHSu@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.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 read-only IMAP folder(s) and NNTP newsgroup(s).