golang/go · error

internal error: import symbol %q has invalid PLT setting %d

Error message

internal error: import symbol %q has invalid PLT setting %d

What it means

Error "internal error: import symbol %q has invalid PLT setting %d" thrown in golang/go.

Source

Thrown at src/cmd/link/internal/loadpe/ldpe.go:676

			}
			if isym == 0 {
				continue
			}
			if ldr.SymType(isym) != sym.SDYNIMPORT {
				continue
			}
			// For non-text symbols, forward the reference from __imp_X to
			// X immediately.
			if !isText {
				r.SetSym(isym)
				continue
			}
			// Flag this imp symbol to be processed later in windynrelocsym.
			ldr.SetGot(rs, RedirectToDynImportGotToken)
			// Consistency check: should be no PLT token here.
			splt := ldr.SymPlt(rs)
			if splt != -1 {
				return fmt.Errorf("internal error: import symbol %q has invalid PLT setting %d", ldr.SymName(rs), splt)
			}
			// Flag for dummy relocation.
			keeprelocneeded[rs] = isym
		}
	}
	for k, v := range keeprelocneeded {
		sb := ldr.MakeSymbolUpdater(k)
		r, _ := sb.AddRel(objabi.R_KEEP)
		r.SetSym(v)
	}
	importSymsState = nil
	return nil
}

func issehsect(arch *sys.Arch, s *pe.Section) bool {
	return arch.Family == sys.AMD64 && (s.Name == ".pdata" || s.Name == ".xdata")
}

View on GitHub (pinned to b6b368adc5)

When it happens

Trigger: Thrown at src/cmd/link/internal/loadpe/ldpe.go:676 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of golang/go@b6b368adc5 (2026-08-12). Data as JSON: /api/errors/e48c8bddd237d892. Report an issue: GitHub.