golang/go · error

reloc of invalid sym %s idx=%d type=%d

Error message

reloc of invalid sym %s idx=%d type=%d

What it means

Error "reloc of invalid sym %s idx=%d type=%d" thrown in golang/go.

Source

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

		splitResources := strings.HasPrefix(rsect.Name, ".rsrc$")
		issehsect := issehsect(arch, rsect)
		sb := l.MakeSymbolUpdater(state.sectsyms[rsect])
		for j, r := range rsect.Relocs {
			if int(r.SymbolTableIndex) >= len(f.COFFSymbols) {
				return nil, fmt.Errorf("relocation number %d symbol index idx=%d cannot be large then number of symbols %d", j, r.SymbolTableIndex, len(f.COFFSymbols))
			}
			pesym := &f.COFFSymbols[r.SymbolTableIndex]
			_, rSym, err := state.readpesym(pesym)
			if err != nil {
				return nil, err
			}
			if rSym == 0 {
				name, err := pesym.FullName(f.StringTable)
				if err != nil {
					name = string(pesym.Name[:])
				}
				return nil, fmt.Errorf("reloc of invalid sym %s idx=%d type=%d", name, r.SymbolTableIndex, pesym.Type)
			}

			rSize := uint8(4)
			rOff := int32(r.VirtualAddress)
			var rType objabi.RelocType
			switch arch.Family {
			default:
				return nil, fmt.Errorf("%s: unsupported arch %v", pn, arch.Family)
			case sys.I386:
				switch r.Type {
				case IMAGE_REL_I386_REL32:
					rType = objabi.R_PCREL
				case IMAGE_REL_I386_DIR32:
					rType = objabi.R_ADDR
				case IMAGE_REL_I386_DIR32NB:
					rType = objabi.R_PEIMAGEOFF
				}
			case sys.AMD64:

View on GitHub (pinned to b6b368adc5)

When it happens

Trigger: Thrown at src/cmd/link/internal/loadpe/ldpe.go:364 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/b44a24320f8514e7. Report an issue: GitHub.