golang/go · error

unexpected flags %#06x for PE section %s

Error message

unexpected flags %#06x for PE section %s

What it means

Error "unexpected flags %#06x for PE section %s" thrown in golang/go.

Source

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

		case pe.IMAGE_SCN_CNT_INITIALIZED_DATA | pe.IMAGE_SCN_MEM_READ: //.rdata
			if issehsect(arch, sect) {
				bld.SetType(sym.SSEHSECT)
				bld.SetAlign(4)
			} else {
				bld.SetType(sym.SRODATA)
			}

		case pe.IMAGE_SCN_CNT_UNINITIALIZED_DATA | pe.IMAGE_SCN_MEM_READ | pe.IMAGE_SCN_MEM_WRITE: //.bss
			bld.SetType(sym.SNOPTRBSS)

		case pe.IMAGE_SCN_CNT_INITIALIZED_DATA | pe.IMAGE_SCN_MEM_READ | pe.IMAGE_SCN_MEM_WRITE: //.data
			bld.SetType(sym.SNOPTRDATA)

		case pe.IMAGE_SCN_CNT_CODE | pe.IMAGE_SCN_MEM_EXECUTE | pe.IMAGE_SCN_MEM_READ: //.text
			bld.SetType(sym.STEXT)

		default:
			return nil, fmt.Errorf("unexpected flags %#06x for PE section %s", sect.Characteristics, sect.Name)
		}

		if bld.Type() != sym.SNOPTRBSS {
			data, err := sect.Data()
			if err != nil {
				return nil, err
			}
			state.sectdata[sect] = data
			bld.SetData(data)
		}
		bld.SetSize(int64(sect.Size))
		state.sectsyms[sect] = s
		if sect.Name == ".rsrc" || strings.HasPrefix(sect.Name, ".rsrc$") {
			ls.Resources = append(ls.Resources, s)
		} else if bld.Type() == sym.SSEHSECT {
			if sect.Name == ".pdata" {
				pdata = s
			} else if sect.Name == ".xdata" {

View on GitHub (pinned to b6b368adc5)

When it happens

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