Browse Source

Next batch of changes!

Godzil 11 years ago
parent
commit
1c4e04de3a

+ 1 - 0
modules/src/object/object.h

@@ -51,5 +51,6 @@ _PROTOTYPE(unsigned int rd_unsigned2, (int fd));
 _PROTOTYPE(long rd_long, (int fd));
 _PROTOTYPE(void rd_bytes, (int fd, char *buf, long l));
 _PROTOTYPE(int rd_fd, (void));
+_PROTOTYPE(void rd_rew_relos, (struct outhead *head));
 
 #endif /* __OBJECT_INCLUDED__ */

+ 4 - 0
util/amisc/aelflod.c

@@ -22,6 +22,10 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
 #include <stdarg.h>
 #include <stdint.h>
 #include <string.h>

+ 6 - 2
util/amisc/anm.c

@@ -15,9 +15,15 @@
 #include    <string.h>
 #include	<ctype.h>
 
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
 #include	"out.h"
 #include	"arch.h"
 #include	"ranlib.h"
+#include	"object.h"
 
 int	numsort_flg;
 int	sectsort_flg;
@@ -98,8 +104,6 @@ int main(int argc, char *argv[])
 	exit(0);
 }
 
-int rd_unsigned2(int fd);
-
 void process(int fd)
 {
 	unsigned int	magic;

+ 1 - 1
util/amisc/ashow.c

@@ -1,4 +1,3 @@
-static char	rcsid[] = "$Id$";
 /*
  * show - make the contents of an ACK object file human readable.
  */
@@ -9,6 +8,7 @@ static char	rcsid[] = "$Id$";
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <out.h>
+#include "object.h"
 
 #define OK	0	/* Return value of gethead if Orl Korekt. */
 #define BMASK	0xFF	/* To extract least significant 8 bits from an int. */

+ 1 - 1
util/amisc/asize.c

@@ -7,7 +7,7 @@
 #include	<stdlib.h>
 #include	<stdio.h>
 #include 	"out.h"
-
+#include 	"object.h"
 /*
 	asize -- determine object size
 

+ 4 - 0
util/amisc/aslod.c

@@ -21,6 +21,10 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
 #include <stdarg.h>
 #include <string.h>
 #include "out.h"

+ 9 - 4
util/amisc/astrip.c

@@ -6,9 +6,13 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
 #include <signal.h>
 #include "out.h"
-
+#include "object.h"
 /*
 
 	astrip -- remove symbols and relocation bits
@@ -17,12 +21,13 @@
 
 char	temp_name[] = "/tmp/sXXXXXX";
 char	*tname;
-char	*mktemp();
-FILE	*fopen();
 FILE	*tf;
 struct outhead buf;
 int	readerror, writeerror;
 
+int strip(char *name);
+int copy(char *fnam, char *tnam, long size, int fr, int fw);
+
 int main(int argc, char *argv[])
 {
 	int	status;
@@ -113,7 +118,7 @@ int strip(char *name)
 
 int copy(char *fnam, char *tnam, long size, int fr, int fw)
 {
-	int s, n;
+	int s/*, n*/;
 	char lbuf[512];
 
 	while(size != (long)0) {

+ 1 - 4
util/led/archive.c

@@ -2,10 +2,6 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 #include <stdlib.h>
 #include <stdio.h>
 #include "arch.h"
@@ -15,6 +11,7 @@ static char rcsid[] = "$Id$";
 #include "debug.h"
 #include "memory.h"
 #include "defs.h"
+#include "object.h"
 
 #define ENDLIB		((long)0)
 

+ 13 - 0
util/led/archive.h

@@ -0,0 +1,13 @@
+/*
+ * The Amsterdam Compiler Kit
+ * See the copyright notice in the ACK home directory, in the file "Copyright".
+ */
+#ifndef UTIL_LED_ARCHIVE_H
+#define UTIL_LED_ARCHIVE_H
+
+/* util/led/archive.c */
+void arch(void);
+void arch2(void);
+
+#endif /* UTIL_LED_ARCHIVE_H */
+

+ 3 - 4
util/led/error.c

@@ -2,16 +2,15 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 #include <stdarg.h>
 #include <stdlib.h>
 #include <stdio.h>
+#include <unistd.h>
 #include <out.h>
 #include "const.h"
 
+
+
 static short	nerrors = 0;
 static void	diag(char *, char *, va_list);
 

+ 0 - 4
util/led/extract.c

@@ -2,10 +2,6 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 #include <stdlib.h>
 #include <stdio.h>
 #include "arch.h"

+ 5 - 7
util/led/finish.c

@@ -2,10 +2,6 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 #include <out.h>
 #include "const.h"
 #include "arch.h"
@@ -13,6 +9,7 @@ static char rcsid[] = "$Id$";
 #include "defs.h"
 #include "orig.h"
 #include "scan.h"
+#include "object.h"
 
 extern bool	incore;
 extern unsigned short	NLocals;
@@ -22,8 +19,9 @@ static void adjust_names(struct outname *name, struct outhead *head, char *chars
 static void handle_relos(struct outhead *head, struct outsect *sects, struct outname *names);
 static void put_locals(struct outname *name, unsigned int nnames);
 static void compute_origins(struct outsect *sect, unsigned int nsect);
-
-static put_dbug(long offdbug);
+#ifdef SYMDBUG
+static void put_dbug(long offdbug);
+#endif
 /*
  * We know all there is to know about the current module.
  * Now we relocate the values in the emitted bytes and write
@@ -235,7 +233,7 @@ static void compute_origins(struct outsect *sect, unsigned int nsect)
  * Write out what is after the string area. This is likely to be
  * debugging information.
  */
-static put_dbug(long offdbug)
+static void put_dbug(long offdbug)
 {
 	char		buf[512];
 	int	nbytes;

+ 0 - 4
util/led/main.c

@@ -2,10 +2,6 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 /*
  * led - linkage editor for ACK assemblers output format
  */

+ 9 - 10
util/led/memory.c

@@ -2,10 +2,6 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 /*
  * Memory manager. Memory is divided into NMEMS pieces. There is a struct
  * for each piece telling where it is, how many bytes are used, and how may
@@ -22,6 +18,7 @@ static char rcsid[] = "$Id$";
  */
 
 #include <stdio.h>
+#include <unistd.h>
 #include <out.h>
 #include "const.h"
 #include "assert.h"
@@ -29,6 +26,9 @@ static char rcsid[] = "$Id$";
 #include "arch.h"
 #include "memory.h"
 #include "defs.h"
+#include "object.h"
+
+#include <missing_proto.h>
 
 static ind_t move_up(int piece, ind_t incr);
 static bool compact(int piece, ind_t incr, int flag);
@@ -56,7 +56,7 @@ int sbreak(ind_t incr)
 	if ((refused && refused < incr) ||
 	    (sizeof(char *) < sizeof(long) &&
 	     (inc != incr || BASE + inc < BASE)) ||
-	    brk(BASE + incr) == -1) {
+	    brk(BASE + incr) == (void *)-1) {
 		if (!refused || refused > incr)
 			refused = incr;
 		return -1;
@@ -74,17 +74,16 @@ void init_core()
 	char		*base;
 	ind_t		total_size;
 	struct memory	*mem;
-	extern char		*sbrk();
 
 #include "mach.c"
 #define ALIGN 8			/* minimum alignment for pieces */
 #define AT_LEAST	(ind_t)2*ALIGN	/* See comment about string areas. */
 
 	total_size = (ind_t)0;	/* Will accumulate the sizes. */
-	BASE = base = sbrk(0);		/* First free. */
+	BASE = base = (char *)sbrk(0);		/* First free. */
 	if ((int)base % ALIGN) {
-		base  = sbrk(ALIGN - (int)base % ALIGN);
-		BASE = base = sbrk(0);
+		base  = (char *)sbrk(ALIGN - (int)base % ALIGN);
+		BASE = base = (char *)sbrk(0);
 	}
 	/*
 	 * String areas are special-cased. The first byte is unused as a way to
@@ -537,7 +536,7 @@ void write_bytes()
 	extern int		flagword;
 	extern struct outhead	outhead;
 	extern struct outsect	outsect[];
-	extern char		*outputname;
+	/* extern char		*outputname; */
 	int			sectionno = 0;
 
 	nsect = outhead.oh_nsect;

+ 2 - 4
util/led/output.c

@@ -2,13 +2,11 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 #include <out.h>
 #include "const.h"
 #include "memory.h"
+#include "object.h"
+#include "defs.h"
 
 static void generate_section_names();
 

+ 0 - 4
util/led/read.c

@@ -2,10 +2,6 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 #include <stdio.h>
 #include <out.h>
 #include "const.h"

+ 0 - 4
util/led/relocate.c

@@ -2,10 +2,6 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 #include <stdlib.h>
 #include <stdio.h>
 #include "out.h"

+ 0 - 4
util/led/save.c

@@ -2,10 +2,6 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 /*
  * If everything is kept in core, we must save some things for the second pass.
  */

+ 3 - 6
util/led/scan.c

@@ -2,17 +2,13 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#ifdef SYMDBUG
+#include <unistd.h>
+#include <fcntl.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#endif /* SYMDBUG */
 #include "arch.h"
 #include "out.h"
 #include "ranlib.h"
@@ -22,6 +18,7 @@ static char rcsid[] = "$Id$";
 #include "scan.h"
 #include "debug.h"
 #include "defs.h"
+#include "object.h"
 
 #define READ	0
 

+ 0 - 4
util/led/sym.c

@@ -2,10 +2,6 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 /*
  * Symbol table management.
  */

+ 6 - 4
util/led/write.c

@@ -2,19 +2,21 @@
  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
-#ifndef lint
-static char rcsid[] = "$Id$";
-#endif
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
 #include "out.h"
 #include "const.h"
 #include "assert.h"
 #include "memory.h"
 #include "arch.h"
 #include "defs.h"
+#include "object.h"
+
 extern struct outhead	outhead;
 extern struct outsect	outsect[];
 extern int		flagword;

+ 1 - 0
util/topgen/LLlex.c

@@ -13,6 +13,7 @@
 # include "tunable.h"
 # include "token.h"
 # include "Lpars.h"
+# include "main.h"
 
 struct token dot;		/* current token */
 static struct token aside;	/* to put currrent token aside, when a token

+ 3 - 1
util/topgen/hash.c

@@ -14,6 +14,8 @@
 #include <string.h>
 #include "misc.h"
 
+
+
 struct hlist {			/* linear list of pattern numbers */
     int	h_patno;
     struct hlist *h_next;
@@ -76,7 +78,7 @@ void printhashtable()
      * pointers to them
      */
     int i;
-    struct hlist *p;
+    /*struct hlist *p;*/
 
     for (i = 1; i <= 128; i++) {
 	fprintf(genc,"int hash%d[] = { ",i);

+ 13 - 0
util/topgen/hash.h

@@ -0,0 +1,13 @@
+/*
+ * The Amsterdam Compiler Kit
+ * See the copyright notice in the ACK home directory, in the file "Copyright".
+ */
+#ifndef UTIL_TOPGEN_HASH_H
+#define UTIL_TOPGEN_HASH_H
+
+/* util/topgen/hash.c */
+void addtohashtable(char *s, int n);
+void printhashtable(void);
+
+#endif /* UTIL_TOPGEN_HASH_H */
+

+ 9 - 2
util/topgen/main.c

@@ -11,6 +11,7 @@
  
 #include <stdlib.h>
 #include <stdio.h>
+#include <stdarg.h>
 
 extern int lineno, newline;
 
@@ -19,6 +20,9 @@ static int nerrors;
 char *linedir = "#line %d \"%s\"\n";	/* format of line directive */
 char *inpfile;
 
+/* From Lexer */
+void LLparse(void);
+
 int main(int argc, char *argv[])
 {
     newline = 1;
@@ -44,11 +48,14 @@ int main(int argc, char *argv[])
 }
 
 /* VARARGS1 */
-void error(char *s,  char *s1)
+void error(char *s, ...)
 {
+	va_list va;
     nerrors++;
     fprintf(stderr,"\"%s\", line %d: ",inpfile,lineno);
-    fprintf(stderr,s,s1);
+	va_start(va, s);
+    vfprintf(stderr, s, va);
+	va_end(va);
     putc('\n',stderr);
 }
 

+ 14 - 0
util/topgen/main.h

@@ -0,0 +1,14 @@
+/*
+ * The Amsterdam Compiler Kit
+ * See the copyright notice in the ACK home directory, in the file "Copyright".
+ */
+#ifndef UTIL_TOPGEN_MAIN_H
+#define UTIL_TOPGEN_MAIN_H
+
+/* util/topgen/main.c */
+int main(int argc, char *argv[]);
+void error(char *s, ...);
+int onlyspace(char *s);
+
+#endif /* UTIL_TOPGEN_MAIN_H */
+

+ 13 - 0
util/topgen/pattern.h

@@ -0,0 +1,13 @@
+/*
+ * The Amsterdam Compiler Kit
+ * See the copyright notice in the ACK home directory, in the file "Copyright".
+ */
+#ifndef UTIL_TOPGEN_PATTERN_H
+#define UTIL_TOPGEN_PATTERN_H
+
+/* util/topgen/pattern.c */
+void addpattern(char *str, int l, int np, int nr);
+void printpatterns(void);
+
+#endif /* UTIL_TOPGEN_PATTERN_H */
+

+ 5 - 4
util/topgen/symtab.c

@@ -12,19 +12,20 @@
 #include <stdlib.h>
 #include <string.h>
 #include "symtab.h"
+#include "main.h"
 
 struct symtab *idtable, *deftable;
 
-struct symtab *
-findident(s, mode, table) char *s; struct symtab **table; {
+struct symtab *findident(char *s, int mode, struct symtab **table)
+{
     /*
      * Look for identifier s in the symboltable referred to by *table.
      * If mode = LOOKING, no new entry's will be made.
      * If mode = ENTERING, a new entry will be made if s is not in the
      * table yet, otherwise an error results
      */
-    register struct symtab *p;
-    register n;
+    struct symtab *p;
+    int n;
 
     if (!*table) {	/* No entry for this symbol */
 	if (mode == LOOKING) return (struct symtab *) 0;

+ 3 - 0
util/topgen/topgen.g

@@ -21,6 +21,9 @@
 #include "token.h"
 #include "symtab.h"
 #include "misc.h"
+#include "main.h"
+#include "pattern.h"
+#include "hash.h"
 
 char	idbuf[BUFSIZ], buf[BUFSIZ];
 int	countid;		/* # of variables */