Skip to content

Commit fa8a28d

Browse files
committed
cmd/link: turn some globals into flag pointer variables
This moves many of the flag globals into main and assigns them to their flag.String/Int64/... directly. Updates #16818 Change-Id: Ibbff44a273bbc5cb7228e43f147900ee8848517f Reviewed-on: https://go-review.googlesource.com/27473 Reviewed-by: David Crawshaw <[email protected]>
1 parent 2369013 commit fa8a28d

File tree

26 files changed

+577
-591
lines changed

26 files changed

+577
-591
lines changed

src/cmd/link/internal/amd64/asm.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -657,15 +657,15 @@ func asmb(ctxt *ld.Link) {
657657
break
658658

659659
case obj.Hdarwin:
660-
ld.Debug['8'] = true /* 64-bit addresses */
660+
ld.Flag8 = true /* 64-bit addresses */
661661

662662
case obj.Hlinux,
663663
obj.Hfreebsd,
664664
obj.Hnetbsd,
665665
obj.Hopenbsd,
666666
obj.Hdragonfly,
667667
obj.Hsolaris:
668-
ld.Debug['8'] = true /* 64-bit addresses */
668+
ld.Flag8 = true /* 64-bit addresses */
669669

670670
case obj.Hnacl,
671671
obj.Hwindows:
@@ -676,19 +676,19 @@ func asmb(ctxt *ld.Link) {
676676
ld.Spsize = 0
677677
ld.Lcsize = 0
678678
symo := int64(0)
679-
if !ld.Debug['s'] {
679+
if !*ld.FlagS {
680680
if ctxt.Debugvlog != 0 {
681681
fmt.Fprintf(ctxt.Bso, "%5.2f sym\n", obj.Cputime())
682682
}
683683
ctxt.Bso.Flush()
684684
switch ld.HEADTYPE {
685685
default:
686686
case obj.Hplan9:
687-
ld.Debug['s'] = true
687+
*ld.FlagS = true
688688
symo = int64(ld.Segdata.Fileoff + ld.Segdata.Filelen)
689689

690690
case obj.Hdarwin:
691-
symo = int64(ld.Segdwarf.Fileoff + uint64(ld.Rnd(int64(ld.Segdwarf.Filelen), int64(ld.INITRND))) + uint64(machlink))
691+
symo = int64(ld.Segdwarf.Fileoff + uint64(ld.Rnd(int64(ld.Segdwarf.Filelen), int64(*ld.FlagRound))) + uint64(machlink))
692692

693693
case obj.Hlinux,
694694
obj.Hfreebsd,
@@ -698,7 +698,7 @@ func asmb(ctxt *ld.Link) {
698698
obj.Hsolaris,
699699
obj.Hnacl:
700700
symo = int64(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)
701-
symo = ld.Rnd(symo, int64(ld.INITRND))
701+
symo = ld.Rnd(symo, int64(*ld.FlagRound))
702702

703703
case obj.Hwindows:
704704
symo = int64(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)

src/cmd/link/internal/amd64/obj.go

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import (
4242

4343
func Main() {
4444
linkarchinit()
45-
ld.Ldmain()
45+
ld.Main()
4646
}
4747

4848
func linkarchinit() {
@@ -121,28 +121,28 @@ func archinit(ctxt *ld.Link) {
121121
case obj.Hplan9: /* plan 9 */
122122
ld.HEADR = 32 + 8
123123

124-
if ld.INITTEXT == -1 {
125-
ld.INITTEXT = 0x200000 + int64(ld.HEADR)
124+
if *ld.FlagTextAddr == -1 {
125+
*ld.FlagTextAddr = 0x200000 + int64(ld.HEADR)
126126
}
127-
if ld.INITDAT == -1 {
128-
ld.INITDAT = 0
127+
if *ld.FlagDataAddr == -1 {
128+
*ld.FlagDataAddr = 0
129129
}
130-
if ld.INITRND == -1 {
131-
ld.INITRND = 0x200000
130+
if *ld.FlagRound == -1 {
131+
*ld.FlagRound = 0x200000
132132
}
133133

134134
case obj.Hdarwin: /* apple MACH */
135135
ld.Machoinit()
136136

137137
ld.HEADR = ld.INITIAL_MACHO_HEADR
138-
if ld.INITRND == -1 {
139-
ld.INITRND = 4096
138+
if *ld.FlagRound == -1 {
139+
*ld.FlagRound = 4096
140140
}
141-
if ld.INITTEXT == -1 {
142-
ld.INITTEXT = 4096 + int64(ld.HEADR)
141+
if *ld.FlagTextAddr == -1 {
142+
*ld.FlagTextAddr = 4096 + int64(ld.HEADR)
143143
}
144-
if ld.INITDAT == -1 {
145-
ld.INITDAT = 0
144+
if *ld.FlagDataAddr == -1 {
145+
*ld.FlagDataAddr = 0
146146
}
147147

148148
case obj.Hlinux, /* elf64 executable */
@@ -154,47 +154,47 @@ func archinit(ctxt *ld.Link) {
154154
ld.Elfinit(ctxt)
155155

156156
ld.HEADR = ld.ELFRESERVE
157-
if ld.INITTEXT == -1 {
158-
ld.INITTEXT = (1 << 22) + int64(ld.HEADR)
157+
if *ld.FlagTextAddr == -1 {
158+
*ld.FlagTextAddr = (1 << 22) + int64(ld.HEADR)
159159
}
160-
if ld.INITDAT == -1 {
161-
ld.INITDAT = 0
160+
if *ld.FlagDataAddr == -1 {
161+
*ld.FlagDataAddr = 0
162162
}
163-
if ld.INITRND == -1 {
164-
ld.INITRND = 4096
163+
if *ld.FlagRound == -1 {
164+
*ld.FlagRound = 4096
165165
}
166166

167167
case obj.Hnacl:
168168
ld.Elfinit(ctxt)
169-
ld.Debug['w'] = true // disable dwarf, which gets confused and is useless anyway
169+
*ld.FlagW = true // disable dwarf, which gets confused and is useless anyway
170170
ld.HEADR = 0x10000
171171
ld.Funcalign = 32
172-
if ld.INITTEXT == -1 {
173-
ld.INITTEXT = 0x20000
172+
if *ld.FlagTextAddr == -1 {
173+
*ld.FlagTextAddr = 0x20000
174174
}
175-
if ld.INITDAT == -1 {
176-
ld.INITDAT = 0
175+
if *ld.FlagDataAddr == -1 {
176+
*ld.FlagDataAddr = 0
177177
}
178-
if ld.INITRND == -1 {
179-
ld.INITRND = 0x10000
178+
if *ld.FlagRound == -1 {
179+
*ld.FlagRound = 0x10000
180180
}
181181

182182
case obj.Hwindows: /* PE executable */
183183
ld.Peinit(ctxt)
184184

185185
ld.HEADR = ld.PEFILEHEADR
186-
if ld.INITTEXT == -1 {
187-
ld.INITTEXT = ld.PEBASE + int64(ld.PESECTHEADR)
186+
if *ld.FlagTextAddr == -1 {
187+
*ld.FlagTextAddr = ld.PEBASE + int64(ld.PESECTHEADR)
188188
}
189-
if ld.INITDAT == -1 {
190-
ld.INITDAT = 0
189+
if *ld.FlagDataAddr == -1 {
190+
*ld.FlagDataAddr = 0
191191
}
192-
if ld.INITRND == -1 {
193-
ld.INITRND = ld.PESECTALIGN
192+
if *ld.FlagRound == -1 {
193+
*ld.FlagRound = ld.PESECTALIGN
194194
}
195195
}
196196

197-
if ld.INITDAT != 0 && ld.INITRND != 0 {
198-
fmt.Printf("warning: -D0x%x is ignored because of -R0x%x\n", uint64(ld.INITDAT), uint32(ld.INITRND))
197+
if *ld.FlagDataAddr != 0 && *ld.FlagRound != 0 {
198+
fmt.Printf("warning: -D0x%x is ignored because of -R0x%x\n", uint64(*ld.FlagDataAddr), uint32(*ld.FlagRound))
199199
}
200200
}

src/cmd/link/internal/arm/asm.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@ func asmb(ctxt *ld.Link) {
630630

631631
ld.Lcsize = 0
632632
symo := uint32(0)
633-
if !ld.Debug['s'] {
633+
if !*ld.FlagS {
634634
// TODO: rationalize
635635
if ctxt.Debugvlog != 0 {
636636
fmt.Fprintf(ctxt.Bso, "%5.2f sym\n", obj.Cputime())
@@ -640,14 +640,14 @@ func asmb(ctxt *ld.Link) {
640640
default:
641641
if ld.Iself {
642642
symo = uint32(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)
643-
symo = uint32(ld.Rnd(int64(symo), int64(ld.INITRND)))
643+
symo = uint32(ld.Rnd(int64(symo), int64(*ld.FlagRound)))
644644
}
645645

646646
case obj.Hplan9:
647647
symo = uint32(ld.Segdata.Fileoff + ld.Segdata.Filelen)
648648

649649
case obj.Hdarwin:
650-
symo = uint32(ld.Segdwarf.Fileoff + uint64(ld.Rnd(int64(ld.Segdwarf.Filelen), int64(ld.INITRND))) + uint64(machlink))
650+
symo = uint32(ld.Segdwarf.Fileoff + uint64(ld.Rnd(int64(ld.Segdwarf.Filelen), int64(*ld.FlagRound))) + uint64(machlink))
651651
}
652652

653653
ld.Cseek(int64(symo))
@@ -717,7 +717,7 @@ func asmb(ctxt *ld.Link) {
717717
}
718718

719719
ld.Cflush()
720-
if ld.Debug['c'] {
720+
if *ld.FlagC {
721721
fmt.Printf("textsize=%d\n", ld.Segtext.Filelen)
722722
fmt.Printf("datsize=%d\n", ld.Segdata.Filelen)
723723
fmt.Printf("bsssize=%d\n", ld.Segdata.Length-ld.Segdata.Filelen)

src/cmd/link/internal/arm/obj.go

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import (
4242

4343
func Main() {
4444
linkarchinit()
45-
ld.Ldmain()
45+
ld.Main()
4646
}
4747

4848
func linkarchinit() {
@@ -112,64 +112,64 @@ func archinit(ctxt *ld.Link) {
112112
case obj.Hplan9: /* plan 9 */
113113
ld.HEADR = 32
114114

115-
if ld.INITTEXT == -1 {
116-
ld.INITTEXT = 4128
115+
if *ld.FlagTextAddr == -1 {
116+
*ld.FlagTextAddr = 4128
117117
}
118-
if ld.INITDAT == -1 {
119-
ld.INITDAT = 0
118+
if *ld.FlagDataAddr == -1 {
119+
*ld.FlagDataAddr = 0
120120
}
121-
if ld.INITRND == -1 {
122-
ld.INITRND = 4096
121+
if *ld.FlagRound == -1 {
122+
*ld.FlagRound = 4096
123123
}
124124

125125
case obj.Hlinux, /* arm elf */
126126
obj.Hfreebsd,
127127
obj.Hnetbsd,
128128
obj.Hopenbsd:
129-
ld.Debug['d'] = false
129+
*ld.FlagD = false
130130
// with dynamic linking
131131
ld.Elfinit(ctxt)
132132
ld.HEADR = ld.ELFRESERVE
133-
if ld.INITTEXT == -1 {
134-
ld.INITTEXT = 0x10000 + int64(ld.HEADR)
133+
if *ld.FlagTextAddr == -1 {
134+
*ld.FlagTextAddr = 0x10000 + int64(ld.HEADR)
135135
}
136-
if ld.INITDAT == -1 {
137-
ld.INITDAT = 0
136+
if *ld.FlagDataAddr == -1 {
137+
*ld.FlagDataAddr = 0
138138
}
139-
if ld.INITRND == -1 {
140-
ld.INITRND = 4096
139+
if *ld.FlagRound == -1 {
140+
*ld.FlagRound = 4096
141141
}
142142

143143
case obj.Hnacl:
144144
ld.Elfinit(ctxt)
145145
ld.HEADR = 0x10000
146146
ld.Funcalign = 16
147-
if ld.INITTEXT == -1 {
148-
ld.INITTEXT = 0x20000
147+
if *ld.FlagTextAddr == -1 {
148+
*ld.FlagTextAddr = 0x20000
149149
}
150-
if ld.INITDAT == -1 {
151-
ld.INITDAT = 0
150+
if *ld.FlagDataAddr == -1 {
151+
*ld.FlagDataAddr = 0
152152
}
153-
if ld.INITRND == -1 {
154-
ld.INITRND = 0x10000
153+
if *ld.FlagRound == -1 {
154+
*ld.FlagRound = 0x10000
155155
}
156156

157157
case obj.Hdarwin: /* apple MACH */
158-
ld.Debug['w'] = true // disable DWARF generation
158+
*ld.FlagW = true // disable DWARF generation
159159
ld.Machoinit()
160160
ld.HEADR = ld.INITIAL_MACHO_HEADR
161-
if ld.INITTEXT == -1 {
162-
ld.INITTEXT = 4096 + int64(ld.HEADR)
161+
if *ld.FlagTextAddr == -1 {
162+
*ld.FlagTextAddr = 4096 + int64(ld.HEADR)
163163
}
164-
if ld.INITDAT == -1 {
165-
ld.INITDAT = 0
164+
if *ld.FlagDataAddr == -1 {
165+
*ld.FlagDataAddr = 0
166166
}
167-
if ld.INITRND == -1 {
168-
ld.INITRND = 4096
167+
if *ld.FlagRound == -1 {
168+
*ld.FlagRound = 4096
169169
}
170170
}
171171

172-
if ld.INITDAT != 0 && ld.INITRND != 0 {
173-
fmt.Printf("warning: -D0x%x is ignored because of -R0x%x\n", uint64(ld.INITDAT), uint32(ld.INITRND))
172+
if *ld.FlagDataAddr != 0 && *ld.FlagRound != 0 {
173+
fmt.Printf("warning: -D0x%x is ignored because of -R0x%x\n", uint64(*ld.FlagDataAddr), uint32(*ld.FlagRound))
174174
}
175175
}

src/cmd/link/internal/arm64/asm.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ func asmb(ctxt *ld.Link) {
439439

440440
ld.Lcsize = 0
441441
symo := uint32(0)
442-
if !ld.Debug['s'] {
442+
if !*ld.FlagS {
443443
// TODO: rationalize
444444
if ctxt.Debugvlog != 0 {
445445
fmt.Fprintf(ctxt.Bso, "%5.2f sym\n", obj.Cputime())
@@ -449,14 +449,14 @@ func asmb(ctxt *ld.Link) {
449449
default:
450450
if ld.Iself {
451451
symo = uint32(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)
452-
symo = uint32(ld.Rnd(int64(symo), int64(ld.INITRND)))
452+
symo = uint32(ld.Rnd(int64(symo), int64(*ld.FlagRound)))
453453
}
454454

455455
case obj.Hplan9:
456456
symo = uint32(ld.Segdata.Fileoff + ld.Segdata.Filelen)
457457

458458
case obj.Hdarwin:
459-
symo = uint32(ld.Segdwarf.Fileoff + uint64(ld.Rnd(int64(ld.Segdwarf.Filelen), int64(ld.INITRND))) + uint64(machlink))
459+
symo = uint32(ld.Segdwarf.Fileoff + uint64(ld.Rnd(int64(ld.Segdwarf.Filelen), int64(*ld.FlagRound))) + uint64(machlink))
460460
}
461461

462462
ld.Cseek(int64(symo))
@@ -526,7 +526,7 @@ func asmb(ctxt *ld.Link) {
526526
}
527527

528528
ld.Cflush()
529-
if ld.Debug['c'] {
529+
if *ld.FlagC {
530530
fmt.Printf("textsize=%d\n", ld.Segtext.Filelen)
531531
fmt.Printf("datsize=%d\n", ld.Segdata.Filelen)
532532
fmt.Printf("bsssize=%d\n", ld.Segdata.Length-ld.Segdata.Filelen)

0 commit comments

Comments
 (0)