From 0a338f75d4c64ba72cf586a28ec1a674c8b4bb77 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 30 Apr 2019 15:23:14 -0400 Subject: sort: simplify bootstrap We compile package sort as part of the compiler bootstrap, to make sure the compiler uses a consistent sort algorithm no matter what version of Go it is compiled against. (This matters for elements that compare "equal" but are distinguishable.) Package sort was compiled in such a way as to disallow sort.Slice entirely during bootstrap (at least with some compilers), while cmd/internal/obj was compiled in such a way as to make obj.SortSlice available to all compilers, precisely because sort.Slice was not. This is all highly confusing. Simplify by making sort.Slice available all the time. Followup to CL 169137 and #30440 (and also CL 40114 and CL 73951). Change-Id: I127f4e02d6c71392805d256c3a90ef7c51f9ba0c Reviewed-on: https://go-review.googlesource.com/c/go/+/174525 Run-TryBot: Russ Cox TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/cmd/internal/obj/objfile.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/cmd/internal/obj/objfile.go') diff --git a/src/cmd/internal/obj/objfile.go b/src/cmd/internal/obj/objfile.go index a7927f50b7..6921df3675 100644 --- a/src/cmd/internal/obj/objfile.go +++ b/src/cmd/internal/obj/objfile.go @@ -104,7 +104,7 @@ func WriteObjFile(ctxt *Link, b *bufio.Writer) { // As they are created during Progedit, two symbols can be switched between // two different compilations. Therefore, BuildID will be different. // TODO: find a better place and optimize to only sort TOC symbols - SortSlice(ctxt.Data, func(i, j int) bool { + sort.Slice(ctxt.Data, func(i, j int) bool { return ctxt.Data[i].Name < ctxt.Data[j].Name }) } -- cgit v1.3-5-g9baa