*** UNIX MANUAL PAGE BROWSER ***

A Nergahak database for man pages research.

Navigation

Directory Browser

1Browse 4.4BSD4.4BSD
1Browse Digital UNIXDigital UNIX 4.0e
1Browse FreeBSDFreeBSD 14.3
1Browse MINIXMINIX 3.4.0rc6-d5e4fc0
1Browse NetBSDNetBSD 10.1
1Browse OpenBSDOpenBSD 7.7
1Browse UNIX v7Version 7 UNIX
1Browse UNIX v10Version 10 UNIX

Manual Page Search

Manual Page Result

0 Command: reloc | Section: 4 | Source: Digital UNIX | File: reloc.4.gz
reloc(4) Kernel Interfaces Manual reloc(4) NAME reloc - Relocation information for an object file SYNOPSIS #include <reloc.h> DESCRIPTION Object files have one relocation entry for each relocatable reference in the text or data. If relocation information is present, it will be in the following format. struct reloc { long r_vaddr ; /* (virtual) address of reference */ unsigned r_symndx ; /* index into symbol table */ unsigned r_type:8 ; /* relocation type */ unsigned r_extern:1 ; /* if 1 symndx is an index into the external table the external table, else symndx is a section # */ unsigned r_offset;6 ; /* for R_OP_STORE, quad based LE bit offset */ unsigned r_reserved;11; /* Must be zero */ unsigned r_size;6 ; /* R_OP_STORE, bit size */ } ; /* Relocation types */ #define R_ABS 0 #define R_REFLONG 1 #define R_REFQUAD 2 #define R_GPREL32 3 #define R_LITERAL 4 #define R_LITUSE 5 #define R_GPDISP 6 #define R_BRADDR 7 #define R_HINT 8 #define R_SREL16 9 /* self relative 16 bit offset */ #define R_SREL32 10 /* self relative 32 bit offset */ #define R_SREL64 11 /* self relative 64-bit offset */ #define R_OP_PUSH 12 /* stack[++tos] = relocate(vaddr) */ #define R_OP_STORE 13 /* vaddr(r_offset:r_size = stack[tos--] */ #define R_OP_PSUB 14 /* stack[tos] = stack[tos] - relocate(vaddr) */ #define R_OP_PRSHIFT 15 /* stack[tos] = stack[tos] >> relocate(vaddr) */ #define R_GPVALUE 16 /* Section numbers */ #define R_SN_NULL 0 #define R_SN_TEXT 1 #define R_SN_RDATA 2 #define R_SN_DATA 3 #define R_SN_SDATA 4 #define R_SN_SBSS 5 #define R_SN_BSS 6 #define R_SN_INIT 7 #define R_SN_LIT8 8 #define R_SN_LIT4 9 #define R_SN_XDATA 10 #define R_SN_PDATE 11 #define R_SN_FINI 12 #define R_SN_LITA 13 #define R_SN_ABS 14 The link editor (ld) reads each input section and performs relocation. The relocation entries direct how references found within the input section are treated. If r_extern is zero then it is a local relocation entry and then r_sym- ndx is a section number (R_SN_*). For these entries the starting ad- dress for the section referenced by the section number is used in place of an external symbol table entry's value. For every external relocation (except R_ABS) a signed constant is added to the symbol's virtual address that the relocation entry refers to. This constant is assembled at the address being relocated. R_ABS A relocation has already been performed. R_REFLONG A 32-bit reference to the symbol's virtual address. R_REFQUAD A 64-bit reference to the symbol's virtual address. R_GPREL32 A 32-bit displacement from the global pointer to the symbol's virtual address. R_LITERAL A reference to a literal in the literal address pool as an offset from the global pointer. R_LITUSE Iden- tifies usage of a lteral address previously loaded into a register. The r_symndx field identifies the specific usage of the register. See the Assembly Language Programmer's Guide for more information. R_GPDISP Identifies an lda/ldah instruction pair that is used to initialize a procedure's global-pointer register. The r_symndx contains a byte offset, which, when added to the r_vaddr field results in the address of the other instruction of the pair. R_BRADDR A 21-bit branch reference to the symbol's virtual ad- dress. R_HINT A 14-bit jsr hint reference to the symbol's virtual address. R_SREL16 A 16-bit self-relative reference to the symbol's vir- tual address. R_SREL32 A 32-bit self-relative reference to the symbols's virtual address. R_SREL64 A 64-bit self-relative reference to the symbol's vir- tual address. R_OP_PUSH Push symbol's virtual address on relocation expres- sion stack. R_OP_STORE Pop value from the relocation expression stack and store at the symbol's virtual address. The r_size field determines the number of bits stored. The r_offset field designates the bit offset from the symbol to the target. R_OP_PSUB Pop value from the relocation expression stack and subtract the symbol's virtual address. The result is pushed on the relocation expression stack. R_OP_PRSHIFT Pop value from the relocation expression stack and shift right by the symbol's value. The result is pushed on the relocation stack. R_GPVALUE Specifies a new gp value is to be used starting with the address specified by the r_vaddr field. The gp value is the sum of the optional header's gp_value field and the r_symndx field. The r_extern field must be zero. RELATED INFORMATION as(1), ld(1), a.out(4), syms(4), scnhdr(4). Assembly Language Programmer's Guide delim off reloc(4)

Navigation Options