mirror of
https://github.com/golang/go
synced 2024-11-17 12:14:47 -07:00
embed: document the maximum file size supported
Fixes #47627 Change-Id: Ia1edfb6249863ab055fab68a35666bc2bdf21dcb Reviewed-on: https://go-review.googlesource.com/c/go/+/341689 Reviewed-by: Jay Conrod <jayconrod@google.com> Trust: Michael Matloob <matloob@golang.org>
This commit is contained in:
parent
f98b6111eb
commit
d70c69d830
@ -92,6 +92,10 @@ func StringSym(pos src.XPos, s string) (data *obj.LSym) {
|
|||||||
return symdata
|
return symdata
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// maxFileSize is the maximum file size permitted by the linker
|
||||||
|
// (see issue #9862).
|
||||||
|
const maxFileSize = int64(2e9)
|
||||||
|
|
||||||
// fileStringSym returns a symbol for the contents and the size of file.
|
// fileStringSym returns a symbol for the contents and the size of file.
|
||||||
// If readonly is true, the symbol shares storage with any literal string
|
// If readonly is true, the symbol shares storage with any literal string
|
||||||
// or other file with the same content and is placed in a read-only section.
|
// or other file with the same content and is placed in a read-only section.
|
||||||
@ -133,12 +137,12 @@ func fileStringSym(pos src.XPos, file string, readonly bool, hash []byte) (*obj.
|
|||||||
}
|
}
|
||||||
return sym, size, nil
|
return sym, size, nil
|
||||||
}
|
}
|
||||||
if size > 2e9 {
|
if size > maxFileSize {
|
||||||
// ggloblsym takes an int32,
|
// ggloblsym takes an int32,
|
||||||
// and probably the rest of the toolchain
|
// and probably the rest of the toolchain
|
||||||
// can't handle such big symbols either.
|
// can't handle such big symbols either.
|
||||||
// See golang.org/issue/9862.
|
// See golang.org/issue/9862.
|
||||||
return nil, 0, fmt.Errorf("file too large")
|
return nil, 0, fmt.Errorf("file too large (%d bytes > %d bytes)", size, maxFileSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
// File is too big to read and keep in memory.
|
// File is too big to read and keep in memory.
|
||||||
|
Loading…
Reference in New Issue
Block a user