]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/objabi, cmd/link: add FIPS symbol kinds
authorRuss Cox <rsc@golang.org>
Thu, 31 Oct 2024 14:53:48 +0000 (10:53 -0400)
committerGopher Robot <gobot@golang.org>
Thu, 7 Nov 2024 17:47:38 +0000 (17:47 +0000)
Add FIPS symbol kinds that will be needed for FIPS support.
This is a separate CL to keep the re-generated changes in
the string methods separate from hand-written changes.

The separate symbol kinds will let us group the FIPS-related
code and data together, so that it can be checksummed at
startup, as required by FIPS.

It's also separate because it breaks buildall, by changing the
on-disk symbol kind enumeration. We want non-buildall
changes to be as simple as possible.

For #69536.

Change-Id: I2d5a238498929fff8b24736ee54330c17323bd86
Reviewed-on: https://go-review.googlesource.com/c/go/+/625995
Auto-Submit: Russ Cox <rsc@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Cherry Mui <cherryyz@google.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 bafc51b46f1f8613f6715842a9170b37afc40699..463b77689c758771da50cac5bd0d8f6bbbc74ca5 100644 (file)
@@ -44,12 +44,16 @@ const (
        Sxxx SymKind = iota
        // Executable instructions
        STEXT
+       STEXTFIPS
        // Read only static data
        SRODATA
+       SRODATAFIPS
        // Static data that does not contain any pointers
        SNOPTRDATA
+       SNOPTRDATAFIPS
        // Static data
        SDATA
+       SDATAFIPS
        // Statically data that is initially all 0s
        SBSS
        // Statically data that is initially all 0s and does not contain pointers
index 3f2ad43fca364fc7302b8b86357bd7eed4658cd6..8992945265ee6c19acc78cc7a7e41eeb4724d6cb 100644 (file)
@@ -10,30 +10,34 @@ func _() {
        var x [1]struct{}
        _ = x[Sxxx-0]
        _ = x[STEXT-1]
-       _ = x[SRODATA-2]
-       _ = x[SNOPTRDATA-3]
-       _ = x[SDATA-4]
-       _ = x[SBSS-5]
-       _ = x[SNOPTRBSS-6]
-       _ = x[STLSBSS-7]
-       _ = x[SDWARFCUINFO-8]
-       _ = x[SDWARFCONST-9]
-       _ = x[SDWARFFCN-10]
-       _ = x[SDWARFABSFCN-11]
-       _ = x[SDWARFTYPE-12]
-       _ = x[SDWARFVAR-13]
-       _ = x[SDWARFRANGE-14]
-       _ = x[SDWARFLOC-15]
-       _ = x[SDWARFLINES-16]
-       _ = x[SLIBFUZZER_8BIT_COUNTER-17]
-       _ = x[SCOVERAGE_COUNTER-18]
-       _ = x[SCOVERAGE_AUXVAR-19]
-       _ = x[SSEHUNWINDINFO-20]
+       _ = x[STEXTFIPS-2]
+       _ = x[SRODATA-3]
+       _ = x[SRODATAFIPS-4]
+       _ = x[SNOPTRDATA-5]
+       _ = x[SNOPTRDATAFIPS-6]
+       _ = x[SDATA-7]
+       _ = x[SDATAFIPS-8]
+       _ = x[SBSS-9]
+       _ = x[SNOPTRBSS-10]
+       _ = x[STLSBSS-11]
+       _ = x[SDWARFCUINFO-12]
+       _ = x[SDWARFCONST-13]
+       _ = x[SDWARFFCN-14]
+       _ = x[SDWARFABSFCN-15]
+       _ = x[SDWARFTYPE-16]
+       _ = x[SDWARFVAR-17]
+       _ = 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]
 }
 
-const _SymKind_name = "SxxxSTEXTSRODATASNOPTRDATASDATASBSSSNOPTRBSSSTLSBSSSDWARFCUINFOSDWARFCONSTSDWARFFCNSDWARFABSFCNSDWARFTYPESDWARFVARSDWARFRANGESDWARFLOCSDWARFLINESSLIBFUZZER_8BIT_COUNTERSCOVERAGE_COUNTERSCOVERAGE_AUXVARSSEHUNWINDINFO"
+const _SymKind_name = "SxxxSTEXTSTEXTFIPSSRODATASRODATAFIPSSNOPTRDATASNOPTRDATAFIPSSDATASDATAFIPSSBSSSNOPTRBSSSTLSBSSSDWARFCUINFOSDWARFCONSTSDWARFFCNSDWARFABSFCNSDWARFTYPESDWARFVARSDWARFRANGESDWARFLOCSDWARFLINESSLIBFUZZER_8BIT_COUNTERSCOVERAGE_COUNTERSCOVERAGE_AUXVARSSEHUNWINDINFO"
 
-var _SymKind_index = [...]uint8{0, 4, 9, 16, 26, 31, 35, 44, 51, 63, 74, 83, 95, 105, 114, 125, 134, 145, 168, 185, 201, 215}
+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}
 
 func (i SymKind) String() string {
        if i >= SymKind(len(_SymKind_index)-1) {
index 9a1f33c582815442e145b86a6afddd50b17e387e..69d0d0ae2f187b433226aa9e2b2ae3e6d0ad4d67 100644 (file)
@@ -43,6 +43,10 @@ type SymKind uint8
 const (
        Sxxx SymKind = iota
        STEXT
+       STEXTFIPSSTART
+       STEXTFIPS
+       STEXTFIPSEND
+       STEXTEND
        SELFRXSECT
        SMACHOPLT
 
@@ -53,6 +57,10 @@ const (
        SGOFUNC
        SGCBITS
        SRODATA
+       SRODATAFIPSSTART
+       SRODATAFIPS
+       SRODATAFIPSEND
+       SRODATAEND
        SFUNCTAB
 
        SELFROSECT
@@ -87,14 +95,23 @@ const (
        // Writable sections.
        SFirstWritable
        SBUILDINFO
+       SFIPSINFO
        SELFSECT
        SMACHO
        SMACHOGOT
        SWINDOWS
        SELFGOT
        SNOPTRDATA
+       SNOPTRDATAFIPSSTART
+       SNOPTRDATAFIPS
+       SNOPTRDATAFIPSEND
+       SNOPTRDATAEND
        SINITARR
        SDATA
+       SDATAFIPSSTART
+       SDATAFIPS
+       SDATAFIPSEND
+       SDATAEND
        SXCOFFTOC
        SBSS
        SNOPTRBSS
@@ -135,9 +152,13 @@ const (
 var AbiSymKindToSymKind = [...]SymKind{
        objabi.Sxxx:                    Sxxx,
        objabi.STEXT:                   STEXT,
+       objabi.STEXTFIPS:               STEXTFIPS,
        objabi.SRODATA:                 SRODATA,
+       objabi.SRODATAFIPS:             SRODATAFIPS,
        objabi.SNOPTRDATA:              SNOPTRDATA,
+       objabi.SNOPTRDATAFIPS:          SNOPTRDATAFIPS,
        objabi.SDATA:                   SDATA,
+       objabi.SDATAFIPS:               SDATAFIPS,
        objabi.SBSS:                    SBSS,
        objabi.SNOPTRBSS:               SNOPTRBSS,
        objabi.STLSBSS:                 STLSBSS,
@@ -166,6 +187,10 @@ var ReadOnly = []SymKind{
        SGOFUNC,
        SGCBITS,
        SRODATA,
+       SRODATAFIPSSTART,
+       SRODATAFIPS,
+       SRODATAFIPSEND,
+       SRODATAEND,
        SFUNCTAB,
 }
 
index b29c00334f0958348a4983dc4a68bb6709dfb95f..45ae6e5c542ef83297a1f479a366a2fcae05eed8 100644 (file)
@@ -10,71 +10,88 @@ func _() {
        var x [1]struct{}
        _ = x[Sxxx-0]
        _ = x[STEXT-1]
-       _ = x[SELFRXSECT-2]
-       _ = x[SMACHOPLT-3]
-       _ = x[STYPE-4]
-       _ = x[SSTRING-5]
-       _ = x[SGOSTRING-6]
-       _ = x[SGOFUNC-7]
-       _ = x[SGCBITS-8]
-       _ = x[SRODATA-9]
-       _ = x[SFUNCTAB-10]
-       _ = x[SELFROSECT-11]
-       _ = x[STYPERELRO-12]
-       _ = x[SSTRINGRELRO-13]
-       _ = x[SGOSTRINGRELRO-14]
-       _ = x[SGOFUNCRELRO-15]
-       _ = x[SGCBITSRELRO-16]
-       _ = x[SRODATARELRO-17]
-       _ = x[SFUNCTABRELRO-18]
-       _ = x[SELFRELROSECT-19]
-       _ = x[STYPELINK-20]
-       _ = x[SITABLINK-21]
-       _ = x[SSYMTAB-22]
-       _ = x[SPCLNTAB-23]
-       _ = x[SFirstWritable-24]
-       _ = x[SBUILDINFO-25]
-       _ = x[SELFSECT-26]
-       _ = x[SMACHO-27]
-       _ = x[SMACHOGOT-28]
-       _ = x[SWINDOWS-29]
-       _ = x[SELFGOT-30]
-       _ = x[SNOPTRDATA-31]
-       _ = x[SINITARR-32]
-       _ = x[SDATA-33]
-       _ = x[SXCOFFTOC-34]
-       _ = x[SBSS-35]
-       _ = x[SNOPTRBSS-36]
-       _ = x[SLIBFUZZER_8BIT_COUNTER-37]
-       _ = x[SCOVERAGE_COUNTER-38]
-       _ = x[SCOVERAGE_AUXVAR-39]
-       _ = x[STLSBSS-40]
-       _ = x[SXREF-41]
-       _ = x[SMACHOSYMSTR-42]
-       _ = x[SMACHOSYMTAB-43]
-       _ = x[SMACHOINDIRECTPLT-44]
-       _ = x[SMACHOINDIRECTGOT-45]
-       _ = x[SFILEPATH-46]
-       _ = x[SDYNIMPORT-47]
-       _ = x[SHOSTOBJ-48]
-       _ = x[SUNDEFEXT-49]
-       _ = x[SDWARFSECT-50]
-       _ = x[SDWARFCUINFO-51]
-       _ = x[SDWARFCONST-52]
-       _ = x[SDWARFFCN-53]
-       _ = x[SDWARFABSFCN-54]
-       _ = x[SDWARFTYPE-55]
-       _ = x[SDWARFVAR-56]
-       _ = x[SDWARFRANGE-57]
-       _ = x[SDWARFLOC-58]
-       _ = x[SDWARFLINES-59]
-       _ = x[SSEHUNWINDINFO-60]
-       _ = x[SSEHSECT-61]
+       _ = x[STEXTFIPSSTART-2]
+       _ = x[STEXTFIPS-3]
+       _ = x[STEXTFIPSEND-4]
+       _ = x[STEXTEND-5]
+       _ = x[SELFRXSECT-6]
+       _ = x[SMACHOPLT-7]
+       _ = x[STYPE-8]
+       _ = x[SSTRING-9]
+       _ = x[SGOSTRING-10]
+       _ = x[SGOFUNC-11]
+       _ = x[SGCBITS-12]
+       _ = x[SRODATA-13]
+       _ = x[SRODATAFIPSSTART-14]
+       _ = x[SRODATAFIPS-15]
+       _ = x[SRODATAFIPSEND-16]
+       _ = x[SRODATAEND-17]
+       _ = x[SFUNCTAB-18]
+       _ = x[SELFROSECT-19]
+       _ = x[STYPERELRO-20]
+       _ = x[SSTRINGRELRO-21]
+       _ = x[SGOSTRINGRELRO-22]
+       _ = x[SGOFUNCRELRO-23]
+       _ = x[SGCBITSRELRO-24]
+       _ = x[SRODATARELRO-25]
+       _ = x[SFUNCTABRELRO-26]
+       _ = x[SELFRELROSECT-27]
+       _ = x[STYPELINK-28]
+       _ = x[SITABLINK-29]
+       _ = x[SSYMTAB-30]
+       _ = x[SPCLNTAB-31]
+       _ = x[SFirstWritable-32]
+       _ = x[SBUILDINFO-33]
+       _ = x[SFIPSINFO-34]
+       _ = x[SELFSECT-35]
+       _ = x[SMACHO-36]
+       _ = x[SMACHOGOT-37]
+       _ = x[SWINDOWS-38]
+       _ = x[SELFGOT-39]
+       _ = x[SNOPTRDATA-40]
+       _ = x[SNOPTRDATAFIPSSTART-41]
+       _ = x[SNOPTRDATAFIPS-42]
+       _ = x[SNOPTRDATAFIPSEND-43]
+       _ = x[SNOPTRDATAEND-44]
+       _ = x[SINITARR-45]
+       _ = x[SDATA-46]
+       _ = x[SDATAFIPSSTART-47]
+       _ = x[SDATAFIPS-48]
+       _ = x[SDATAFIPSEND-49]
+       _ = x[SDATAEND-50]
+       _ = x[SXCOFFTOC-51]
+       _ = x[SBSS-52]
+       _ = x[SNOPTRBSS-53]
+       _ = x[SLIBFUZZER_8BIT_COUNTER-54]
+       _ = x[SCOVERAGE_COUNTER-55]
+       _ = x[SCOVERAGE_AUXVAR-56]
+       _ = x[STLSBSS-57]
+       _ = x[SXREF-58]
+       _ = x[SMACHOSYMSTR-59]
+       _ = x[SMACHOSYMTAB-60]
+       _ = x[SMACHOINDIRECTPLT-61]
+       _ = x[SMACHOINDIRECTGOT-62]
+       _ = x[SFILEPATH-63]
+       _ = x[SDYNIMPORT-64]
+       _ = x[SHOSTOBJ-65]
+       _ = x[SUNDEFEXT-66]
+       _ = x[SDWARFSECT-67]
+       _ = x[SDWARFCUINFO-68]
+       _ = x[SDWARFCONST-69]
+       _ = x[SDWARFFCN-70]
+       _ = x[SDWARFABSFCN-71]
+       _ = x[SDWARFTYPE-72]
+       _ = x[SDWARFVAR-73]
+       _ = x[SDWARFRANGE-74]
+       _ = x[SDWARFLOC-75]
+       _ = x[SDWARFLINES-76]
+       _ = x[SSEHUNWINDINFO-77]
+       _ = x[SSEHSECT-78]
 }
 
-const _SymKind_name = "SxxxSTEXTSELFRXSECTSMACHOPLTSTYPESSTRINGSGOSTRINGSGOFUNCSGCBITSSRODATASFUNCTABSELFROSECTSTYPERELROSSTRINGRELROSGOSTRINGRELROSGOFUNCRELROSGCBITSRELROSRODATARELROSFUNCTABRELROSELFRELROSECTSTYPELINKSITABLINKSSYMTABSPCLNTABSFirstWritableSBUILDINFOSELFSECTSMACHOSMACHOGOTSWINDOWSSELFGOTSNOPTRDATASINITARRSDATASXCOFFTOCSBSSSNOPTRBSSSLIBFUZZER_8BIT_COUNTERSCOVERAGE_COUNTERSCOVERAGE_AUXVARSTLSBSSSXREFSMACHOSYMSTRSMACHOSYMTABSMACHOINDIRECTPLTSMACHOINDIRECTGOTSFILEPATHSDYNIMPORTSHOSTOBJSUNDEFEXTSDWARFSECTSDWARFCUINFOSDWARFCONSTSDWARFFCNSDWARFABSFCNSDWARFTYPESDWARFVARSDWARFRANGESDWARFLOCSDWARFLINESSSEHUNWINDINFOSSEHSECT"
+const _SymKind_name = "SxxxSTEXTSTEXTFIPSSTARTSTEXTFIPSSTEXTFIPSENDSTEXTENDSELFRXSECTSMACHOPLTSTYPESSTRINGSGOSTRINGSGOFUNCSGCBITSSRODATASRODATAFIPSSTARTSRODATAFIPSSRODATAFIPSENDSRODATAENDSFUNCTABSELFROSECTSTYPERELROSSTRINGRELROSGOSTRINGRELROSGOFUNCRELROSGCBITSRELROSRODATARELROSFUNCTABRELROSELFRELROSECTSTYPELINKSITABLINKSSYMTABSPCLNTABSFirstWritableSBUILDINFOSFIPSINFOSELFSECTSMACHOSMACHOGOTSWINDOWSSELFGOTSNOPTRDATASNOPTRDATAFIPSSTARTSNOPTRDATAFIPSSNOPTRDATAFIPSENDSNOPTRDATAENDSINITARRSDATASDATAFIPSSTARTSDATAFIPSSDATAFIPSENDSDATAENDSXCOFFTOCSBSSSNOPTRBSSSLIBFUZZER_8BIT_COUNTERSCOVERAGE_COUNTERSCOVERAGE_AUXVARSTLSBSSSXREFSMACHOSYMSTRSMACHOSYMTABSMACHOINDIRECTPLTSMACHOINDIRECTGOTSFILEPATHSDYNIMPORTSHOSTOBJSUNDEFEXTSDWARFSECTSDWARFCUINFOSDWARFCONSTSDWARFFCNSDWARFABSFCNSDWARFTYPESDWARFVARSDWARFRANGESDWARFLOCSDWARFLINESSSEHUNWINDINFOSSEHSECT"
 
-var _SymKind_index = [...]uint16{0, 4, 9, 19, 28, 33, 40, 49, 56, 63, 70, 78, 88, 98, 110, 124, 136, 148, 160, 173, 186, 195, 204, 211, 219, 233, 243, 251, 257, 266, 274, 281, 291, 299, 304, 313, 317, 326, 349, 366, 382, 389, 394, 406, 418, 435, 452, 461, 471, 479, 488, 498, 510, 521, 530, 542, 552, 561, 572, 581, 592, 606, 614}
+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}
 
 func (i SymKind) String() string {
        if i >= SymKind(len(_SymKind_index)-1) {