go/src/cmd/link/internal/ld/xcoff.go

const XCOFFHDRRESERVE

const XCOFFSECTALIGN

const XCOFFTEXTBASE

const XCOFFDATABASE

type XcoffFileHdr64

const U64_TOCMAGIC

const F_RELFLG

const F_EXEC

const F_LNNO

const F_FDPR_PROF

const F_FDPR_OPTI

const F_DSA

const F_VARPG

const F_DYNLOAD

const F_SHROBJ

const F_LOADONLY

type XcoffAoutHdr64

type XcoffScnHdr64

const STYP_DWARF

const STYP_TEXT

const STYP_DATA

const STYP_BSS

const STYP_EXCEPT

const STYP_INFO

const STYP_TDATA

const STYP_TBSS

const STYP_LOADER

const STYP_DEBUG

const STYP_TYPCHK

const STYP_OVRFLO

const SSUBTYP_DWINFO

const SSUBTYP_DWLINE

const SSUBTYP_DWPBNMS

const SSUBTYP_DWPBTYP

const SSUBTYP_DWARNGE

const SSUBTYP_DWABREV

const SSUBTYP_DWSTR

const SSUBTYP_DWRNGES

const SSUBTYP_DWLOC

const SSUBTYP_DWFRAME

const SSUBTYP_DWMAC

const FILHSZ_32

const FILHSZ_64

const AOUTHSZ_EXEC32

const AOUTHSZ_EXEC64

const SCNHSZ_32

const SCNHSZ_64

const LDHDRSZ_32

const LDHDRSZ_64

const LDSYMSZ_64

const RELSZ_64

type xcoffSym

type XcoffSymEnt64

const SYMESZ

const N_DEBUG

const N_ABS

const N_UNDEF

const SYM_V_INTERNAL

const SYM_V_HIDDEN

const SYM_V_PROTECTED

const SYM_V_EXPORTED

const SYM_TYPE_FUNC

const C_NULL

const C_EXT

const C_STAT

const C_BLOCK

const C_FCN

const C_FILE

const C_HIDEXT

const C_BINCL

const C_EINCL

const C_WEAKEXT

const C_DWARF

const C_GSYM

const C_LSYM

const C_PSYM

const C_RSYM

const C_RPSYM

const C_STSYM

const C_BCOMM

const C_ECOML

const C_ECOMM

const C_DECL

const C_ENTRY

const C_FUN

const C_BSTAT

const C_ESTAT

const C_GTLS

const C_STTLS

type XcoffAuxFile64

type XcoffAuxFcn64

type XcoffAuxCSect64

type XcoffAuxDWARF64

const _AUX_EXCEPT

const _AUX_FCN

const _AUX_SYM

const _AUX_FILE

const _AUX_CSECT

const _AUX_SECT

const XFT_FN

const XFT_CT

const XFT_CV

const XFT_CD

const XTY_ER

const XTY_SD

const XTY_LD

const XTY_CM

const XTY_WK

const XTY_EXP

const XTY_ENT

const XTY_IMP

const XMC_PR

const XMC_RO

const XMC_DB

const XMC_TC

const XMC_UA

const XMC_RW

const XMC_GL

const XMC_XO

const XMC_SV

const XMC_BS

const XMC_DS

const XMC_UC

const XMC_TC0

const XMC_TD

const XMC_SV64

const XMC_SV3264

const XMC_TL

const XMC_UL

const XMC_TE

type XcoffLdHdr64

type XcoffLdSym64

type xcoffLoaderSymbol

type XcoffLdImportFile64

type XcoffLdRel64

type xcoffLoaderReloc

const XCOFF_R_POS

const XCOFF_R_NEG

const XCOFF_R_REL

const XCOFF_R_TOC

const XCOFF_R_TRL

const XCOFF_R_TRLA

const XCOFF_R_GL

const XCOFF_R_TCL

const XCOFF_R_RL

const XCOFF_R_RLA

const XCOFF_R_REF

const XCOFF_R_BA

const XCOFF_R_RBA

const XCOFF_R_BR

const XCOFF_R_RBR

const XCOFF_R_TLS

const XCOFF_R_TLS_IE

const XCOFF_R_TLS_LD

const XCOFF_R_TLS_LE

const XCOFF_R_TLSM

const XCOFF_R_TLSML

const XCOFF_R_TOCU

const XCOFF_R_TOCL

type XcoffLdStr64

type xcoffFile

var xfile

type xcoffStringTable

// size returns size of string table t.
func (t *xcoffStringTable) size() int {}

// add adds string str to string table t.
func (t *xcoffStringTable) add(str string) int {}

// write writes string table t into the output file.
func (t *xcoffStringTable) write(out *OutBuf) {}

// write writes XCOFF section sect into the output file.
func (sect *XcoffScnHdr64) write(ctxt *Link) {}

// addSection adds section to the XCOFF file f.
func (f *xcoffFile) addSection(name string, addr uint64, size uint64, fileoff uint64, flags uint32) *XcoffScnHdr64 {}

// addDwarfSection adds a dwarf section to the XCOFF file f.
// This function is similar to addSection, but Dwarf section names
// must be modified to conventional names and they are various subtypes.
func (f *xcoffFile) addDwarfSection(s *sym.Section) *XcoffScnHdr64 {}

// xcoffGetDwarfSubtype returns the XCOFF name of the DWARF section str
// and its subtype constant.
func xcoffGetDwarfSubtype(str string) (string, uint32) {}

// getXCOFFscnum returns the XCOFF section number of a Go section.
func (f *xcoffFile) getXCOFFscnum(sect *sym.Section) int16 {}

// Xcoffinit initialised some internal value and setups
// already known header information.
func Xcoffinit(ctxt *Link) {}

type xcoffSymSrcFile

var currDwscnoff

var currSymSrcFile

var outerSymSize

// xcoffUpdateOuterSize stores the size of outer symbols in order to have it
// in the symbol table.
func xcoffUpdateOuterSize(ctxt *Link, size int64, stype sym.SymKind) {}

// addSymbol writes a symbol or an auxiliary symbol entry on ctxt.out.
func (f *xcoffFile) addSymbol(sym xcoffSym) {}

// xcoffAlign returns the log base 2 of the symbol's alignment.
func xcoffAlign(ldr *loader.Loader, x loader.Sym, t SymbolType) uint8 {}

// logBase2 returns the log in base 2 of a.
func logBase2(a int) uint8 {}

// Write symbols needed when a new file appeared:
// - a C_FILE with one auxiliary entry for its name
// - C_DWARF symbols to provide debug information
// - a C_HIDEXT which will be a csect containing all of its functions
// It needs several parameters to create .csect symbols such as its entry point and its section number.
//
// Currently, a new file is in fact a new package. It seems to be OK, but it might change
// in the future.
func (f *xcoffFile) writeSymbolNewFile(ctxt *Link, name string, firstEntry uint64, extnum int16) {}

// Update values for the previous package.
//   - Svalue of the C_FILE symbol: if it is the last one, this Svalue must be -1
//   - Xsclen of the csect symbol.
func (f *xcoffFile) updatePreviousFile(ctxt *Link, last bool) {}

// Write symbol representing a .text function.
// The symbol table is split with C_FILE corresponding to each package
// and not to each source file as it should be.
func (f *xcoffFile) writeSymbolFunc(ctxt *Link, x loader.Sym) []xcoffSym {}

// put function used by genasmsym to write symbol table.
func putaixsym(ctxt *Link, x loader.Sym, t SymbolType) {}

// Generate XCOFF Symbol table.
// It will be written in out file in Asmbxcoff, because it must be
// at the very end, especially after relocation sections which needs symbols' index.
func (f *xcoffFile) asmaixsym(ctxt *Link) {}

func (f *xcoffFile) genDynSym(ctxt *Link) {}

// (*xcoffFile)adddynimpsym adds the dynamic symbol "s" to a XCOFF file.
// A new symbol named s.Extname() is created to be the actual dynamic symbol
// in the .loader section and in the symbol table as an External Reference.
// The symbol "s" is transformed to SXCOFFTOC to end up in .data section.
// However, there is no writing protection on those symbols and
// it might need to be added.
// TODO(aix): Handles dynamic symbols without library.
func (f *xcoffFile) adddynimpsym(ctxt *Link, s loader.Sym) {}

// Xcoffadddynrel adds a dynamic relocation in a XCOFF file.
// This relocation will be made by the loader.
func Xcoffadddynrel(target *Target, ldr *loader.Loader, syms *ArchSyms, s loader.Sym, r loader.Reloc, rIdx int) bool {}

func (ctxt *Link) doxcoff() {}

// Create loader section and returns its size.
func Loaderblk(ctxt *Link, off uint64) {}

func (f *xcoffFile) writeLdrScn(ctxt *Link, globalOff uint64) {}

func (f *xcoffFile) writeFileHeader(ctxt *Link) {}

func xcoffwrite(ctxt *Link) {}

// Generate XCOFF assembly file.
func asmbXcoff(ctxt *Link) {}

// emitRelocations emits relocation entries for go.o in external linking.
func (f *xcoffFile) emitRelocations(ctxt *Link, fileoff int64) {}

// xcoffCreateExportFile creates a file with exported symbols for
// -Wl,-bE option.
// ld won't export symbols unless they are listed in an export file.
func xcoffCreateExportFile(ctxt *Link) (fname string) {}