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?
next prev 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).