[v2] Add -gcodeview option

Message ID 20221027033829.22918-1-mark@harmstone.com
State Unresolved
Headers
Series [v2] Add -gcodeview option |

Checks

Context Check Description
snail/gcc-patch-check warning Git am fail log

Commit Message

Mark Harmstone Oct. 27, 2022, 3:38 a.m. UTC
  Changed to double dashes as per
https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604287.html.

---
 gcc/common.opt      | 4 ++++
 gcc/doc/invoke.texi | 7 +++++++
 gcc/gcc.cc          | 4 ++++
 gcc/opts.cc         | 3 +++
 4 files changed, 18 insertions(+)
  

Comments

Jeff Law Nov. 20, 2022, 4:43 p.m. UTC | #1
On 10/26/22 21:38, Mark Harmstone wrote:
> Changed to double dashes as per
> https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604287.html.

What value is there in providing this option now?  IIUC we don't have 
any of the bits yet to actually produce PDB records.   It seems to me 
like this ought to be patch 1/n of a patch to produce PDB debug symbols.


Or am I missing something?


jeff
  
Mark Harmstone Nov. 20, 2022, 4:54 p.m. UTC | #2
On 20/11/22 16:43, Jeff Law wrote:
>
> On 10/26/22 21:38, Mark Harmstone wrote:
>> Changed to double dashes as per
>> https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604287.html.
>
> What value is there in providing this option now?  IIUC we don't have any of the bits yet to actually produce PDB records.   It seems to me like this ought to be patch 1/n of a patch to produce PDB debug symbols.

This isn't useless, as ld will create symbols for the mangled names even without the .debug$S and .debug$T sections being present.
  
Jeff Law April 18, 2023, 7:57 p.m. UTC | #3
On 11/20/22 09:54, Mark Harmstone wrote:
> On 20/11/22 16:43, Jeff Law wrote:
>>
>> On 10/26/22 21:38, Mark Harmstone wrote:
>>> Changed to double dashes as per
>>> https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604287.html.
>>
>> What value is there in providing this option now?  IIUC we don't have 
>> any of the bits yet to actually produce PDB records.   It seems to me 
>> like this ought to be patch 1/n of a patch to produce PDB debug symbols.
> 
> This isn't useless, as ld will create symbols for the mangled names even 
> without the .debug$S and .debug$T sections being present.
Sorry this didn't get resolved for gcc-13.  The good news is I have 
committed your V2 patch into the trunk for gcc-14.

Thanks for your patience,
jeff
  
Jason Merrill April 18, 2023, 8:32 p.m. UTC | #4
On 4/18/23 15:57, Jeff Law via Gcc-patches wrote:
> 
> 
> On 11/20/22 09:54, Mark Harmstone wrote:
>> On 20/11/22 16:43, Jeff Law wrote:
>>>
>>> On 10/26/22 21:38, Mark Harmstone wrote:
>>>> Changed to double dashes as per
>>>> https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604287.html.
>>>
>>> What value is there in providing this option now?  IIUC we don't have 
>>> any of the bits yet to actually produce PDB records.   It seems to me 
>>> like this ought to be patch 1/n of a patch to produce PDB debug symbols.
>>
>> This isn't useless, as ld will create symbols for the mangled names 
>> even without the .debug$S and .debug$T sections being present.

> Sorry this didn't get resolved for gcc-13.  The good news is I have 
> committed your V2 patch into the trunk for gcc-14.

FYI I've removed the stray obsolete @gol that broke building the docs.

Jason
  
Jeff Law April 18, 2023, 8:51 p.m. UTC | #5
On 4/18/23 14:32, Jason Merrill wrote:
> On 4/18/23 15:57, Jeff Law via Gcc-patches wrote:
>>
>>
>> On 11/20/22 09:54, Mark Harmstone wrote:
>>> On 20/11/22 16:43, Jeff Law wrote:
>>>>
>>>> On 10/26/22 21:38, Mark Harmstone wrote:
>>>>> Changed to double dashes as per
>>>>> https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604287.html.
>>>>
>>>> What value is there in providing this option now?  IIUC we don't 
>>>> have any of the bits yet to actually produce PDB records.   It seems 
>>>> to me like this ought to be patch 1/n of a patch to produce PDB 
>>>> debug symbols.
>>>
>>> This isn't useless, as ld will create symbols for the mangled names 
>>> even without the .debug$S and .debug$T sections being present.
> 
>> Sorry this didn't get resolved for gcc-13.  The good news is I have 
>> committed your V2 patch into the trunk for gcc-14.
> 
> FYI I've removed the stray obsolete @gol that broke building the docs.
Thanks.  I didn't realize those were obsolete.

jeff
  

Patch

diff --git a/gcc/common.opt b/gcc/common.opt
index 8a0dafc522d..77103f961d8 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -3253,6 +3253,10 @@  gas-locview-support
 Common Driver Var(dwarf2out_as_locview_support)
 Assume assembler support for view in (DWARF2+) .loc directives.
 
+gcodeview
+Common Driver JoinedOrMissing
+Generate debug information in CodeView format.
+
 gcoff
 Common Driver WarnRemoved
 Does nothing.  Preserved for backward compatibility.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index ff6c338bedb..2d29fd2611d 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -483,6 +483,7 @@  Objective-C and Objective-C++ Dialects}.
 -gstabs  -gstabs+  -gstrict-dwarf  -gno-strict-dwarf @gol
 -gas-loc-support  -gno-as-loc-support @gol
 -gas-locview-support  -gno-as-locview-support @gol
+-gcodeview @gol
 -gcolumn-info  -gno-column-info  -gdwarf32  -gdwarf64 @gol
 -gstatement-frontiers  -gno-statement-frontiers @gol
 -gvariable-location-views  -gno-variable-location-views @gol
@@ -10358,6 +10359,12 @@  assembler (GAS) to fail with an error.
 Produce debugging information in Alpha/VMS debug format (if that is
 supported).  This is the format used by DEBUG on Alpha/VMS systems.
 
+@item -gcodeview
+@opindex gcodeview
+Produce debugging information in CodeView debug format (if that is
+supported).  This is the format used by Microsoft Visual C++ on
+Windows.
+
 @item -g@var{level}
 @itemx -ggdb@var{level}
 @itemx -gstabs@var{level}
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index bb07cc244e3..d3aa3deeaf7 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -4608,6 +4608,10 @@  driver_handle_option (struct gcc_options *opts,
       do_save = false;
       break;
 
+    case OPT_gcodeview:
+      add_infile ("--pdb=", "*");
+      break;
+
     default:
       /* Various driver options need no special processing at this
 	 point, having been handled in a prescan above or being
diff --git a/gcc/opts.cc b/gcc/opts.cc
index 3a89da2dd03..e2633ee5439 100644
--- a/gcc/opts.cc
+++ b/gcc/opts.cc
@@ -3089,6 +3089,9 @@  common_handle_option (struct gcc_options *opts,
       set_debug_level (NO_DEBUG, 2, arg, opts, opts_set, loc);
       break;
 
+    case OPT_gcodeview:
+      break;
+
     case OPT_gstabs:
     case OPT_gstabs_:
       set_debug_level (DBX_DEBUG, code == OPT_gstabs_, arg, opts, opts_set,