From: Martin Jansa <martin.jansa@gmail.com>
To: Hongxu Jia <hongxu.jia@windriver.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 2/5] gcc-5.3.inc/base.bbclass: add gcc option to not record -fdebug-prefix-map to debugging info
Date: Mon, 22 Feb 2016 16:35:51 +0100 [thread overview]
Message-ID: <20160222153551.GC6329@jama> (raw)
In-Reply-To: <56CAAE59.5030905@windriver.com>
[-- Attachment #1: Type: text/plain, Size: 10621 bytes --]
On Mon, Feb 22, 2016 at 02:44:41PM +0800, Hongxu Jia wrote:
> On 02/20/2016 09:00 PM, Martin Jansa wrote:
> > On Fri, Jan 29, 2016 at 12:35:55PM -0500, Hongxu Jia wrote:
> >> Add option '-gno-record-debug-prefix-map' and '-grecord-debug-prefix-map'
> >> for gcc. If '-gno-record-debug-prefix-map' is used, it does not record
> >> '-fdebug-prefix-map' to gcc command line switches in DWARF DW_AT_producer.
> > Did you check sstate signatures with these debug-prefix-map changes? It seems to cause
> > everything to be MACHINE specific:
>
> Hi Martin,
>
> Could you explain your test details?
>
> From your log, it seems the MACHINE was changed from "qemux86" to
> "qemux86copy".
I'm using
openembedded-core/scripts/sstate-diff-machines.sh instead of
oe-selftest, the same script is used to generate reports like this one:
http://lists.openembedded.org/pipermail/openembedded-core/2015-November/112795.html
But with today's oe-core I cannot reproduce it anymore and these were the
only issues reported today:
http://lists.openembedded.org/pipermail/openembedded-devel/2016-February/106104.html
so it was fixed somewhere already, thanks for trying to reproduce it,
appreciate it.
> So I run test 'oe-selftest --run-tests
> sstatetests.SStateTests.test_sstate_sametune_samesigs'
> and it is OK.
>
> Here is the merged patch:
> ...
> -DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types"
> +DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types \
> + -fdebug-prefix-map=${B}=/usr/src/${BPN} \
> + -fdebug-prefix-map=${S}=/usr/src/${BPN} \
> + -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
> + -fdebug-prefix-map=${STAGING_DIR_HOST}= \
> +"
> ...
>
> //Hongxu
>
>
> > ERROR: libgcc-initial different signature for task do_populate_sysroot.sigdata between qemux86 and qemux86copy
> > basehash changed from 03ccc547064deba9b8e2e290a6be9480 to 6f7eff2e90f301e995298fee2c47b844
> > Variable FULL_OPTIMIZATION value changed from '-O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/work/i586-webos-linux/libgcc-initial/5.3.0-r0/gcc-5.3.0/build.i586-webos-linux.i586-webos-linux=/usr/src/libgcc> -fdebug-prefix-map=TOPDIR/work-shared/gcc-5.3.0-r0/gcc-5.3.0=/usr/src/libgcc> -fdebug-prefix-map=TOPDIR/sysroots/x86_64-linux=> -fdebug-prefix-map=TOPDIR/sysroots/qemux86=> ' to '-O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=TOPDIR/work/i586-webos-linux/libgcc-initial/5.3.0-r0/gcc-5.3.0/build.i586-webos-linux.i586-webos-linux=/usr/src/libgcc> -fdebug-prefix-map=TOPDIR/work-shared/gcc-5.3.0-r0/gcc-5.3.0=/usr/src/libgcc> -fdebug-prefix-map=TOPDIR/sysroots/x86_64-linux=> -fdebug-prefix-map=TOPDIR/sysroots/qemux86copy=> '
> > runtaskdeps changed from ['gcclibgcc-initial_5.3.bb.do_extra_symlinks', 'gcclibgcc-initial_5.3.bb.do_install', 'gcclibgcc-initial_5.3.bb.do_multilib_install'] to ['gcclibgcc-initial_5.3.bb.do_extra_symlinks', 'gcclibgcc-initial_5.3.bb.do_install', 'gcclibgcc-initial_5.3.bb.do_multilib_install']
> > oe-core/meta/recipes-devtools/gcc/libgcc-initial_5.3.bb.do_extra_symlinks> with hash 0bdaebf5e23c90af7cea65f28a12c789
> > changed to
> > oe-core/meta/recipes-devtools/gcc/libgcc-initial_5.3.bb.do_extra_symlinks> with hash 2d1b031bbd46bc8c7401d37bd1edb7cc
> > oe-core/meta/recipes-devtools/gcc/libgcc-initial_5.3.bb.do_install> with hash b6f705a4bd3535b606e8214c5640933a
> > changed to
> > oe-core/meta/recipes-devtools/gcc/libgcc-initial_5.3.bb.do_install> with hash da4e294376b70f951ca4af508fdc6a60
> > oe-core/meta/recipes-devtools/gcc/libgcc-initial_5.3.bb.do_multilib_install> with hash 8473bfa83cba1ee93191182b9fd239d7
> > changed to
> > oe-core/meta/recipes-devtools/gcc/libgcc-initial_5.3.bb.do_multilib_install> with hash fcad4f5f4d7da576b7c2add3eb24fcc8
> > Hash for dependent task gcclibgcc-initial_5.3.bb.do_extra_symlinks changed from 0bdaebf5e23c90af7cea65f28a12c789 to 2d1b031bbd46bc8c7401d37bd1edb7cc
> > Hash for dependent task gcclibgcc-initial_5.3.bb.do_install changed from b6f705a4bd3535b606e8214c5640933a to da4e294376b70f951ca4af508fdc6a60
> > Hash for dependent task gcclibgcc-initial_5.3.bb.do_multilib_install changed from 8473bfa83cba1ee93191182b9fd239d7 to fcad4f5f4d7da576b7c2add3eb24fcc8
> >
> > Regards,
> >
> >
> >> The patch could make sure the debugging informaion does not has TMPDIR
> >> and also leaves gcc switches in.
> >>
> >> Compile without this fix:
> >> objdump -g packages-split/lib32-glibc-dev/usr/lib/gcrt1.o
> >> ...
> >> | <5f> DW_AT_producer : (indirect string, offset: 0x1b): GNU C99 5.3.0
> >> -m32-march=core2 -mtune=core2 -msse3 -mfpmath=sse -mpreferred-stack-boundary=4
> >> -g -O2 -std=gnu99 -fgnu89-inline -fdebug-prefix-map=/buildarea/raid0/hjia/buil
> >> d-20160127-yocto-buildpath-2/tmp/sysroots/lib32-qemux86-64=
> >> -feliminate-unused-debug-types -fmerge-all-constants -frounding-math
> >> -ftls-model=initial-exec
> >> ...
> >>
> >> Compile with this fix:
> >> objdump -g packages-split/lib32-glibc-dev/usr/lib/gcrt1.o
> >> ...
> >> | <5f> DW_AT_producer : (indirect string, offset: 0xa1): GNU C99 5.3.0
> >> -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mpreferred-stack-boundary=4
> >> -g -O2 -std=gnu99 -fgnu89-inline -feliminate-unused-debug-types -fmerge-all-constants
> >> -frounding-math -ftls-model=initial-exec
> >> ...
> >>
> >> [YOCTO #7058]
> >>
> >> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> >> ---
> >> meta/conf/bitbake.conf | 1 +
> >> meta/recipes-devtools/gcc/gcc-5.3.inc | 3 +-
> >> ...48-add-option-gno-record-debug-prefix-map.patch | 65 ++++++++++++++++++++++
> >> 3 files changed, 68 insertions(+), 1 deletion(-)
> >> create mode 100644 meta/recipes-devtools/gcc/gcc-5.3/0048-add-option-gno-record-debug-prefix-map.patch
> >>
> >> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> >> index bebaaf4..e2e55e8 100644
> >> --- a/meta/conf/bitbake.conf
> >> +++ b/meta/conf/bitbake.conf
> >> @@ -552,6 +552,7 @@ DEBUG_FLAGS ?= "-g \
> >> -fdebug-prefix-map=${S}=/usr/src/${BPN} \
> >> -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
> >> -fdebug-prefix-map=${STAGING_DIR_HOST}= \
> >> + -gno-record-debug-prefix-map \
> >> "
> >>
> >> # Disabled until the option works properly -feliminate-dwarf2-dups
> >> diff --git a/meta/recipes-devtools/gcc/gcc-5.3.inc b/meta/recipes-devtools/gcc/gcc-5.3.inc
> >> index 80999c1..3a36e50 100644
> >> --- a/meta/recipes-devtools/gcc/gcc-5.3.inc
> >> +++ b/meta/recipes-devtools/gcc/gcc-5.3.inc
> >> @@ -76,7 +76,8 @@ SRC_URI = "\
> >> file://0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch \
> >> file://0045-Support-for-arm-linux-musl.patch \
> >> file://0046-Get-rid-of-ever-broken-fixincludes-on-musl.patch \
> >> - file://0047-Fix-nios2-musl-build.patch \
> >> + file://0047-Fix-nios2-musl-build.patch \
> >> + file://0048-add-option-gno-record-debug-prefix-map.patch \
> >> "
> >>
> >> BACKPORTS = ""
> >> diff --git a/meta/recipes-devtools/gcc/gcc-5.3/0048-add-option-gno-record-debug-prefix-map.patch b/meta/recipes-devtools/gcc/gcc-5.3/0048-add-option-gno-record-debug-prefix-map.patch
> >> new file mode 100644
> >> index 0000000..e1efaeb
> >> --- /dev/null
> >> +++ b/meta/recipes-devtools/gcc/gcc-5.3/0048-add-option-gno-record-debug-prefix-map.patch
> >> @@ -0,0 +1,65 @@
> >> +From f1c5f8e9b568122c9a5afd323fd6d76250b83c94 Mon Sep 17 00:00:00 2001
> >> +From: Hongxu Jia <hongxu.jia@windriver.com>
> >> +Date: Thu, 28 Jan 2016 15:25:23 +0800
> >> +Subject: [PATCH] add option gno-record-debug-prefix-map
> >> +
> >> +If option gno-record-debug-prefix-map used, it does not
> >> +record -fdebug-prefix-map to gcc command line switches
> >> +in DWARF DW_AT_producer.
> >> +
> >> +Upstream-Status: Inappropriate [oe specific]
> >> +
> >> +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> >> +---
> >> + gcc/common.opt | 8 ++++++++
> >> + gcc/dwarf2out.c | 8 ++++++++
> >> + 2 files changed, 16 insertions(+)
> >> +
> >> +diff --git a/gcc/common.opt b/gcc/common.opt
> >> +index 0c4f86b..e4c6bd6 100644
> >> +--- a/gcc/common.opt
> >> ++++ b/gcc/common.opt
> >> +@@ -2516,6 +2516,14 @@ grecord-gcc-switches
> >> + Common RejectNegative Var(dwarf_record_gcc_switches,1)
> >> + Record gcc command line switches in DWARF DW_AT_producer.
> >> +
> >> ++gno-record-debug-prefix-map
> >> ++Common RejectNegative Var(dwarf_record_debug_prefix_map,0) Init(1)
> >> ++Don't record -fdebug-prefix-map in gcc command line switches in DWARF DW_AT_producer.
> >> ++
> >> ++grecord-debug-prefix-map
> >> ++Common RejectNegative Var(dwarf_record_debug_prefix_map,1)
> >> ++Record -fdebug-prefix-map in gcc command line switches in DWARF DW_AT_producer.
> >> ++
> >> + gno-split-dwarf
> >> + Common Driver RejectNegative Var(dwarf_split_debug_info,0) Init(0)
> >> + Don't generate debug information in separate .dwo files
> >> +diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
> >> +index f90329b..646a706 100644
> >> +--- a/gcc/dwarf2out.c
> >> ++++ b/gcc/dwarf2out.c
> >> +@@ -19383,6 +19383,8 @@ gen_producer_string (void)
> >> + case OPT_SPECIAL_input_file:
> >> + case OPT_grecord_gcc_switches:
> >> + case OPT_gno_record_gcc_switches:
> >> ++ case OPT_grecord_debug_prefix_map:
> >> ++ case OPT_gno_record_debug_prefix_map:
> >> + case OPT__output_pch_:
> >> + case OPT_fdiagnostics_show_location_:
> >> + case OPT_fdiagnostics_show_option:
> >> +@@ -19415,6 +19417,12 @@ gen_producer_string (void)
> >> + default:
> >> + break;
> >> + }
> >> ++
> >> ++ /* Don't record -fdebug-prefix-map in gcc command line
> >> ++ switches in DWARF DW_AT_producer */
> >> ++ if (save_decoded_options[j].opt_index==OPT_fdebug_prefix_map_ &&
> >> ++ !dwarf_record_debug_prefix_map)
> >> ++ continue;
> >> + switches.safe_push (save_decoded_options[j].orig_option_with_args_text);
> >> + len += strlen (save_decoded_options[j].orig_option_with_args_text) + 1;
> >> + break;
> >> +--
> >> +1.9.1
> >> +
> >> --
> >> 1.9.1
> >>
> >> --
> >> _______________________________________________
> >> Openembedded-core mailing list
> >> Openembedded-core@lists.openembedded.org
> >> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
next prev parent reply other threads:[~2016-02-22 15:34 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-29 17:35 [PATCH v3 0/5]use target path to replace build ones in debugging info Hongxu Jia
2016-01-29 17:35 ` [PATCH 1/5] base/bbclass: use target path as compile dir " Hongxu Jia
2016-01-29 17:48 ` Peter Kjellerstedt
2016-01-30 1:15 ` Hongxu Jia
2016-01-29 17:35 ` [PATCH 2/5] gcc-5.3.inc/base.bbclass: add gcc option to not record -fdebug-prefix-map to " Hongxu Jia
2016-01-29 17:47 ` Peter Kjellerstedt
2016-01-30 1:25 ` Hongxu Jia
2016-01-30 2:36 ` Khem Raj
2016-01-30 10:57 ` Richard Purdie
2016-02-01 14:01 ` Hongxu Jia
2016-02-01 14:09 ` Richard Purdie
2016-02-01 17:10 ` Khem Raj
2016-02-07 16:17 ` Hongxu Jia
2016-01-30 11:43 ` Phil Blundell
2016-02-20 13:00 ` Martin Jansa
2016-02-20 15:02 ` Khem Raj
2016-02-22 6:44 ` Hongxu Jia
2016-02-22 15:35 ` Martin Jansa [this message]
2016-01-29 17:35 ` [PATCH 3/5] mkelfimage: fix target cflags leaks to host Hongxu Jia
2016-01-29 17:35 ` [PATCH 4/5] glibc.inc: do not immediate expand SELECTED_OPTIMIZATION Hongxu Jia
2016-01-30 10:35 ` Phil Blundell
2016-01-29 17:35 ` [PATCH 5/5] systemtap_git.inc: " Hongxu Jia
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=20160222153551.GC6329@jama \
--to=martin.jansa@gmail.com \
--cc=hongxu.jia@windriver.com \
--cc=openembedded-core@lists.openembedded.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.