]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/objabi,cmd/link/internal/sym: add SDWARFADDR symbol type
authorThan McIntosh <thanm@golang.org>
Fri, 6 Dec 2024 00:01:22 +0000 (19:01 -0500)
committerThan McIntosh <thanm@golang.org>
Sat, 22 Feb 2025 21:32:37 +0000 (13:32 -0800)
Add a new symbol type: SDWARFADDR. This kind of symbol stores content
to be added to the DWARF .debug_addr section (new with DWARF5). At the
moment these symbols are created only in the linker, but it's not hard to
imagine other implementations in which the compiler would create them,
so they are added to both the compiler and linker symbol kind space.

Updates #26379.

Change-Id: I4a82ead0d59fe6028abfd6d6e3fc3df2e28c0ef6
Reviewed-on: https://go-review.googlesource.com/c/go/+/634415
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

src/cmd/internal/objabi/symkind.go
src/cmd/internal/objabi/symkind_string.go
src/cmd/link/internal/sym/symkind.go
src/cmd/link/internal/sym/symkind_string.go

index d4ba5f361e1baa1531f918a62b4d9d322a00c23d..155bdb95f4db45215136beff8fc519cb3aec6f10 100644 (file)
@@ -70,6 +70,7 @@ const (
        SDWARFRANGE
        SDWARFLOC
        SDWARFLINES
+       SDWARFADDR
        // Coverage instrumentation counter for libfuzzer.
        SLIBFUZZER_8BIT_COUNTER
        // Coverage instrumentation counter, aux variable for cmd/cover
index 8992945265ee6c19acc78cc7a7e41eeb4724d6cb..fbf6a826a4a757c3d41826b604213696466b67c8 100644 (file)
@@ -29,15 +29,16 @@ func _() {
        _ = x[SDWARFRANGE-18]
        _ = x[SDWARFLOC-19]
        _ = x[SDWARFLINES-20]
-       _ = x[SLIBFUZZER_8BIT_COUNTER-21]
-       _ = x[SCOVERAGE_COUNTER-22]
-       _ = x[SCOVERAGE_AUXVAR-23]
-       _ = x[SSEHUNWINDINFO-24]
+       _ = x[SDWARFADDR-21]
+       _ = x[SLIBFUZZER_8BIT_COUNTER-22]
+       _ = x[SCOVERAGE_COUNTER-23]
+       _ = x[SCOVERAGE_AUXVAR-24]
+       _ = x[SSEHUNWINDINFO-25]
 }
 
-const _SymKind_name = "SxxxSTEXTSTEXTFIPSSRODATASRODATAFIPSSNOPTRDATASNOPTRDATAFIPSSDATASDATAFIPSSBSSSNOPTRBSSSTLSBSSSDWARFCUINFOSDWARFCONSTSDWARFFCNSDWARFABSFCNSDWARFTYPESDWARFVARSDWARFRANGESDWARFLOCSDWARFLINESSLIBFUZZER_8BIT_COUNTERSCOVERAGE_COUNTERSCOVERAGE_AUXVARSSEHUNWINDINFO"
+const _SymKind_name = "SxxxSTEXTSTEXTFIPSSRODATASRODATAFIPSSNOPTRDATASNOPTRDATAFIPSSDATASDATAFIPSSBSSSNOPTRBSSSTLSBSSSDWARFCUINFOSDWARFCONSTSDWARFFCNSDWARFABSFCNSDWARFTYPESDWARFVARSDWARFRANGESDWARFLOCSDWARFLINESSDWARFADDRSLIBFUZZER_8BIT_COUNTERSCOVERAGE_COUNTERSCOVERAGE_AUXVARSSEHUNWINDINFO"
 
-var _SymKind_index = [...]uint16{0, 4, 9, 18, 25, 36, 46, 60, 65, 74, 78, 87, 94, 106, 117, 126, 138, 148, 157, 168, 177, 188, 211, 228, 244, 258}
+var _SymKind_index = [...]uint16{0, 4, 9, 18, 25, 36, 46, 60, 65, 74, 78, 87, 94, 106, 117, 126, 138, 148, 157, 168, 177, 188, 198, 221, 238, 254, 268}
 
 func (i SymKind) String() string {
        if i >= SymKind(len(_SymKind_index)-1) {
index 19c62bca8cc019568f331df4b8de03e1a163247b..84783e16d7ba3ee7eb6a55fba17a2ef3821fe625 100644 (file)
@@ -141,6 +141,7 @@ const (
        SDWARFRANGE
        SDWARFLOC
        SDWARFLINES
+       SDWARFADDR
 
        // SEH symbol types
        SSEHUNWINDINFO
@@ -171,6 +172,7 @@ var AbiSymKindToSymKind = [...]SymKind{
        objabi.SDWARFRANGE:             SDWARFRANGE,
        objabi.SDWARFLOC:               SDWARFLOC,
        objabi.SDWARFLINES:             SDWARFLINES,
+       objabi.SDWARFADDR:              SDWARFADDR,
        objabi.SLIBFUZZER_8BIT_COUNTER: SLIBFUZZER_8BIT_COUNTER,
        objabi.SCOVERAGE_COUNTER:       SCOVERAGE_COUNTER,
        objabi.SCOVERAGE_AUXVAR:        SCOVERAGE_AUXVAR,
@@ -232,5 +234,5 @@ func (t SymKind) IsNOPTRDATA() bool {
 }
 
 func (t SymKind) IsDWARF() bool {
-       return SDWARFSECT <= t && t <= SDWARFLINES
+       return SDWARFSECT <= t && t <= SDWARFADDR
 }
index 45ae6e5c542ef83297a1f479a366a2fcae05eed8..5e66eb2d79c6a583e3ded50b56591e081b13a94e 100644 (file)
@@ -85,13 +85,14 @@ func _() {
        _ = x[SDWARFRANGE-74]
        _ = x[SDWARFLOC-75]
        _ = x[SDWARFLINES-76]
-       _ = x[SSEHUNWINDINFO-77]
-       _ = x[SSEHSECT-78]
+       _ = x[SDWARFADDR-77]
+       _ = x[SSEHUNWINDINFO-78]
+       _ = x[SSEHSECT-79]
 }
 
-const _SymKind_name = "SxxxSTEXTSTEXTFIPSSTARTSTEXTFIPSSTEXTFIPSENDSTEXTENDSELFRXSECTSMACHOPLTSTYPESSTRINGSGOSTRINGSGOFUNCSGCBITSSRODATASRODATAFIPSSTARTSRODATAFIPSSRODATAFIPSENDSRODATAENDSFUNCTABSELFROSECTSTYPERELROSSTRINGRELROSGOSTRINGRELROSGOFUNCRELROSGCBITSRELROSRODATARELROSFUNCTABRELROSELFRELROSECTSTYPELINKSITABLINKSSYMTABSPCLNTABSFirstWritableSBUILDINFOSFIPSINFOSELFSECTSMACHOSMACHOGOTSWINDOWSSELFGOTSNOPTRDATASNOPTRDATAFIPSSTARTSNOPTRDATAFIPSSNOPTRDATAFIPSENDSNOPTRDATAENDSINITARRSDATASDATAFIPSSTARTSDATAFIPSSDATAFIPSENDSDATAENDSXCOFFTOCSBSSSNOPTRBSSSLIBFUZZER_8BIT_COUNTERSCOVERAGE_COUNTERSCOVERAGE_AUXVARSTLSBSSSXREFSMACHOSYMSTRSMACHOSYMTABSMACHOINDIRECTPLTSMACHOINDIRECTGOTSFILEPATHSDYNIMPORTSHOSTOBJSUNDEFEXTSDWARFSECTSDWARFCUINFOSDWARFCONSTSDWARFFCNSDWARFABSFCNSDWARFTYPESDWARFVARSDWARFRANGESDWARFLOCSDWARFLINESSSEHUNWINDINFOSSEHSECT"
+const _SymKind_name = "SxxxSTEXTSTEXTFIPSSTARTSTEXTFIPSSTEXTFIPSENDSTEXTENDSELFRXSECTSMACHOPLTSTYPESSTRINGSGOSTRINGSGOFUNCSGCBITSSRODATASRODATAFIPSSTARTSRODATAFIPSSRODATAFIPSENDSRODATAENDSFUNCTABSELFROSECTSTYPERELROSSTRINGRELROSGOSTRINGRELROSGOFUNCRELROSGCBITSRELROSRODATARELROSFUNCTABRELROSELFRELROSECTSTYPELINKSITABLINKSSYMTABSPCLNTABSFirstWritableSBUILDINFOSFIPSINFOSELFSECTSMACHOSMACHOGOTSWINDOWSSELFGOTSNOPTRDATASNOPTRDATAFIPSSTARTSNOPTRDATAFIPSSNOPTRDATAFIPSENDSNOPTRDATAENDSINITARRSDATASDATAFIPSSTARTSDATAFIPSSDATAFIPSENDSDATAENDSXCOFFTOCSBSSSNOPTRBSSSLIBFUZZER_8BIT_COUNTERSCOVERAGE_COUNTERSCOVERAGE_AUXVARSTLSBSSSXREFSMACHOSYMSTRSMACHOSYMTABSMACHOINDIRECTPLTSMACHOINDIRECTGOTSFILEPATHSDYNIMPORTSHOSTOBJSUNDEFEXTSDWARFSECTSDWARFCUINFOSDWARFCONSTSDWARFFCNSDWARFABSFCNSDWARFTYPESDWARFVARSDWARFRANGESDWARFLOCSDWARFLINESSDWARFADDRSSEHUNWINDINFOSSEHSECT"
 
-var _SymKind_index = [...]uint16{0, 4, 9, 23, 32, 44, 52, 62, 71, 76, 83, 92, 99, 106, 113, 129, 140, 154, 164, 172, 182, 192, 204, 218, 230, 242, 254, 267, 280, 289, 298, 305, 313, 327, 337, 346, 354, 360, 369, 377, 384, 394, 413, 427, 444, 457, 465, 470, 484, 493, 505, 513, 522, 526, 535, 558, 575, 591, 598, 603, 615, 627, 644, 661, 670, 680, 688, 697, 707, 719, 730, 739, 751, 761, 770, 781, 790, 801, 815, 823}
+var _SymKind_index = [...]uint16{0, 4, 9, 23, 32, 44, 52, 62, 71, 76, 83, 92, 99, 106, 113, 129, 140, 154, 164, 172, 182, 192, 204, 218, 230, 242, 254, 267, 280, 289, 298, 305, 313, 327, 337, 346, 354, 360, 369, 377, 384, 394, 413, 427, 444, 457, 465, 470, 484, 493, 505, 513, 522, 526, 535, 558, 575, 591, 598, 603, 615, 627, 644, 661, 670, 680, 688, 697, 707, 719, 730, 739, 751, 761, 770, 781, 790, 801, 811, 825, 833}
 
 func (i SymKind) String() string {
        if i >= SymKind(len(_SymKind_index)-1) {