golang/go · error

relocation number %d symbol index idx=%d cannot be large the

Error message

relocation number %d symbol index idx=%d cannot be large then number of symbols %d

What it means

Error "relocation number %d symbol index idx=%d cannot be large then number of symbols %d" thrown in golang/go.

Source

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

		}
		if rsect.NumberOfRelocations == 0 {
			continue
		}
		if rsect.Characteristics&pe.IMAGE_SCN_MEM_DISCARDABLE != 0 {
			continue
		}
		if rsect.Characteristics&(pe.IMAGE_SCN_CNT_CODE|pe.IMAGE_SCN_CNT_INITIALIZED_DATA|pe.IMAGE_SCN_CNT_UNINITIALIZED_DATA) == 0 {
			// This has been seen for .idata sections, which we
			// want to ignore. See issues 5106 and 5273.
			continue
		}

		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 {

View on GitHub (pinned to b6b368adc5)

When it happens

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