summaryrefslogtreecommitdiff
path: root/src/cmd/ld/lib.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/ld/lib.h')
-rw-r--r--src/cmd/ld/lib.h38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/cmd/ld/lib.h b/src/cmd/ld/lib.h
index adde2c9ff..646aeb535 100644
--- a/src/cmd/ld/lib.h
+++ b/src/cmd/ld/lib.h
@@ -28,8 +28,37 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
-// Where symbol table data gets mapped into memory.
-#define SYMDATVA 0x99LL<<24
+enum
+{
+ Sxxx,
+
+ /* order here is order in output file */
+ STEXT,
+ SELFDATA,
+ SMACHOPLT,
+ STYPE,
+ SSTRING,
+ SGOSTRING,
+ SRODATA,
+ SDATA,
+ SMACHO, /* Mach-O __nl_symbol_ptr */
+ SMACHOGOT,
+ SWINDOWS,
+ SBSS,
+
+ SXREF,
+ SMACHODYNSTR,
+ SMACHODYNSYM,
+ SMACHOINDIRECTPLT,
+ SMACHOINDIRECTGOT,
+ SFILE,
+ SCONST,
+ SDYNIMPORT,
+
+ SSUB = 1<<8, /* sub-symbol, linked from parent via ->sub list */
+
+ NHASH = 100003,
+};
typedef struct Library Library;
struct Library
@@ -79,6 +108,7 @@ EXTERN Library* library;
EXTERN int libraryp;
EXTERN int nlibrary;
EXTERN Sym* hash[NHASH];
+EXTERN Sym* allsym;
EXTERN Sym* histfrog[MAXHIST];
EXTERN uchar fnuxi8[8];
EXTERN uchar fnuxi4[4];
@@ -106,6 +136,7 @@ void asmlc(void);
void histtoauto(void);
void collapsefrog(Sym *s);
Sym* lookup(char *symb, int v);
+Sym* rlookup(char *symb, int v);
void nuxiinit(void);
int find1(int32 l, int c);
int find2(int32 l, int c);
@@ -243,3 +274,6 @@ EXTERN char* headstring;
extern Header headers[];
int headtype(char*);
+
+int Yconv(Fmt*);
+#pragma varargck type "Y" Sym*