From 26263354a3d607e1cc6c06be67530dad57f43074 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 4 Nov 2015 18:20:57 -0800 Subject: [PATCH] cmd/link: don't warn about unnamed symbols in .debug_str section They reportedly occur with LLVM 3.7 on FreeBSD ARM. Fixes #13139. Change-Id: Ia7d053a8662696b1984e81fbd1d908c951c35a98 Reviewed-on: https://go-review.googlesource.com/16667 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: Minux Ma --- src/cmd/link/internal/ld/ldelf.go | 7 +++++++ src/cmd/link/internal/ld/lib.go | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/cmd/link/internal/ld/ldelf.go b/src/cmd/link/internal/ld/ldelf.go index a321016999..c088b07e91 100644 --- a/src/cmd/link/internal/ld/ldelf.go +++ b/src/cmd/link/internal/ld/ldelf.go @@ -765,6 +765,13 @@ func ldelf(f *obj.Biobuf, pkg string, length int64, pn string) { if strings.HasPrefix(sym.name, ".Linfo_string") { // clang does this continue } + + if sym.name == "" && sym.type_ == 0 && sect.name == ".debug_str" { + // This reportedly happens with clang 3.7 on ARM. + // See issue 13139. + continue + } + Diag("%s: sym#%d: ignoring %s in section %d (type %d)", pn, i, sym.name, sym.shndx, sym.type_) continue } diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index f3ca4b8f27..f0e051173b 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -1807,7 +1807,7 @@ func genasmsym(put func(*LSym, string, int, int64, int64, int, *LSym)) { } for s := Ctxt.Allsym; s != nil; s = s.Allsym { - if s.Hide != 0 || (s.Name[0] == '.' && s.Version == 0 && s.Name != ".rathole") { + if s.Hide != 0 || ((s.Name == "" || s.Name[0] == '.') && s.Version == 0 && s.Name != ".rathole") { continue } switch s.Type & obj.SMASK {