[OE-core] [PATCH 2/5] gcc-5.3.inc/base.bbclass: add gcc option to not record -fdebug-prefix-map to debugging info

Peter Kjellerstedt peter.kjellerstedt at axis.com
Fri Jan 29 17:47:01 UTC 2016


Wouldn't it be better to swap the first and second commit and then 
move the addition of -gno-record-debug-prefix-map to the other commit 
where -fdebug-prefix-map are added. 

You must also remember that not all use the compiler provided by 
OE-Core, so adding -gno-record-debug-prefix-map unconditionally to 
DEBUG_CFLAGS will break with unpatched compilers... (This also 
indicates that "Upstream-Status: Inappropriate [oe specific]" may 
not be quite right if you want this to be supported by other 
compiler versions).

//Peter

> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
> Hongxu Jia
> Sent: den 29 januari 2016 18:36
> To: openembedded-core at lists.openembedded.org;
> liezhi.yang at windriver.com; raj.khem at gmail.com;
> richard.purdie at linuxfoundation.org
> Subject: [OE-core] [PATCH 2/5] gcc-5.3.inc/base.bbclass: add gcc option
> to not record -fdebug-prefix-map to debugging info
> 
> 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.
> 
> 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 at 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 at 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 at 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 at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list