Version: 0.3.7

* Minor fixes
* Added minor patch from Alex Buell <alex.buell@tahallah.demon.co.uk>
  to be able to compile under glibc 2.1
* Additions to config file from David Dyck <dcd@tc.fluke.com>
* Clean-up Makefile a bit
* Changed `LT_PT_*' with `ARGTYPE_*'
* Display '\\' instead of '\'
* Updated list of syscalls and signals to linux-2.2.5
* Compiled against glibc-2.1
diff --git a/Makefile.in b/Makefile.in
index 7a582d7..5f64062 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2,13 +2,12 @@
 # ltrace's Makefile.in
 #
 
-##ARCH	:=	$(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/)
 OS	:=	$(shell uname -s)
 
 TOPDIR	=	$(shell pwd)
 
 CC	=	@CC@
-CPPFLAGS =	-I$(TOPDIR) -I$(TOPDIR)/sysdeps/$(OS) -I- @DEFS@ #-I$(TOPDIR)/sysdeps/$(ARCH)
+CPPFLAGS =	-I$(TOPDIR) -I$(TOPDIR)/sysdeps/$(OS) -I- @DEFS@
 CFLAGS	=	-Wall @CFLAGS@
 LDFLAGS	=
 LIBS	=	@LIBS@
@@ -17,13 +16,14 @@
 		execute_program.o wait_for_something.o process_event.o	\
 		display_args.o breakpoints.o proc.o demangle.o
 
-all:		dummy
-		$(MAKE) -C sysdeps/$(OS)
-		$(MAKE) ltrace
+all:		ltrace
 
 ltrace:		sysdeps/sysdep.o $(OBJ)
 		$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
 
+sysdeps/sysdep.o: dummy
+		$(MAKE) -C sysdeps/$(OS)
+
 clean:
 		$(MAKE) -C sysdeps/$(OS) clean
 		$(RM) ltrace $(OBJ)
@@ -45,6 +45,6 @@
 
 dummy:
 
-.PHONY:		all clean distclean dist install
+.PHONY:		all clean distclean dist install dummy
 
 .EXPORT_ALL_VARIABLES:
diff --git a/README b/README
index 389cff3..a911698 100644
--- a/README
+++ b/README
@@ -2,7 +2,7 @@
 
                        A Dynamic Library Tracer
 
-         Copyright 1997,1998 Juan Cespedes <cespedes@debian.org>
+         Copyright 1997-1999 Juan Cespedes <cespedes@debian.org>
 
 
 Contents
@@ -13,7 +13,7 @@
  3. How does it work
  4. Where does it work
  5. Bugs
- 6. Licence
+ 6. License
 
 
 0. Authors
@@ -58,9 +58,9 @@
 
 This file is very incomplete and out-of-date.
 
-6. Licence
+6. License
 ----------
-    Copyright (C) 1997,1998 Juan Cespedes <cespedes@debian.org>
+    Copyright (C) 1997-1999 Juan Cespedes <cespedes@debian.org>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
diff --git a/TODO b/TODO
index 3944734..b18f397 100644
--- a/TODO
+++ b/TODO
@@ -1,13 +1,23 @@
-* Improve option -e
-* Improve C++ name demangling
+* BFD:
+  + New executable formats
+  + Read list of libraries needed
+  + Read list of undefined symbols in executables
+  + Read list of exported symbols in libraries
+  + Read debugging info from executables/libraries
+* Update list of syscalls to Linux-2.2.*
+* "\\", "\"", '\''
 * Improve documentation
+* Improve option -e
+* "-l" option: trace functions from these libraries
+* Improve C++ name demangling
 * Display different argument types:
   + how to display execl...?
   + format+: for scanf()...: display args as pointers, and imply `+' for args
 * Update /etc/ltrace.conf
-* SPARC:
-  + almost all...
 * netscape:
   + Why does it show so many `breakpointed at:' messages?
     \- Is this still true?
 * Option -T (print time spent in each libcall)
+* Option -c (summary)
+* More architectures: sparc, alpha
+* More operating systems (solaris?)
diff --git a/debian/changelog b/debian/changelog
index 2c4c48f..b9ebac8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,17 @@
+ltrace (0.3.7) unstable; urgency=low
+
+  * Minor fixes
+  * Added minor patch from Alex Buell <alex.buell@tahallah.demon.co.uk>
+    to be able to compile under glibc 2.1
+  * Additions to config file from David Dyck <dcd@tc.fluke.com>
+  * Clean-up Makefile a bit
+  * Changed `LT_PT_*' with `ARGTYPE_*'
+  * Display '\\' instead of '\'
+  * Updated list of syscalls and signals to linux-2.2.5
+  * Compiled against glibc-2.1
+
+ -- Juan Cespedes <cespedes@debian.org>  Sat,  3 Apr 1999 03:21:50 +0200
+
 ltrace (0.3.6) unstable; urgency=low
 
   * Added m68k port (Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>) (Bug#27075)
diff --git a/debian/copyright b/debian/copyright
index f8cb70f..b62a226 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -4,7 +4,7 @@
 
 Copyrights
 ----------
-Copyright (C) 1997,1998 Juan Cespedes <cespedes@debian.org>
+Copyright (C) 1997-1999 Juan Cespedes <cespedes@debian.org>
 
 ARMLinux port: Copyright (C) 1998 Pat Beirne <pbeirne@home.com>
 m68k port: Copyright (C) 1998 Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>
diff --git a/debian/rules b/debian/rules
index e5f9e32..6fcd2a4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,6 +1,6 @@
 #! /usr/bin/make -f 
 #
-# Copyright (C) 1997,1998 Juan Cespedes <cespedes@debian.org>
+# Copyright (C) 1997-1999 Juan Cespedes <cespedes@debian.org>
 
 .PHONY:		binary binary-indep binary-arch clean
 
diff --git a/display_args.c b/display_args.c
index 3cd7a30..1ea10fd 100644
--- a/display_args.c
+++ b/display_args.c
@@ -15,45 +15,45 @@
 static int display_unknown(enum tof type, struct process * proc, int arg_num);
 static int display_format(enum tof type, struct process * proc, int arg_num);
 
-int display_arg(enum tof type, struct process * proc, int arg_num, enum param_type rt)
+int display_arg(enum tof type, struct process * proc, int arg_num, enum arg_type at)
 {
 	int tmp;
 	long arg;
 
-	switch(rt) {
-		case LT_PT_VOID:
+	switch(at) {
+		case ARGTYPE_VOID:
 			return 0;
-		case LT_PT_INT:
+		case ARGTYPE_INT:
 			return fprintf(output, "%d", (int)gimme_arg(type, proc, arg_num));
-		case LT_PT_UINT:
+		case ARGTYPE_UINT:
 			return fprintf(output, "%u", (unsigned)gimme_arg(type, proc, arg_num));
-		case LT_PT_OCTAL:
+		case ARGTYPE_OCTAL:
 			return fprintf(output, "0%o", (unsigned)gimme_arg(type, proc, arg_num));
-		case LT_PT_CHAR:
+		case ARGTYPE_CHAR:
 			tmp = fprintf(output, "'");
 			tmp += display_char((int)gimme_arg(type, proc, arg_num));
 			tmp += fprintf(output, "'");
 			return tmp;
-		case LT_PT_ADDR:
+		case ARGTYPE_ADDR:
 			arg = gimme_arg(type, proc, arg_num);
 			if (!arg) {
 				return fprintf(output, "NULL");
 			} else {
 				return fprintf(output, "0x%08x", (unsigned)arg);
 			}
-		case LT_PT_FORMAT:
+		case ARGTYPE_FORMAT:
 			return display_format(type, proc, arg_num);
-		case LT_PT_STRING:
+		case ARGTYPE_STRING:
 			return display_string(type, proc, arg_num);
-		case LT_PT_STRING0:
+		case ARGTYPE_STRING0:
 			return display_stringN(0, type, proc, arg_num);
-		case LT_PT_STRING1:
+		case ARGTYPE_STRING1:
 			return display_stringN(1, type, proc, arg_num);
-		case LT_PT_STRING2:
+		case ARGTYPE_STRING2:
 			return display_stringN(2, type, proc, arg_num);
-		case LT_PT_STRING3:
+		case ARGTYPE_STRING3:
 			return display_stringN(3, type, proc, arg_num);
-		case LT_PT_UNKNOWN:
+		case ARGTYPE_UNKNOWN:
 		default:
 			return display_unknown(type, proc, arg_num);
 	}
@@ -68,7 +68,7 @@
 		case '\n':	return fprintf(output, "\\n");
 		case '\t':	return fprintf(output, "\\t");
 		case '\b':	return fprintf(output, "\\b");
-		case '\\':	return fprintf(output, "\\");
+		case '\\':	return fprintf(output, "\\\\");
 		default:
 			if ((what<32) || (what>126)) {
 				return fprintf(output, "\\%03o", (unsigned char)what);
diff --git a/elf.c b/elf.c
index 84383bb..deb82f8 100644
--- a/elf.c
+++ b/elf.c
@@ -41,11 +41,11 @@
 
 	fd = open(filename, O_RDONLY);
 	if (fd==-1) {
-		fprintf(stderr, "Can't open \"%s\": %s\n", filename, sys_errlist[errno]);
+		fprintf(stderr, "Can't open \"%s\": %s\n", filename, strerror(errno));
 		exit(1);
 	}
 	if (fstat(fd, &sbuf)==-1) {
-		fprintf(stderr, "Can't stat \"%s\": %s\n", filename, sys_errlist[errno]);
+		fprintf(stderr, "Can't stat \"%s\": %s\n", filename, strerror(errno));
 		exit(1);
 	}
 	if (sbuf.st_size < sizeof(Elf32_Ehdr)) {
@@ -54,7 +54,7 @@
 	}
 	addr = mmap(NULL, sbuf.st_size, PROT_READ, MAP_SHARED, fd, 0);
 	if (addr==(void*)-1) {
-		fprintf(stderr, "Can't mmap \"%s\": %s\n", filename, sys_errlist[errno]);
+		fprintf(stderr, "Can't mmap \"%s\": %s\n", filename, strerror(errno));
 		exit(1);
 	}
 	hdr = addr;
@@ -95,7 +95,7 @@
 
 			library_symbols = malloc(sizeof(struct library_symbol));
 			if (!library_symbols) {
-				perror("malloc");
+				perror("ltrace: malloc");
 				exit(1);
 			}
 			library_symbols->brk.addr = (void *)((symtab+i)->st_value);
diff --git a/etc/ltrace.conf b/etc/ltrace.conf
index 38ae931..c5b5ad0 100644
--- a/etc/ltrace.conf
+++ b/etc/ltrace.conf
@@ -18,6 +18,13 @@
 string inet_ntoa(addr);			; It isn't a ADDR but an hexa number...
 addr inet_addr(string);
 
+; bfd.h
+void bfd_init(void);
+int bfd_set_default_target(string);
+addr bfd_scan_vma(string, addr, int);
+addr bfd_openr(string,string);
+int bfd_check_format(addr,int);
+
 ; ctype.h
 char tolower(char);
 char toupper(char);
@@ -27,6 +34,12 @@
 addr opendir(string);
 addr readdir(addr);
 
+; dlfcn.h
+addr  dlopen(string, int);
+string dlerror(void);
+addr  dlsym(addr, string);
+int dlclose(addr);
+
 ; errno.h
 addr __errno_location(void);
 
@@ -99,7 +112,9 @@
 int fputs(string,file);
 uint fread(addr,uint,uint,file);
 uint fwrite(string,uint,uint,file);
+int pclose(addr);
 void perror(string);
+addr popen(string, string);
 int printf(format);
 int puts(string);
 int remove(string);
@@ -234,6 +249,7 @@
 int   SYS_execve(string,addr,addr);
 void  SYS_exit(int);
 int   SYS_fork(void);
+int   SYS_getcwd(+string2,uint);
 int   SYS_getpid(void);
 ;addr SYS_mmap(addr,int,int,int,int,int);
 int   SYS_munmap(addr,uint);
diff --git a/execute_program.c b/execute_program.c
index 6f68bb3..77e30b3 100644
--- a/execute_program.c
+++ b/execute_program.c
@@ -28,7 +28,7 @@
 
 	pid = fork();
 	if (pid<0) {
-		perror("fork");
+		perror("ltrace: fork");
 		exit(1);
 	} else if (!pid) {	/* child */
 		change_uid(sp);
@@ -67,7 +67,7 @@
 		run_gid = pent->pw_gid;
 
 		if (initgroups(opt_u, run_gid) < 0) {
-			perror("initgroups");
+			perror("ltrace: initgroups");
 			exit(1);
 		}
 	} else {
@@ -88,11 +88,11 @@
 			}
 		}
 		if (setregid(run_gid, run_egid) < 0) {
-			perror("setregid");
+			perror("ltrace: setregid");
 			exit(1);
 		}
 		if (setreuid(run_uid, run_euid) < 0) {
-			perror("setreuid");
+			perror("ltrace: setreuid");
 			exit(1);
 		}
 	}
diff --git a/ltrace.1 b/ltrace.1
index 17dcd3a..0770479 100644
--- a/ltrace.1
+++ b/ltrace.1
@@ -1,4 +1,4 @@
-.\" Copyright (c) 1997,1998 Juan Cespedes <cespedes@debian.org>
+.\" Copyright (c) 1997-1999 Juan Cespedes <cespedes@debian.org>
 .\" This file is covered by the GNU GPL
 .TH ltrace 1 
 .SH NAME
@@ -97,7 +97,7 @@
 means to trace only the printf library call.  By contrast,
 .I \-e !printf
 means to trace every library call except printf.
-.LP
+.IP
 Note that some shells use the exclamation point for history
 expansion; even inside quoted arguments.  If so, you must escape
 the exclamation point with a backslash.
diff --git a/ltrace.h b/ltrace.h
index e8e7153..ae51d93 100644
--- a/ltrace.h
+++ b/ltrace.h
@@ -19,34 +19,34 @@
 	int enabled;
 };
 
-enum param_type {
-	LT_PT_UNKNOWN=-1,
-	LT_PT_VOID,
-	LT_PT_INT,
-	LT_PT_UINT,
-	LT_PT_OCTAL,
-	LT_PT_CHAR,
-	LT_PT_ADDR,
-	LT_PT_FILE,
-	LT_PT_FORMAT,		/* printf-like format */
-	LT_PT_STRING,
-	LT_PT_STRING0,		/* stringN: string up to (arg N) bytes */
-	LT_PT_STRING1,
-	LT_PT_STRING2,
-	LT_PT_STRING3
+enum arg_type {
+	ARGTYPE_UNKNOWN=-1,
+	ARGTYPE_VOID,
+	ARGTYPE_INT,
+	ARGTYPE_UINT,
+	ARGTYPE_OCTAL,
+	ARGTYPE_CHAR,
+	ARGTYPE_ADDR,
+	ARGTYPE_FILE,
+	ARGTYPE_FORMAT,     /* printf-like format */
+	ARGTYPE_STRING,
+	ARGTYPE_STRING0,    /* stringN: string up to (arg N) bytes */
+	ARGTYPE_STRING1,
+	ARGTYPE_STRING2,
+	ARGTYPE_STRING3
 };
 
 enum tof {
-	LT_TOF_NONE,
+	LT_TOF_NONE=0,
 	LT_TOF_FUNCTION,	/* A real library function */
 	LT_TOF_SYSCALL		/* A syscall */
 };
 
 struct function {
 	const char * name;
-	enum param_type return_type;
+	enum arg_type return_type;
 	int num_params;
-	enum param_type param_types[MAX_ARGS];
+	enum arg_type arg_types[MAX_ARGS];
 	int params_right;
 	struct function * next;
 };
@@ -110,7 +110,7 @@
 extern struct event * wait_for_something(void);
 extern void process_event(struct event * event);
 extern void execute_program(struct process *, char **);
-extern int display_arg(enum tof type, struct process * proc, int arg_num, enum param_type rt);
+extern int display_arg(enum tof type, struct process * proc, int arg_num, enum arg_type at);
 extern void enable_all_breakpoints(struct process * proc);
 extern void disable_all_breakpoints(struct process * proc);
 extern struct process * open_program(char * filename);
diff --git a/ltrace.spec b/ltrace.spec
index e207ae0..98fe8ee 100644
--- a/ltrace.spec
+++ b/ltrace.spec
@@ -1,6 +1,6 @@
 Summary: A library call tracer
 Name: ltrace
-%define version 0.3.5
+%define version 0.3.7
 Version: %{version}
 Release: 1
 Copyright: GPL
diff --git a/options.c b/options.c
index a8c1354..57a0f8e 100644
--- a/options.c
+++ b/options.c
@@ -9,7 +9,9 @@
 #include <limits.h>
 
 #if HAVE_GETOPT_H
+#define _GNU_SOURCE
 #include <getopt.h>
+#undef _GNU_SOURCE
 #endif
 
 #include "ltrace.h"
@@ -97,7 +99,7 @@
 
 static char * search_for_command(char * filename)
 {
-	static char pathname[PATH_MAX];
+	static char pathname[1024];
 	char *path;
 	int m, n;
 
@@ -111,7 +113,7 @@
 		} else {
 			m = n = strlen(path);
 		}
-		strncpy(pathname, path, n);
+		strncpy(pathname, path, n);     /* Possible buffer overrun */
 		if (n && pathname[n - 1] != '/') {
 			pathname[n++] = '/';
 		}
@@ -197,7 +199,7 @@
 				{
 					struct opt_p_t * tmp = malloc(sizeof(struct opt_p_t));
 					if (!tmp) {
-						perror("malloc");
+						perror("ltrace: malloc");
 						exit(1);
 					}
 					tmp->pid = atoi(optarg);
@@ -209,7 +211,7 @@
 				{
 					char * str_e = strdup(optarg);
 					if (!str_e) {
-						perror("strdup");
+						perror("ltrace: strdup");
 						exit(1);
 					}
 					if (str_e[0]=='!') {
@@ -224,7 +226,7 @@
 						}
 						tmp = malloc(sizeof(struct opt_e_t));
 						if (!tmp) {
-							perror("malloc");
+							perror("ltrace: malloc");
 							exit(1);
 						}
 						tmp->name = str_e;
@@ -245,7 +247,7 @@
 					"???"
 #endif
 					".\n"
-"Copyright (C) 1997-1998 Juan Cespedes <cespedes@debian.org>.\n"
+"Copyright (C) 1997-1999 Juan Cespedes <cespedes@debian.org>.\n"
 "This is free software; see the GNU General Public Licence\n"
 "version 2 or later for copying conditions.  There is NO warranty.\n");
 					exit(0);
diff --git a/output.c b/output.c
index a16a29a..577983a 100644
--- a/output.c
+++ b/output.c
@@ -154,24 +154,24 @@
 	if (!func) {
 		int i;
 		for(i=0; i<4; i++) {
-			current_column += display_arg(type, proc, i, LT_PT_UNKNOWN);
+			current_column += display_arg(type, proc, i, ARGTYPE_UNKNOWN);
 			current_column += fprintf(output, ", ");
 		}
-		current_column += display_arg(type, proc, 4, LT_PT_UNKNOWN);
+		current_column += display_arg(type, proc, 4, ARGTYPE_UNKNOWN);
 		return;
 	} else {
 		int i;
 		for(i=0; i< func->num_params - func->params_right - 1; i++) {
-			current_column += display_arg(type, proc, i, func->param_types[i]);
+			current_column += display_arg(type, proc, i, func->arg_types[i]);
 			current_column += fprintf(output, ", ");
 		}
 		if (func->num_params>func->params_right) {
-			current_column += display_arg(type, proc, i, func->param_types[i]);
+			current_column += display_arg(type, proc, i, func->arg_types[i]);
 			if (func->params_right) {
 				current_column += fprintf(output, ", ");
 			}
 		}
-		if (!func->params_right && func->return_type == LT_PT_VOID) {
+		if (!func->params_right && func->return_type == ARGTYPE_VOID) {
 			current_column += fprintf(output, ") ");
 			tabto(opt_a);
 			fprintf(output, "= <void>\n");
@@ -185,7 +185,7 @@
 {
 	struct function * func = name2func(function_name);
 
-	if (func && func->params_right==0 && func->return_type == LT_PT_VOID) {
+	if (func && func->params_right==0 && func->return_type == ARGTYPE_VOID) {
 		return;
 	}
 
@@ -202,21 +202,21 @@
 		current_column += fprintf(output, ") ");
 		tabto(opt_a);
 		fprintf(output, "= ");
-		display_arg(type, proc, -1, LT_PT_UNKNOWN);
+		display_arg(type, proc, -1, ARGTYPE_UNKNOWN);
 		fprintf(output, "\n");
 	} else {
 		int i;
 		for(i=func->num_params-func->params_right; i<func->num_params-1; i++) {
-			current_column += display_arg(type, proc, i, func->param_types[i]);
+			current_column += display_arg(type, proc, i, func->arg_types[i]);
 			current_column += fprintf(output, ", ");
 		}
 		if (func->params_right) {
-			current_column += display_arg(type, proc, i, func->param_types[i]);
+			current_column += display_arg(type, proc, i, func->arg_types[i]);
 		}
 		current_column += fprintf(output, ") ");
 			tabto(opt_a);
 			fprintf(output, "= ");
-		if (func->return_type == LT_PT_VOID) {
+		if (func->return_type == ARGTYPE_VOID) {
 			fprintf(output, "<void>");
 		} else {
 			display_arg(type, proc, -1, func->return_type);
diff --git a/read_config_file.c b/read_config_file.c
index 1fdc86e..f10461a 100644
--- a/read_config_file.c
+++ b/read_config_file.c
@@ -12,39 +12,39 @@
 #include "output.h"
 
 /*
- *	"void"		LT_PT_VOID
- *	"int"		LT_PT_INT
- *	"uint"		LT_PT_UINT
- *	"octal"		LT_PT_OCTAL
- *	"char"		LT_PT_CHAR
- *	"string"	LT_PT_STRING
- *	"format"	LT_PT_FORMAT
- *	"addr"		LT_PT_ADDR
+ *	"void"		ARGTYPE_VOID
+ *	"int"		ARGTYPE_INT
+ *	"uint"		ARGTYPE_UINT
+ *	"octal"		ARGTYPE_OCTAL
+ *	"char"		ARGTYPE_CHAR
+ *	"string"	ARGTYPE_STRING
+ *	"format"	ARGTYPE_FORMAT
+ *	"addr"		ARGTYPE_ADDR
  */
 
 struct function * list_of_functions = NULL;
 
 static struct list_of_pt_t {
 	char * name;
-	enum param_type pt;
+	enum arg_type pt;
 } list_of_pt[] = {
-	{ "void",	LT_PT_VOID },
-	{ "int",	LT_PT_INT },
-	{ "uint",	LT_PT_UINT },
-	{ "octal",	LT_PT_OCTAL },
-	{ "char",	LT_PT_CHAR },
-	{ "addr",	LT_PT_ADDR },
-	{ "file",	LT_PT_FILE },
-	{ "format",	LT_PT_FORMAT },
-	{ "string",	LT_PT_STRING },
-	{ "string0",	LT_PT_STRING0 },
-	{ "string1",	LT_PT_STRING1 },
-	{ "string2",	LT_PT_STRING2 },
-	{ "string3",	LT_PT_STRING3 },
-	{ NULL,		LT_PT_UNKNOWN }		/* Must finish with NULL */
+	{ "void",   ARGTYPE_VOID },
+	{ "int",    ARGTYPE_INT },
+	{ "uint",   ARGTYPE_UINT },
+	{ "octal",  ARGTYPE_OCTAL },
+	{ "char",   ARGTYPE_CHAR },
+	{ "addr",   ARGTYPE_ADDR },
+	{ "file",   ARGTYPE_FILE },
+	{ "format", ARGTYPE_FORMAT },
+	{ "string", ARGTYPE_STRING },
+	{ "string0",ARGTYPE_STRING0 },
+	{ "string1",ARGTYPE_STRING1 },
+	{ "string2",ARGTYPE_STRING2 },
+	{ "string3",ARGTYPE_STRING3 },
+	{ NULL,     ARGTYPE_UNKNOWN }		/* Must finish with NULL */
 };
 
-static enum param_type str2type(char ** str)
+static enum arg_type str2type(char ** str)
 {
 	struct list_of_pt_t * tmp = &list_of_pt[0];
 
@@ -56,7 +56,7 @@
 		}
 		tmp++;
 	}
-	return LT_PT_UNKNOWN;
+	return ARGTYPE_UNKNOWN;
 }
 
 static void eat_spaces(char ** str)
@@ -82,7 +82,7 @@
 	}
 	eat_spaces(&str);
 	fun.return_type = str2type(&str);
-	if (fun.return_type==LT_PT_UNKNOWN) {
+	if (fun.return_type==ARGTYPE_UNKNOWN) {
 		if (opt_d>2) {
 			output_line(0, " Skipping line %d", line_no);
 		}
@@ -115,8 +115,8 @@
 		} else if (fun.params_right) {
 			fun.params_right++;
 		}
-		fun.param_types[i] = str2type(&str);
-		if (fun.return_type==LT_PT_UNKNOWN) {
+		fun.arg_types[i] = str2type(&str);
+		if (fun.return_type==ARGTYPE_UNKNOWN) {
 			output_line(0, "Syntax error in `%s', line %d", filename, line_no);
 			return NULL;
 		}
diff --git a/sysdeps/Linux/README b/sysdeps/Linux/README
new file mode 100644
index 0000000..d98f63c
--- /dev/null
+++ b/sysdeps/Linux/README
@@ -0,0 +1,12 @@
+* "arch/syscallent.h" is made from <asm/unistd.h>.
+  It can be done automatically with "mksyscallent" for all the
+  architectures except "arm" and "mips" (their asm/unistd.h is a bit
+  different) (linux-2.1.119)
+
+* "arch/signalent.h" is made from <asm/signal.h>.
+  It can be done automatically with "mksignalent" for all the
+  architectures. (linux-2.1.119)
+
+* NOTE: This does not currently work for cross-compilers; Maybe
+  I should guess the architecture using `gcc -print-libgcc-file-name'
+  instead of `uname -m'
diff --git a/sysdeps/Linux/arm/signalent.h b/sysdeps/Linux/arm/signalent.h
index e2c1337..7b1f831 100644
--- a/sysdeps/Linux/arm/signalent.h
+++ b/sysdeps/Linux/arm/signalent.h
@@ -1,32 +1,33 @@
-	"SIG_0",	/* 0 */
-	"SIGHUP",	/* 1 */
-	"SIGINT",	/* 2 */
-	"SIGQUIT",	/* 3 */
-	"SIGILL",	/* 4 */
-	"SIGTRAP",	/* 5 */
-	"SIGABRT",	/* 6 */
-	"SIGBUS",	/* 7 */
-	"SIGFPE",	/* 8 */
-	"SIGKILL",	/* 9 */
-	"SIGUSR1",	/* 10 */
-	"SIGSEGV",	/* 11 */
-	"SIGUSR2",	/* 12 */
-	"SIGPIPE",	/* 13 */
-	"SIGALRM",	/* 14 */
-	"SIGTERM",	/* 15 */
-	"SIGSTKFLT",	/* 16 */
-	"SIGCHLD",	/* 17 */
-	"SIGCONT",	/* 18 */
-	"SIGSTOP",	/* 19 */
-	"SIGTSTP",	/* 20 */
-	"SIGTTIN",	/* 21 */
-	"SIGTTOU",	/* 22 */
-	"SIGURG",	/* 23 */
-	"SIGXCPU",	/* 24 */
-	"SIGXFSZ",	/* 25 */
-	"SIGVTALRM",	/* 26 */
-	"SIGPROF",	/* 27 */
-	"SIGWINCH",	/* 28 */
-	"SIGIO",	/* 29 */
-	"SIGPWR",	/* 30 */
-	"SIGUNUSED",	/* 31 */
+	"SIG_0",           /* 0 */
+	"SIGHUP",          /* 1 */
+	"SIGINT",          /* 2 */
+	"SIGQUIT",         /* 3 */
+	"SIGILL",          /* 4 */
+	"SIGTRAP",         /* 5 */
+	"SIGABRT",         /* 6 */
+	"SIGBUS",          /* 7 */
+	"SIGFPE",          /* 8 */
+	"SIGKILL",         /* 9 */
+	"SIGUSR1",         /* 10 */
+	"SIGSEGV",         /* 11 */
+	"SIGUSR2",         /* 12 */
+	"SIGPIPE",         /* 13 */
+	"SIGALRM",         /* 14 */
+	"SIGTERM",         /* 15 */
+	"SIGSTKFLT",       /* 16 */
+	"SIGCHLD",         /* 17 */
+	"SIGCONT",         /* 18 */
+	"SIGSTOP",         /* 19 */
+	"SIGTSTP",         /* 20 */
+	"SIGTTIN",         /* 21 */
+	"SIGTTOU",         /* 22 */
+	"SIGURG",          /* 23 */
+	"SIGXCPU",         /* 24 */
+	"SIGXFSZ",         /* 25 */
+	"SIGVTALRM",       /* 26 */
+	"SIGPROF",         /* 27 */
+	"SIGWINCH",        /* 28 */
+	"SIGIO",           /* 29 */
+	"SIGPWR",          /* 30 */
+	"SIGUNUSED",       /* 31 */
+	"SIGSWI",          /* 32 */
diff --git a/sysdeps/Linux/arm/syscallent.h b/sysdeps/Linux/arm/syscallent.h
index cbce4cb..19836ed 100644
--- a/sysdeps/Linux/arm/syscallent.h
+++ b/sysdeps/Linux/arm/syscallent.h
@@ -1,184 +1,188 @@
-	"setup",		/* 0 */
-	"exit",			/* 1 */
-	"fork",			/* 2 */
-	"read",			/* 3 */
-	"write",		/* 4 */
-	"open",			/* 5 */
-	"close",		/* 6 */
-	"waitpid",		/* 7 */
-	"creat",		/* 8 */
-	"link",			/* 9 */
-	"unlink",		/* 10 */
-	"execve",		/* 11 */
-	"chdir",		/* 12 */
-	"time",			/* 13 */
-	"mknod",		/* 14 */
-	"chmod",		/* 15 */
-	"chown",		/* 16 */
-	"break",		/* 17 */
-	"oldstat",		/* 18 */
-	"lseek",		/* 19 */
-	"getpid",		/* 20 */
-	"mount",		/* 21 */
-	"umount",		/* 22 */
-	"setuid",		/* 23 */
-	"getuid",		/* 24 */
-	"stime",		/* 25 */
-	"ptrace",		/* 26 */
-	"alarm",		/* 27 */
-	"oldfstat",		/* 28 */
-	"pause",		/* 29 */
-	"utime",		/* 30 */
-	"stty",			/* 31 */
-	"gtty",			/* 32 */
-	"access",		/* 33 */
-	"nice",			/* 34 */
-	"ftime",		/* 35 */
-	"sync",			/* 36 */
-	"kill",			/* 37 */
-	"rename",		/* 38 */
-	"mkdir",		/* 39 */
-	"rmdir",		/* 40 */
-	"dup",			/* 41 */
-	"pipe",			/* 42 */
-	"times",		/* 43 */
-	"prof",			/* 44 */
-	"brk",			/* 45 */
-	"setgid",		/* 46 */
-	"getgid",		/* 47 */
-	"signal",		/* 48 */
-	"geteuid",		/* 49 */
-	"getegid",		/* 50 */
-	"acct",			/* 51 */
-	"phys",			/* 52 */
-	"lock",			/* 53 */
-	"ioctl",		/* 54 */
-	"fcntl",		/* 55 */
-	"mpx",			/* 56 */
-	"setpgid",		/* 57 */
-	"ulimit",		/* 58 */
-	"oldolduname",		/* 59 */
-	"umask",		/* 60 */
-	"chroot",		/* 61 */
-	"ustat",		/* 62 */
-	"dup2",			/* 63 */
-	"getppid",		/* 64 */
-	"getpgrp",		/* 65 */
-	"setsid",		/* 66 */
-	"sigaction",		/* 67 */
-	"sgetmask",		/* 68 */
-	"ssetmask",		/* 69 */
-	"setreuid",		/* 70 */
-	"setregid",		/* 71 */
-	"sigsuspend",		/* 72 */
-	"sigpending",		/* 73 */
-	"sethostname",		/* 74 */
-	"setrlimit",		/* 75 */
-	"getrlimit",		/* 76 */
-	"getrusage",		/* 77 */
-	"gettimeofday",		/* 78 */
-	"settimeofday",		/* 79 */
-	"getgroups",		/* 80 */
-	"setgroups",		/* 81 */
-	"select",		/* 82 */
-	"symlink",		/* 83 */
-	"oldlstat",		/* 84 */
-	"readlink",		/* 85 */
-	"uselib",		/* 86 */
-	"swapon",		/* 87 */
-	"reboot",		/* 88 */
-	"readdir",		/* 89 */
-	"mmap",			/* 90 */
-	"munmap",		/* 91 */
-	"truncate",		/* 92 */
-	"ftruncate",		/* 93 */
-	"fchmod",		/* 94 */
-	"fchown",		/* 95 */
-	"getpriority",		/* 96 */
-	"setpriority",		/* 97 */
-	"profil",		/* 98 */
-	"statfs",		/* 99 */
-	"fstatfs",		/* 100 */
-	"ioperm",		/* 101 */
-	"socketcall",		/* 102 */
-	"syslog",		/* 103 */
-	"setitimer",		/* 104 */
-	"getitimer",		/* 105 */
-	"stat",			/* 106 */
-	"lstat",		/* 107 */
-	"fstat",		/* 108 */
-	"olduname",		/* 109 */
-	"iopl",			/* 110 */
-	"vhangup",		/* 111 */
-	"idle",			/* 112 */
-	"syscall",		/* 113 */
-	"wait4",		/* 114 */
-	"swapoff",		/* 115 */
-	"sysinfo",		/* 116 */
-	"ipc",			/* 117 */
-	"fsync",		/* 118 */
-	"sigreturn",		/* 119 */
-	"clone",		/* 120 */
-	"setdomainname",	/* 121 */
-	"uname",		/* 122 */
-	"modify_ldt",		/* 123 */
-	"adjtimex",		/* 124 */
-	"mprotect",		/* 125 */
-	"sigprocmask",		/* 126 */
-	"create_module",	/* 127 */
-	"init_module",		/* 128 */
-	"delete_module",	/* 129 */
-	"get_kernel_syms",	/* 130 */
-	"quotactl",		/* 131 */
-	"getpgid",		/* 132 */
-	"fchdir",		/* 133 */
-	"bdflush",		/* 134 */
-	"sysfs",		/* 135 */
-	"personality",		/* 136 */
-	"afs_syscall",		/* 137 */
-	"setfsuid",		/* 138 */
-	"setfsgid",		/* 139 */
-	"_llseek",		/* 140 */
-	"getdents",		/* 141 */
-	"_newselect",		/* 142 */
-	"flock",		/* 143 */
-	"msync",		/* 144 */
-	"readv",		/* 145 */
-	"writev",		/* 146 */
-	"getsid",		/* 147 */
-	"fdatasync",		/* 148 */
-	"_sysctl",		/* 149 */
-	"mlock",		/* 150 */
-	"munlock",		/* 151 */
-	"mlockall",		/* 152 */
-	"munlockall",		/* 153 */
-	"sched_setparam",	/* 154 */
-	"sched_getparam",	/* 155 */
-	"sched_setscheduler",	/* 156 */
-	"sched_getscheduler",	/* 157 */
-	"sched_yield",		/* 158 */
-	"sched_get_priority_max",	/* 159 */
-	"sched_get_priority_min",	/* 160 */
-	"sched_rr_get_interval",	/* 161 */
-	"nanosleep",		/* 162 */
-	"mremap",		/* 163 */
-	"setresuid",		/* 164 */
-	"getresuid",		/* 165 */
-	"vm86",			/* 166 */
-	"query_module",		/* 167 */
-	"poll",			/* 168 */
-	"nfsservctl",		/* 169 */
-	"setresgid",		/* 170 */
-	"getresgid",		/* 171 */
-	"prctl",		/* 172 */
-	"rt_sigreturn",		/* 173 */
-	"rt_sigaction",		/* 174 */
-	"rt_sigprocmask",	/* 175 */
-	"rt_sigpending",	/* 176 */
-	"rt_sigtimedwait",	/* 177 */
-	"rt_sigqueueinfo",	/* 178 */
-	"rt_sigsuspend",	/* 179 */
-	"pread",		/* 180 */
-	"pwrite",		/* 181 */
-	"xstat",		/* 182 */
-	"xmknod",		/* 183 */
+	"setup",                           /* 0 */
+	"exit",                            /* 1 */
+	"fork",                            /* 2 */
+	"read",                            /* 3 */
+	"write",                           /* 4 */
+	"open",                            /* 5 */
+	"close",                           /* 6 */
+	"waitpid",                         /* 7 */
+	"creat",                           /* 8 */
+	"link",                            /* 9 */
+	"unlink",                          /* 10 */
+	"execve",                          /* 11 */
+	"chdir",                           /* 12 */
+	"time",                            /* 13 */
+	"mknod",                           /* 14 */
+	"chmod",                           /* 15 */
+	"lchown",                          /* 16 */
+	"break",                           /* 17 */
+	"oldstat",                         /* 18 */
+	"lseek",                           /* 19 */
+	"getpid",                          /* 20 */
+	"mount",                           /* 21 */
+	"umount",                          /* 22 */
+	"setuid",                          /* 23 */
+	"getuid",                          /* 24 */
+	"stime",                           /* 25 */
+	"ptrace",                          /* 26 */
+	"alarm",                           /* 27 */
+	"oldfstat",                        /* 28 */
+	"pause",                           /* 29 */
+	"utime",                           /* 30 */
+	"stty",                            /* 31 */
+	"gtty",                            /* 32 */
+	"access",                          /* 33 */
+	"nice",                            /* 34 */
+	"ftime",                           /* 35 */
+	"sync",                            /* 36 */
+	"kill",                            /* 37 */
+	"rename",                          /* 38 */
+	"mkdir",                           /* 39 */
+	"rmdir",                           /* 40 */
+	"dup",                             /* 41 */
+	"pipe",                            /* 42 */
+	"times",                           /* 43 */
+	"prof",                            /* 44 */
+	"brk",                             /* 45 */
+	"setgid",                          /* 46 */
+	"getgid",                          /* 47 */
+	"signal",                          /* 48 */
+	"geteuid",                         /* 49 */
+	"getegid",                         /* 50 */
+	"acct",                            /* 51 */
+	"phys",                            /* 52 */
+	"lock",                            /* 53 */
+	"ioctl",                           /* 54 */
+	"fcntl",                           /* 55 */
+	"mpx",                             /* 56 */
+	"setpgid",                         /* 57 */
+	"ulimit",                          /* 58 */
+	"oldolduname",                     /* 59 */
+	"umask",                           /* 60 */
+	"chroot",                          /* 61 */
+	"ustat",                           /* 62 */
+	"dup2",                            /* 63 */
+	"getppid",                         /* 64 */
+	"getpgrp",                         /* 65 */
+	"setsid",                          /* 66 */
+	"sigaction",                       /* 67 */
+	"sgetmask",                        /* 68 */
+	"ssetmask",                        /* 69 */
+	"setreuid",                        /* 70 */
+	"setregid",                        /* 71 */
+	"sigsuspend",                      /* 72 */
+	"sigpending",                      /* 73 */
+	"sethostname",                     /* 74 */
+	"setrlimit",                       /* 75 */
+	"getrlimit",                       /* 76 */
+	"getrusage",                       /* 77 */
+	"gettimeofday",                    /* 78 */
+	"settimeofday",                    /* 79 */
+	"getgroups",                       /* 80 */
+	"setgroups",                       /* 81 */
+	"select",                          /* 82 */
+	"symlink",                         /* 83 */
+	"oldlstat",                        /* 84 */
+	"readlink",                        /* 85 */
+	"uselib",                          /* 86 */
+	"swapon",                          /* 87 */
+	"reboot",                          /* 88 */
+	"readdir",                         /* 89 */
+	"mmap",                            /* 90 */
+	"munmap",                          /* 91 */
+	"truncate",                        /* 92 */
+	"ftruncate",                       /* 93 */
+	"fchmod",                          /* 94 */
+	"fchown",                          /* 95 */
+	"getpriority",                     /* 96 */
+	"setpriority",                     /* 97 */
+	"profil",                          /* 98 */
+	"statfs",                          /* 99 */
+	"fstatfs",                         /* 100 */
+	"ioperm",                          /* 101 */
+	"socketcall",                      /* 102 */
+	"syslog",                          /* 103 */
+	"setitimer",                       /* 104 */
+	"getitimer",                       /* 105 */
+	"stat",                            /* 106 */
+	"lstat",                           /* 107 */
+	"fstat",                           /* 108 */
+	"olduname",                        /* 109 */
+	"iopl",                            /* 110 */
+	"vhangup",                         /* 111 */
+	"idle",                            /* 112 */
+	"syscall",                         /* 113 */
+	"wait4",                           /* 114 */
+	"swapoff",                         /* 115 */
+	"sysinfo",                         /* 116 */
+	"ipc",                             /* 117 */
+	"fsync",                           /* 118 */
+	"sigreturn",                       /* 119 */
+	"clone",                           /* 120 */
+	"setdomainname",                   /* 121 */
+	"uname",                           /* 122 */
+	"modify_ldt",                      /* 123 */
+	"adjtimex",                        /* 124 */
+	"mprotect",                        /* 125 */
+	"sigprocmask",                     /* 126 */
+	"create_module",                   /* 127 */
+	"init_module",                     /* 128 */
+	"delete_module",                   /* 129 */
+	"get_kernel_syms",                 /* 130 */
+	"quotactl",                        /* 131 */
+	"getpgid",                         /* 132 */
+	"fchdir",                          /* 133 */
+	"bdflush",                         /* 134 */
+	"sysfs",                           /* 135 */
+	"personality",                     /* 136 */
+	"afs_syscall",                     /* 137 */
+	"setfsuid",                        /* 138 */
+	"setfsgid",                        /* 139 */
+	"_llseek",                         /* 140 */
+	"getdents",                        /* 141 */
+	"_newselect",                      /* 142 */
+	"flock",                           /* 143 */
+	"msync",                           /* 144 */
+	"readv",                           /* 145 */
+	"writev",                          /* 146 */
+	"getsid",                          /* 147 */
+	"fdatasync",                       /* 148 */
+	"_sysctl",                         /* 149 */
+	"mlock",                           /* 150 */
+	"munlock",                         /* 151 */
+	"mlockall",                        /* 152 */
+	"munlockall",                      /* 153 */
+	"sched_setparam",                  /* 154 */
+	"sched_getparam",                  /* 155 */
+	"sched_setscheduler",              /* 156 */
+	"sched_getscheduler",              /* 157 */
+	"sched_yield",                     /* 158 */
+	"sched_get_priority_max",          /* 159 */
+	"sched_get_priority_min",          /* 160 */
+	"sched_rr_get_interval",           /* 161 */
+	"nanosleep",                       /* 162 */
+	"mremap",                          /* 163 */
+	"setresuid",                       /* 164 */
+	"getresuid",                       /* 165 */
+	"vm86",                            /* 166 */
+	"query_module",                    /* 167 */
+	"poll",                            /* 168 */
+	"nfsservctl",                      /* 169 */
+	"setresgid",                       /* 170 */
+	"getresgid",                       /* 171 */
+	"prctl",                           /* 172 */
+	"rt_sigreturn",                    /* 173 */
+	"rt_sigaction",                    /* 174 */
+	"rt_sigprocmask",                  /* 175 */
+	"rt_sigpending",                   /* 176 */
+	"rt_sigtimedwait",                 /* 177 */
+	"rt_sigqueueinfo",                 /* 178 */
+	"rt_sigsuspend",                   /* 179 */
+	"pread",                           /* 180 */
+	"pwrite",                          /* 181 */
+	"chown",                           /* 182 */
+	"getcwd",                          /* 183 */
+	"capget",                          /* 184 */
+	"capset",                          /* 185 */
+	"sigaltstack",                     /* 186 */
+	"sendfile",                        /* 187 */
diff --git a/sysdeps/Linux/i386/signalent.h b/sysdeps/Linux/i386/signalent.h
index e2c1337..f8e0f0e 100644
--- a/sysdeps/Linux/i386/signalent.h
+++ b/sysdeps/Linux/i386/signalent.h
@@ -1,32 +1,32 @@
-	"SIG_0",	/* 0 */
-	"SIGHUP",	/* 1 */
-	"SIGINT",	/* 2 */
-	"SIGQUIT",	/* 3 */
-	"SIGILL",	/* 4 */
-	"SIGTRAP",	/* 5 */
-	"SIGABRT",	/* 6 */
-	"SIGBUS",	/* 7 */
-	"SIGFPE",	/* 8 */
-	"SIGKILL",	/* 9 */
-	"SIGUSR1",	/* 10 */
-	"SIGSEGV",	/* 11 */
-	"SIGUSR2",	/* 12 */
-	"SIGPIPE",	/* 13 */
-	"SIGALRM",	/* 14 */
-	"SIGTERM",	/* 15 */
-	"SIGSTKFLT",	/* 16 */
-	"SIGCHLD",	/* 17 */
-	"SIGCONT",	/* 18 */
-	"SIGSTOP",	/* 19 */
-	"SIGTSTP",	/* 20 */
-	"SIGTTIN",	/* 21 */
-	"SIGTTOU",	/* 22 */
-	"SIGURG",	/* 23 */
-	"SIGXCPU",	/* 24 */
-	"SIGXFSZ",	/* 25 */
-	"SIGVTALRM",	/* 26 */
-	"SIGPROF",	/* 27 */
-	"SIGWINCH",	/* 28 */
-	"SIGIO",	/* 29 */
-	"SIGPWR",	/* 30 */
-	"SIGUNUSED",	/* 31 */
+	"SIG_0",           /* 0 */
+	"SIGHUP",          /* 1 */
+	"SIGINT",          /* 2 */
+	"SIGQUIT",         /* 3 */
+	"SIGILL",          /* 4 */
+	"SIGTRAP",         /* 5 */
+	"SIGABRT",         /* 6 */
+	"SIGBUS",          /* 7 */
+	"SIGFPE",          /* 8 */
+	"SIGKILL",         /* 9 */
+	"SIGUSR1",         /* 10 */
+	"SIGSEGV",         /* 11 */
+	"SIGUSR2",         /* 12 */
+	"SIGPIPE",         /* 13 */
+	"SIGALRM",         /* 14 */
+	"SIGTERM",         /* 15 */
+	"SIGSTKFLT",       /* 16 */
+	"SIGCHLD",         /* 17 */
+	"SIGCONT",         /* 18 */
+	"SIGSTOP",         /* 19 */
+	"SIGTSTP",         /* 20 */
+	"SIGTTIN",         /* 21 */
+	"SIGTTOU",         /* 22 */
+	"SIGURG",          /* 23 */
+	"SIGXCPU",         /* 24 */
+	"SIGXFSZ",         /* 25 */
+	"SIGVTALRM",       /* 26 */
+	"SIGPROF",         /* 27 */
+	"SIGWINCH",        /* 28 */
+	"SIGIO",           /* 29 */
+	"SIGPWR",          /* 30 */
+	"SIGUNUSED",       /* 31 */
diff --git a/sysdeps/Linux/i386/syscallent.h b/sysdeps/Linux/i386/syscallent.h
index 9a1ad53..c8ddf42 100644
--- a/sysdeps/Linux/i386/syscallent.h
+++ b/sysdeps/Linux/i386/syscallent.h
@@ -1,190 +1,191 @@
-	"(NONE)",		/* 0 */
-	"exit",			/* 1 */
-	"fork",			/* 2 */
-	"read",			/* 3 */
-	"write",		/* 4 */
-	"open",			/* 5 */
-	"close",		/* 6 */
-	"waitpid",		/* 7 */
-	"creat",		/* 8 */
-	"link",			/* 9 */
-	"unlink",		/* 10 */
-	"execve",		/* 11 */
-	"chdir",		/* 12 */
-	"time",			/* 13 */
-	"mknod",		/* 14 */
-	"chmod",		/* 15 */
-	"lchown",		/* 16 */
-	"break",		/* 17 */
-	"oldstat",		/* 18 */
-	"lseek",		/* 19 */
-	"getpid",		/* 20 */
-	"mount",		/* 21 */
-	"umount",		/* 22 */
-	"setuid",		/* 23 */
-	"getuid",		/* 24 */
-	"stime",		/* 25 */
-	"ptrace",		/* 26 */
-	"alarm",		/* 27 */
-	"oldfstat",		/* 28 */
-	"pause",		/* 29 */
-	"utime",		/* 30 */
-	"stty",			/* 31 */
-	"gtty",			/* 32 */
-	"access",		/* 33 */
-	"nice",			/* 34 */
-	"ftime",		/* 35 */
-	"sync",			/* 36 */
-	"kill",			/* 37 */
-	"rename",		/* 38 */
-	"mkdir",		/* 39 */
-	"rmdir",		/* 40 */
-	"dup",			/* 41 */
-	"pipe",			/* 42 */
-	"times",		/* 43 */
-	"prof",			/* 44 */
-	"brk",			/* 45 */
-	"setgid",		/* 46 */
-	"getgid",		/* 47 */
-	"signal",		/* 48 */
-	"geteuid",		/* 49 */
-	"getegid",		/* 50 */
-	"acct",			/* 51 */
-	"umount2",		/* 52 */
-	"lock",			/* 53 */
-	"ioctl",		/* 54 */
-	"fcntl",		/* 55 */
-	"mpx",			/* 56 */
-	"setpgid",		/* 57 */
-	"ulimit",		/* 58 */
-	"oldolduname",		/* 59 */
-	"umask",		/* 60 */
-	"chroot",		/* 61 */
-	"ustat",		/* 62 */
-	"dup2",			/* 63 */
-	"getppid",		/* 64 */
-	"getpgrp",		/* 65 */
-	"setsid",		/* 66 */
-	"sigaction",		/* 67 */
-	"sgetmask",		/* 68 */
-	"ssetmask",		/* 69 */
-	"setreuid",		/* 70 */
-	"setregid",		/* 71 */
-	"sigsuspend",		/* 72 */
-	"sigpending",		/* 73 */
-	"sethostname",		/* 74 */
-	"setrlimit",		/* 75 */
-	"getrlimit",		/* 76 */
-	"getrusage",		/* 77 */
-	"gettimeofday",		/* 78 */
-	"settimeofday",		/* 79 */
-	"getgroups",		/* 80 */
-	"setgroups",		/* 81 */
-	"select",		/* 82 */
-	"symlink",		/* 83 */
-	"oldlstat",		/* 84 */
-	"readlink",		/* 85 */
-	"uselib",		/* 86 */
-	"swapon",		/* 87 */
-	"reboot",		/* 88 */
-	"readdir",		/* 89 */
-	"mmap",			/* 90 */
-	"munmap",		/* 91 */
-	"truncate",		/* 92 */
-	"ftruncate",		/* 93 */
-	"fchmod",		/* 94 */
-	"fchown",		/* 95 */
-	"getpriority",		/* 96 */
-	"setpriority",		/* 97 */
-	"profil",		/* 98 */
-	"statfs",		/* 99 */
-	"fstatfs",		/* 100 */
-	"ioperm",		/* 101 */
-	"socketcall",		/* 102 */
-	"syslog",		/* 103 */
-	"setitimer",		/* 104 */
-	"getitimer",		/* 105 */
-	"stat",			/* 106 */
-	"lstat",		/* 107 */
-	"fstat",		/* 108 */
-	"olduname",		/* 109 */
-	"iopl",			/* 110 */
-	"vhangup",		/* 111 */
-	"idle",			/* 112 */
-	"vm86old",		/* 113 */
-	"wait4",		/* 114 */
-	"swapoff",		/* 115 */
-	"sysinfo",		/* 116 */
-	"ipc",			/* 117 */
-	"fsync",		/* 118 */
-	"sigreturn",		/* 119 */
-	"clone",		/* 120 */
-	"setdomainname",	/* 121 */
-	"uname",		/* 122 */
-	"modify_ldt",		/* 123 */
-	"adjtimex",		/* 124 */
-	"mprotect",		/* 125 */
-	"sigprocmask",		/* 126 */
-	"create_module",	/* 127 */
-	"init_module",		/* 128 */
-	"delete_module",	/* 129 */
-	"get_kernel_syms",	/* 130 */
-	"quotactl",		/* 131 */
-	"getpgid",		/* 132 */
-	"fchdir",		/* 133 */
-	"bdflush",		/* 134 */
-	"sysfs",		/* 135 */
-	"personality",		/* 136 */
-	"afs_syscall",		/* 137 */
-	"setfsuid",		/* 138 */
-	"setfsgid",		/* 139 */
-	"_llseek",		/* 140 */
-	"getdents",		/* 141 */
-	"_newselect",		/* 142 */
-	"flock",		/* 143 */
-	"msync",		/* 144 */
-	"readv",		/* 145 */
-	"writev",		/* 146 */
-	"getsid",		/* 147 */
-	"fdatasync",		/* 148 */
-	"_sysctl",		/* 149 */
-	"mlock",		/* 150 */
-	"munlock",		/* 151 */
-	"mlockall",		/* 152 */
-	"munlockall",		/* 153 */
-	"sched_setparam",	/* 154 */
-	"sched_getparam",	/* 155 */
-	"sched_setscheduler",	/* 156 */
-	"sched_getscheduler",	/* 157 */
-	"sched_yield",		/* 158 */
-	"sched_get_priority_max",	/* 159 */
-	"sched_get_priority_min",	/* 160 */
-	"sched_rr_get_interval",	/* 161 */
-	"nanosleep",		/* 162 */
-	"mremap",		/* 163 */
-	"setresuid",		/* 164 */
-	"getresuid",		/* 165 */
-	"vm86",			/* 166 */
-	"query_module",		/* 167 */
-	"poll",			/* 168 */
-	"nfsservctl",		/* 169 */
-	"setresgid",		/* 170 */
-	"getresgid",		/* 171 */
-	"prctl",		/* 172 */
-	"rt_sigreturn",		/* 173 */
-	"rt_sigaction",		/* 174 */
-	"rt_sigprocmask",	/* 175 */
-	"rt_sigpending",	/* 176 */
-	"rt_sigtimedwait",	/* 177 */
-	"rt_sigqueueinfo",	/* 178 */
-	"rt_sigsuspend",	/* 179 */
-	"pread",		/* 180 */
-	"pwrite",		/* 181 */
-	"chown",		/* 182 */
-	"getcwd",		/* 183 */
-	"capget",		/* 184 */
-	"capset",		/* 185 */
-	"sigaltstack",		/* 186 */
-	"sendfile",		/* 187 */
-	"streams1",		/* 188 */
-	"streams2",		/* 189 */
+	"0",                               /* 0 */
+	"exit",                            /* 1 */
+	"fork",                            /* 2 */
+	"read",                            /* 3 */
+	"write",                           /* 4 */
+	"open",                            /* 5 */
+	"close",                           /* 6 */
+	"waitpid",                         /* 7 */
+	"creat",                           /* 8 */
+	"link",                            /* 9 */
+	"unlink",                          /* 10 */
+	"execve",                          /* 11 */
+	"chdir",                           /* 12 */
+	"time",                            /* 13 */
+	"mknod",                           /* 14 */
+	"chmod",                           /* 15 */
+	"lchown",                          /* 16 */
+	"break",                           /* 17 */
+	"oldstat",                         /* 18 */
+	"lseek",                           /* 19 */
+	"getpid",                          /* 20 */
+	"mount",                           /* 21 */
+	"umount",                          /* 22 */
+	"setuid",                          /* 23 */
+	"getuid",                          /* 24 */
+	"stime",                           /* 25 */
+	"ptrace",                          /* 26 */
+	"alarm",                           /* 27 */
+	"oldfstat",                        /* 28 */
+	"pause",                           /* 29 */
+	"utime",                           /* 30 */
+	"stty",                            /* 31 */
+	"gtty",                            /* 32 */
+	"access",                          /* 33 */
+	"nice",                            /* 34 */
+	"ftime",                           /* 35 */
+	"sync",                            /* 36 */
+	"kill",                            /* 37 */
+	"rename",                          /* 38 */
+	"mkdir",                           /* 39 */
+	"rmdir",                           /* 40 */
+	"dup",                             /* 41 */
+	"pipe",                            /* 42 */
+	"times",                           /* 43 */
+	"prof",                            /* 44 */
+	"brk",                             /* 45 */
+	"setgid",                          /* 46 */
+	"getgid",                          /* 47 */
+	"signal",                          /* 48 */
+	"geteuid",                         /* 49 */
+	"getegid",                         /* 50 */
+	"acct",                            /* 51 */
+	"umount2",                         /* 52 */
+	"lock",                            /* 53 */
+	"ioctl",                           /* 54 */
+	"fcntl",                           /* 55 */
+	"mpx",                             /* 56 */
+	"setpgid",                         /* 57 */
+	"ulimit",                          /* 58 */
+	"oldolduname",                     /* 59 */
+	"umask",                           /* 60 */
+	"chroot",                          /* 61 */
+	"ustat",                           /* 62 */
+	"dup2",                            /* 63 */
+	"getppid",                         /* 64 */
+	"getpgrp",                         /* 65 */
+	"setsid",                          /* 66 */
+	"sigaction",                       /* 67 */
+	"sgetmask",                        /* 68 */
+	"ssetmask",                        /* 69 */
+	"setreuid",                        /* 70 */
+	"setregid",                        /* 71 */
+	"sigsuspend",                      /* 72 */
+	"sigpending",                      /* 73 */
+	"sethostname",                     /* 74 */
+	"setrlimit",                       /* 75 */
+	"getrlimit",                       /* 76 */
+	"getrusage",                       /* 77 */
+	"gettimeofday",                    /* 78 */
+	"settimeofday",                    /* 79 */
+	"getgroups",                       /* 80 */
+	"setgroups",                       /* 81 */
+	"select",                          /* 82 */
+	"symlink",                         /* 83 */
+	"oldlstat",                        /* 84 */
+	"readlink",                        /* 85 */
+	"uselib",                          /* 86 */
+	"swapon",                          /* 87 */
+	"reboot",                          /* 88 */
+	"readdir",                         /* 89 */
+	"mmap",                            /* 90 */
+	"munmap",                          /* 91 */
+	"truncate",                        /* 92 */
+	"ftruncate",                       /* 93 */
+	"fchmod",                          /* 94 */
+	"fchown",                          /* 95 */
+	"getpriority",                     /* 96 */
+	"setpriority",                     /* 97 */
+	"profil",                          /* 98 */
+	"statfs",                          /* 99 */
+	"fstatfs",                         /* 100 */
+	"ioperm",                          /* 101 */
+	"socketcall",                      /* 102 */
+	"syslog",                          /* 103 */
+	"setitimer",                       /* 104 */
+	"getitimer",                       /* 105 */
+	"stat",                            /* 106 */
+	"lstat",                           /* 107 */
+	"fstat",                           /* 108 */
+	"olduname",                        /* 109 */
+	"iopl",                            /* 110 */
+	"vhangup",                         /* 111 */
+	"idle",                            /* 112 */
+	"vm86old",                         /* 113 */
+	"wait4",                           /* 114 */
+	"swapoff",                         /* 115 */
+	"sysinfo",                         /* 116 */
+	"ipc",                             /* 117 */
+	"fsync",                           /* 118 */
+	"sigreturn",                       /* 119 */
+	"clone",                           /* 120 */
+	"setdomainname",                   /* 121 */
+	"uname",                           /* 122 */
+	"modify_ldt",                      /* 123 */
+	"adjtimex",                        /* 124 */
+	"mprotect",                        /* 125 */
+	"sigprocmask",                     /* 126 */
+	"create_module",                   /* 127 */
+	"init_module",                     /* 128 */
+	"delete_module",                   /* 129 */
+	"get_kernel_syms",                 /* 130 */
+	"quotactl",                        /* 131 */
+	"getpgid",                         /* 132 */
+	"fchdir",                          /* 133 */
+	"bdflush",                         /* 134 */
+	"sysfs",                           /* 135 */
+	"personality",                     /* 136 */
+	"afs_syscall",                     /* 137 */
+	"setfsuid",                        /* 138 */
+	"setfsgid",                        /* 139 */
+	"_llseek",                         /* 140 */
+	"getdents",                        /* 141 */
+	"_newselect",                      /* 142 */
+	"flock",                           /* 143 */
+	"msync",                           /* 144 */
+	"readv",                           /* 145 */
+	"writev",                          /* 146 */
+	"getsid",                          /* 147 */
+	"fdatasync",                       /* 148 */
+	"_sysctl",                         /* 149 */
+	"mlock",                           /* 150 */
+	"munlock",                         /* 151 */
+	"mlockall",                        /* 152 */
+	"munlockall",                      /* 153 */
+	"sched_setparam",                  /* 154 */
+	"sched_getparam",                  /* 155 */
+	"sched_setscheduler",              /* 156 */
+	"sched_getscheduler",              /* 157 */
+	"sched_yield",                     /* 158 */
+	"sched_get_priority_max",          /* 159 */
+	"sched_get_priority_min",          /* 160 */
+	"sched_rr_get_interval",           /* 161 */
+	"nanosleep",                       /* 162 */
+	"mremap",                          /* 163 */
+	"setresuid",                       /* 164 */
+	"getresuid",                       /* 165 */
+	"vm86",                            /* 166 */
+	"query_module",                    /* 167 */
+	"poll",                            /* 168 */
+	"nfsservctl",                      /* 169 */
+	"setresgid",                       /* 170 */
+	"getresgid",                       /* 171 */
+	"prctl",                           /* 172 */
+	"rt_sigreturn",                    /* 173 */
+	"rt_sigaction",                    /* 174 */
+	"rt_sigprocmask",                  /* 175 */
+	"rt_sigpending",                   /* 176 */
+	"rt_sigtimedwait",                 /* 177 */
+	"rt_sigqueueinfo",                 /* 178 */
+	"rt_sigsuspend",                   /* 179 */
+	"pread",                           /* 180 */
+	"pwrite",                          /* 181 */
+	"chown",                           /* 182 */
+	"getcwd",                          /* 183 */
+	"capget",                          /* 184 */
+	"capset",                          /* 185 */
+	"sigaltstack",                     /* 186 */
+	"sendfile",                        /* 187 */
+	"getpmsg",                         /* 188 */
+	"putpmsg",                         /* 189 */
+	"vfork",                           /* 190 */
diff --git a/sysdeps/Linux/m68k/signalent.h b/sysdeps/Linux/m68k/signalent.h
index e2c1337..f8e0f0e 100644
--- a/sysdeps/Linux/m68k/signalent.h
+++ b/sysdeps/Linux/m68k/signalent.h
@@ -1,32 +1,32 @@
-	"SIG_0",	/* 0 */
-	"SIGHUP",	/* 1 */
-	"SIGINT",	/* 2 */
-	"SIGQUIT",	/* 3 */
-	"SIGILL",	/* 4 */
-	"SIGTRAP",	/* 5 */
-	"SIGABRT",	/* 6 */
-	"SIGBUS",	/* 7 */
-	"SIGFPE",	/* 8 */
-	"SIGKILL",	/* 9 */
-	"SIGUSR1",	/* 10 */
-	"SIGSEGV",	/* 11 */
-	"SIGUSR2",	/* 12 */
-	"SIGPIPE",	/* 13 */
-	"SIGALRM",	/* 14 */
-	"SIGTERM",	/* 15 */
-	"SIGSTKFLT",	/* 16 */
-	"SIGCHLD",	/* 17 */
-	"SIGCONT",	/* 18 */
-	"SIGSTOP",	/* 19 */
-	"SIGTSTP",	/* 20 */
-	"SIGTTIN",	/* 21 */
-	"SIGTTOU",	/* 22 */
-	"SIGURG",	/* 23 */
-	"SIGXCPU",	/* 24 */
-	"SIGXFSZ",	/* 25 */
-	"SIGVTALRM",	/* 26 */
-	"SIGPROF",	/* 27 */
-	"SIGWINCH",	/* 28 */
-	"SIGIO",	/* 29 */
-	"SIGPWR",	/* 30 */
-	"SIGUNUSED",	/* 31 */
+	"SIG_0",           /* 0 */
+	"SIGHUP",          /* 1 */
+	"SIGINT",          /* 2 */
+	"SIGQUIT",         /* 3 */
+	"SIGILL",          /* 4 */
+	"SIGTRAP",         /* 5 */
+	"SIGABRT",         /* 6 */
+	"SIGBUS",          /* 7 */
+	"SIGFPE",          /* 8 */
+	"SIGKILL",         /* 9 */
+	"SIGUSR1",         /* 10 */
+	"SIGSEGV",         /* 11 */
+	"SIGUSR2",         /* 12 */
+	"SIGPIPE",         /* 13 */
+	"SIGALRM",         /* 14 */
+	"SIGTERM",         /* 15 */
+	"SIGSTKFLT",       /* 16 */
+	"SIGCHLD",         /* 17 */
+	"SIGCONT",         /* 18 */
+	"SIGSTOP",         /* 19 */
+	"SIGTSTP",         /* 20 */
+	"SIGTTIN",         /* 21 */
+	"SIGTTOU",         /* 22 */
+	"SIGURG",          /* 23 */
+	"SIGXCPU",         /* 24 */
+	"SIGXFSZ",         /* 25 */
+	"SIGVTALRM",       /* 26 */
+	"SIGPROF",         /* 27 */
+	"SIGWINCH",        /* 28 */
+	"SIGIO",           /* 29 */
+	"SIGPWR",          /* 30 */
+	"SIGUNUSED",       /* 31 */
diff --git a/sysdeps/Linux/m68k/syscallent.h b/sysdeps/Linux/m68k/syscallent.h
index 8475011..cf56647 100644
--- a/sysdeps/Linux/m68k/syscallent.h
+++ b/sysdeps/Linux/m68k/syscallent.h
@@ -1,189 +1,191 @@
-	"setup",		/* 0 */	/* used only by init, to get system going */
-	"exit",			/* 1 */
-	"fork",			/* 2 */
-	"read",			/* 3 */
-	"write",		/* 4 */
-	"open",			/* 5 */
-	"close",		/* 6 */
-	"waitpid",		/* 7 */
-	"creat",		/* 8 */
-	"link",			/* 9 */
-	"unlink",		/* 10 */
-	"execve",		/* 11 */
-	"chdir",		/* 12 */
-	"time",			/* 13 */
-	"mknod",		/* 14 */
-	"chmod",		/* 15 */
-	"chown",		/* 16 */
-	"break",		/* 17 */
-	"oldstat",		/* 18 */
-	"lseek",		/* 19 */
-	"getpid",		/* 20 */
-	"mount",		/* 21 */
-	"umount",		/* 22 */
-	"setuid",		/* 23 */
-	"getuid",		/* 24 */
-	"stime",		/* 25 */
-	"ptrace",		/* 26 */
-	"alarm",		/* 27 */
-	"oldfstat",		/* 28 */
-	"pause",		/* 29 */
-	"utime",		/* 30 */
-	"stty",			/* 31 */
-	"gtty",			/* 32 */
-	"access",		/* 33 */
-	"nice",			/* 34 */
-	"ftime",		/* 35 */
-	"sync",			/* 36 */
-	"kill",			/* 37 */
-	"rename",		/* 38 */
-	"mkdir",		/* 39 */
-	"rmdir",		/* 40 */
-	"dup",			/* 41 */
-	"pipe",			/* 42 */
-	"times",		/* 43 */
-	"prof",			/* 44 */
-	"brk",			/* 45 */
-	"setgid",		/* 46 */
-	"getgid",		/* 47 */
-	"signal",		/* 48 */
-	"geteuid",		/* 49 */
-	"getegid",		/* 50 */
-	"acct",			/* 51 */
-	"umount2",		/* 52 */
-	"lock",			/* 53 */
-	"ioctl",		/* 54 */
-	"fcntl",		/* 55 */
-	"mpx",			/* 56 */
-	"setpgid",		/* 57 */
-	"ulimit",		/* 58 */
-	"oldolduname",		/* 59 */
-	"umask",		/* 60 */
-	"chroot",		/* 61 */
-	"ustat",		/* 62 */
-	"dup2",			/* 63 */
-	"getppid",		/* 64 */
-	"getpgrp",		/* 65 */
-	"setsid",		/* 66 */
-	"sigaction",		/* 67 */
-	"sgetmask",		/* 68 */
-	"ssetmask",		/* 69 */
-	"setreuid",		/* 70 */
-	"setregid",		/* 71 */
-	"sigsuspend",		/* 72 */
-	"sigpending",		/* 73 */
-	"sethostname",		/* 74 */
-	"setrlimit",		/* 75 */
-	"getrlimit",		/* 76 */
-	"getrusage",		/* 77 */
-	"gettimeofday",		/* 78 */
-	"settimeofday",		/* 79 */
-	"getgroups",		/* 80 */
-	"setgroups",		/* 81 */
-	"select",		/* 82 */
-	"symlink",		/* 83 */
-	"oldlstat",		/* 84 */
-	"readlink",		/* 85 */
-	"uselib",		/* 86 */
-	"swapon",		/* 87 */
-	"reboot",		/* 88 */
-	"readdir",		/* 89 */
-	"mmap",			/* 90 */
-	"munmap",		/* 91 */
-	"truncate",		/* 92 */
-	"ftruncate",		/* 93 */
-	"fchmod",		/* 94 */
-	"fchown",		/* 95 */
-	"getpriority",		/* 96 */
-	"setpriority",		/* 97 */
-	"profil",		/* 98 */
-	"statfs",		/* 99 */
-	"fstatfs",		/* 100 */
-	"ioperm",		/* 101 */
-	"socketcall",		/* 102 */
-	"syslog",		/* 103 */
-	"setitimer",		/* 104 */
-	"getitimer",		/* 105 */
-	"stat",			/* 106 */
-	"lstat",		/* 107 */
-	"fstat",		/* 108 */
-	"olduname",		/* 109 */
-	"iopl",			/* 110 */ /* not supported */
-	"vhangup",		/* 111 */
-	"idle",			/* 112 */
-	"vm86",			/* 113 */ /* not supported */
-	"wait4",		/* 114 */
-	"swapoff",		/* 115 */
-	"sysinfo",		/* 116 */
-	"ipc",			/* 117 */
-	"fsync",		/* 118 */
-	"sigreturn",		/* 119 */
-	"clone",		/* 120 */
-	"setdomainname",	/* 121 */
-	"uname",		/* 122 */
-	"cacheflush",		/* 123 */
-	"adjtimex",		/* 124 */
-	"mprotect",		/* 125 */
-	"sigprocmask",		/* 126 */
-	"create_module",	/* 127 */
-	"init_module",		/* 128 */
-	"delete_module",	/* 129 */
-	"get_kernel_syms",	/* 130 */
-	"quotactl",		/* 131 */
-	"getpgid",		/* 132 */
-	"fchdir",		/* 133 */
-	"bdflush",		/* 134 */
-	"sysfs",		/* 135 */
-	"personality",		/* 136 */
-	"afs_syscall",		/* 137 */ /* Syscall for Andrew File System */
-	"setfsuid",		/* 138 */
-	"setfsgid",		/* 139 */
-	"_llseek",		/* 140 */
-	"getdents",		/* 141 */
-	"_newselect",		/* 142 */
-	"flock",		/* 143 */
-	"msync",		/* 144 */
-	"readv",		/* 145 */
-	"writev",		/* 146 */
-	"getsid",		/* 147 */
-	"fdatasync",		/* 148 */
-	"_sysctl",		/* 149 */
-	"mlock",		/* 150 */
-	"munlock",		/* 151 */
-	"mlockall",		/* 152 */
-	"munlockall",		/* 153 */
-	"sched_setparam",	/* 154 */
-	"sched_getparam",	/* 155 */
-	"sched_setscheduler",	/* 156 */
-	"sched_getscheduler",	/* 157 */
-	"sched_yield",		/* 158 */
-	"sched_get_priority_max",	/* 159 */
-	"sched_get_priority_min",	/* 160 */
-	"sched_rr_get_interval",	/* 161 */
-	"nanosleep",		/* 162 */
-	"mremap",		/* 163 */
-	"setresuid",		/* 164 */
-	"getresuid",		/* 165 */
-	"query_module",		/* 167 */
-	"poll",			/* 168 */
-	"nfsservctl",		/* 169 */
-	"setresgid",		/* 170 */
-	"getresgid",		/* 171 */
-	"prctl",		/* 172 */
-	"rt_sigreturn",		/* 173 */
-	"rt_sigaction",		/* 174 */
-	"rt_sigprocmask",	/* 175 */
-	"rt_sigpending",	/* 176 */
-	"rt_sigtimedwait",	/* 177 */
-	"rt_sigqueueinfo",	/* 178 */
-	"rt_sigsuspend",	/* 179 */
-	"pread",		/* 180 */
-	"pwrite",		/* 181 */
-	"lchown",		/* 182 */
-	"getcwd",		/* 183 */
-	"capget",		/* 184 */
-	"capset",		/* 185 */
-	"sigaltstack",		/* 186 */
-	"sendfile",		/* 187 */
-	"streams1",		/* 188 */	/* some people actually want it */
-	"streams2",		/* 189 */	/* some people actually want it */
+	"0",                               /* 0 */
+	"exit",                            /* 1 */
+	"fork",                            /* 2 */
+	"read",                            /* 3 */
+	"write",                           /* 4 */
+	"open",                            /* 5 */
+	"close",                           /* 6 */
+	"waitpid",                         /* 7 */
+	"creat",                           /* 8 */
+	"link",                            /* 9 */
+	"unlink",                          /* 10 */
+	"execve",                          /* 11 */
+	"chdir",                           /* 12 */
+	"time",                            /* 13 */
+	"mknod",                           /* 14 */
+	"chmod",                           /* 15 */
+	"chown",                           /* 16 */
+	"break",                           /* 17 */
+	"oldstat",                         /* 18 */
+	"lseek",                           /* 19 */
+	"getpid",                          /* 20 */
+	"mount",                           /* 21 */
+	"umount",                          /* 22 */
+	"setuid",                          /* 23 */
+	"getuid",                          /* 24 */
+	"stime",                           /* 25 */
+	"ptrace",                          /* 26 */
+	"alarm",                           /* 27 */
+	"oldfstat",                        /* 28 */
+	"pause",                           /* 29 */
+	"utime",                           /* 30 */
+	"stty",                            /* 31 */
+	"gtty",                            /* 32 */
+	"access",                          /* 33 */
+	"nice",                            /* 34 */
+	"ftime",                           /* 35 */
+	"sync",                            /* 36 */
+	"kill",                            /* 37 */
+	"rename",                          /* 38 */
+	"mkdir",                           /* 39 */
+	"rmdir",                           /* 40 */
+	"dup",                             /* 41 */
+	"pipe",                            /* 42 */
+	"times",                           /* 43 */
+	"prof",                            /* 44 */
+	"brk",                             /* 45 */
+	"setgid",                          /* 46 */
+	"getgid",                          /* 47 */
+	"signal",                          /* 48 */
+	"geteuid",                         /* 49 */
+	"getegid",                         /* 50 */
+	"acct",                            /* 51 */
+	"umount2",                         /* 52 */
+	"lock",                            /* 53 */
+	"ioctl",                           /* 54 */
+	"fcntl",                           /* 55 */
+	"mpx",                             /* 56 */
+	"setpgid",                         /* 57 */
+	"ulimit",                          /* 58 */
+	"oldolduname",                     /* 59 */
+	"umask",                           /* 60 */
+	"chroot",                          /* 61 */
+	"ustat",                           /* 62 */
+	"dup2",                            /* 63 */
+	"getppid",                         /* 64 */
+	"getpgrp",                         /* 65 */
+	"setsid",                          /* 66 */
+	"sigaction",                       /* 67 */
+	"sgetmask",                        /* 68 */
+	"ssetmask",                        /* 69 */
+	"setreuid",                        /* 70 */
+	"setregid",                        /* 71 */
+	"sigsuspend",                      /* 72 */
+	"sigpending",                      /* 73 */
+	"sethostname",                     /* 74 */
+	"setrlimit",                       /* 75 */
+	"getrlimit",                       /* 76 */
+	"getrusage",                       /* 77 */
+	"gettimeofday",                    /* 78 */
+	"settimeofday",                    /* 79 */
+	"getgroups",                       /* 80 */
+	"setgroups",                       /* 81 */
+	"select",                          /* 82 */
+	"symlink",                         /* 83 */
+	"oldlstat",                        /* 84 */
+	"readlink",                        /* 85 */
+	"uselib",                          /* 86 */
+	"swapon",                          /* 87 */
+	"reboot",                          /* 88 */
+	"readdir",                         /* 89 */
+	"mmap",                            /* 90 */
+	"munmap",                          /* 91 */
+	"truncate",                        /* 92 */
+	"ftruncate",                       /* 93 */
+	"fchmod",                          /* 94 */
+	"fchown",                          /* 95 */
+	"getpriority",                     /* 96 */
+	"setpriority",                     /* 97 */
+	"profil",                          /* 98 */
+	"statfs",                          /* 99 */
+	"fstatfs",                         /* 100 */
+	"ioperm",                          /* 101 */
+	"socketcall",                      /* 102 */
+	"syslog",                          /* 103 */
+	"setitimer",                       /* 104 */
+	"getitimer",                       /* 105 */
+	"stat",                            /* 106 */
+	"lstat",                           /* 107 */
+	"fstat",                           /* 108 */
+	"olduname",                        /* 109 */
+	"110",                             /* 110 */
+	"vhangup",                         /* 111 */
+	"idle",                            /* 112 */
+	"113",                             /* 113 */
+	"wait4",                           /* 114 */
+	"swapoff",                         /* 115 */
+	"sysinfo",                         /* 116 */
+	"ipc",                             /* 117 */
+	"fsync",                           /* 118 */
+	"sigreturn",                       /* 119 */
+	"clone",                           /* 120 */
+	"setdomainname",                   /* 121 */
+	"uname",                           /* 122 */
+	"cacheflush",                      /* 123 */
+	"adjtimex",                        /* 124 */
+	"mprotect",                        /* 125 */
+	"sigprocmask",                     /* 126 */
+	"create_module",                   /* 127 */
+	"init_module",                     /* 128 */
+	"delete_module",                   /* 129 */
+	"get_kernel_syms",                 /* 130 */
+	"quotactl",                        /* 131 */
+	"getpgid",                         /* 132 */
+	"fchdir",                          /* 133 */
+	"bdflush",                         /* 134 */
+	"sysfs",                           /* 135 */
+	"personality",                     /* 136 */
+	"afs_syscall",                     /* 137 */
+	"setfsuid",                        /* 138 */
+	"setfsgid",                        /* 139 */
+	"_llseek",                         /* 140 */
+	"getdents",                        /* 141 */
+	"_newselect",                      /* 142 */
+	"flock",                           /* 143 */
+	"msync",                           /* 144 */
+	"readv",                           /* 145 */
+	"writev",                          /* 146 */
+	"getsid",                          /* 147 */
+	"fdatasync",                       /* 148 */
+	"_sysctl",                         /* 149 */
+	"mlock",                           /* 150 */
+	"munlock",                         /* 151 */
+	"mlockall",                        /* 152 */
+	"munlockall",                      /* 153 */
+	"sched_setparam",                  /* 154 */
+	"sched_getparam",                  /* 155 */
+	"sched_setscheduler",              /* 156 */
+	"sched_getscheduler",              /* 157 */
+	"sched_yield",                     /* 158 */
+	"sched_get_priority_max",          /* 159 */
+	"sched_get_priority_min",          /* 160 */
+	"sched_rr_get_interval",           /* 161 */
+	"nanosleep",                       /* 162 */
+	"mremap",                          /* 163 */
+	"setresuid",                       /* 164 */
+	"getresuid",                       /* 165 */
+	"166",                             /* 166 */
+	"query_module",                    /* 167 */
+	"poll",                            /* 168 */
+	"nfsservctl",                      /* 169 */
+	"setresgid",                       /* 170 */
+	"getresgid",                       /* 171 */
+	"prctl",                           /* 172 */
+	"rt_sigreturn",                    /* 173 */
+	"rt_sigaction",                    /* 174 */
+	"rt_sigprocmask",                  /* 175 */
+	"rt_sigpending",                   /* 176 */
+	"rt_sigtimedwait",                 /* 177 */
+	"rt_sigqueueinfo",                 /* 178 */
+	"rt_sigsuspend",                   /* 179 */
+	"pread",                           /* 180 */
+	"pwrite",                          /* 181 */
+	"lchown",                          /* 182 */
+	"getcwd",                          /* 183 */
+	"capget",                          /* 184 */
+	"capset",                          /* 185 */
+	"sigaltstack",                     /* 186 */
+	"sendfile",                        /* 187 */
+	"getpmsg",                         /* 188 */
+	"putpmsg",                         /* 189 */
+	"vfork",                           /* 190 */
diff --git a/sysdeps/Linux/m68k/syscallent.h- b/sysdeps/Linux/m68k/syscallent.h-
deleted file mode 100644
index 492c3db..0000000
--- a/sysdeps/Linux/m68k/syscallent.h-
+++ /dev/null
@@ -1,190 +0,0 @@
-	"setup",		/* 0 */
-	"exit",			/* 1 */
-	"fork",			/* 2 */
-	"read",			/* 3 */
-	"write",		/* 4 */
-	"open",			/* 5 */
-	"close",		/* 6 */
-	"waitpid",		/* 7 */
-	"creat",		/* 8 */
-	"link",			/* 9 */
-	"unlink",		/* 10 */
-	"execve",		/* 11 */
-	"chdir",		/* 12 */
-	"time",			/* 13 */
-	"mknod",		/* 14 */
-	"chmod",		/* 15 */
-	"chown",		/* 16 */
-	"break",		/* 17 */
-	"oldstat",		/* 18 */
-	"lseek",		/* 19 */
-	"getpid",		/* 20 */
-	"mount",		/* 21 */
-	"umount",		/* 22 */
-	"setuid",		/* 23 */
-	"getuid",		/* 24 */
-	"stime",		/* 25 */
-	"ptrace",		/* 26 */
-	"alarm",		/* 27 */
-	"oldfstat",		/* 28 */
-	"pause",		/* 29 */
-	"utime",		/* 30 */
-	"stty",			/* 31 */
-	"gtty",			/* 32 */
-	"access",		/* 33 */
-	"nice",			/* 34 */
-	"ftime",		/* 35 */
-	"sync",			/* 36 */
-	"kill",			/* 37 */
-	"rename",		/* 38 */
-	"mkdir",		/* 39 */
-	"rmdir",		/* 40 */
-	"dup",			/* 41 */
-	"pipe",			/* 42 */
-	"times",		/* 43 */
-	"prof",			/* 44 */
-	"brk",			/* 45 */
-	"setgid",		/* 46 */
-	"getgid",		/* 47 */
-	"signal",		/* 48 */
-	"geteuid",		/* 49 */
-	"getegid",		/* 50 */
-	"acct",			/* 51 */
-	"umount2",		/* 52 */
-	"lock",			/* 53 */
-	"ioctl",		/* 54 */
-	"fcntl",		/* 55 */
-	"mpx",			/* 56 */
-	"setpgid",		/* 57 */
-	"ulimit",		/* 58 */
-	"oldolduname",		/* 59 */
-	"umask",		/* 60 */
-	"chroot",		/* 61 */
-	"ustat",		/* 62 */
-	"dup2",			/* 63 */
-	"getppid",		/* 64 */
-	"getpgrp",		/* 65 */
-	"setsid",		/* 66 */
-	"sigaction",		/* 67 */
-	"sgetmask",		/* 68 */
-	"ssetmask",		/* 69 */
-	"setreuid",		/* 70 */
-	"setregid",		/* 71 */
-	"sigsuspend",		/* 72 */
-	"sigpending",		/* 73 */
-	"sethostname",		/* 74 */
-	"setrlimit",		/* 75 */
-	"getrlimit",		/* 76 */
-	"getrusage",		/* 77 */
-	"gettimeofday",		/* 78 */
-	"settimeofday",		/* 79 */
-	"getgroups",		/* 80 */
-	"setgroups",		/* 81 */
-	"select",		/* 82 */
-	"symlink",		/* 83 */
-	"oldlstat",		/* 84 */
-	"readlink",		/* 85 */
-	"uselib",		/* 86 */
-	"swapon",		/* 87 */
-	"reboot",		/* 88 */
-	"readdir",		/* 89 */
-	"mmap",			/* 90 */
-	"munmap",		/* 91 */
-	"truncate",		/* 92 */
-	"ftruncate",		/* 93 */
-	"fchmod",		/* 94 */
-	"fchown",		/* 95 */
-	"getpriority",		/* 96 */
-	"setpriority",		/* 97 */
-	"profil",		/* 98 */
-	"statfs",		/* 99 */
-	"fstatfs",		/* 100 */
-	"ioperm",		/* 101 */
-	"socketcall",		/* 102 */
-	"syslog",		/* 103 */
-	"setitimer",		/* 104 */
-	"getitimer",		/* 105 */
-	"stat",			/* 106 */
-	"lstat",		/* 107 */
-	"fstat",		/* 108 */
-	"olduname",		/* 109 */
-	"(NONE)",		/* 110 */
-	"vhangup",		/* 111 */
-	"idle",			/* 112 */
-	"(NONE)",		/* 113 */
-	"wait4",		/* 114 */
-	"swapoff",		/* 115 */
-	"sysinfo",		/* 116 */
-	"ipc",			/* 117 */
-	"fsync",		/* 118 */
-	"sigreturn",		/* 119 */
-	"clone",		/* 120 */
-	"setdomainname",	/* 121 */
-	"uname",		/* 122 */
-	"cacheflush",		/* 123 */
-	"adjtimex",		/* 124 */
-	"mprotect",		/* 125 */
-	"sigprocmask",		/* 126 */
-	"create_module",	/* 127 */
-	"init_module",		/* 128 */
-	"delete_module",	/* 129 */
-	"get_kernel_syms",	/* 130 */
-	"quotactl",		/* 131 */
-	"getpgid",		/* 132 */
-	"fchdir",		/* 133 */
-	"bdflush",		/* 134 */
-	"sysfs",		/* 135 */
-	"personality",		/* 136 */
-	"afs_syscall",		/* 137 */
-	"setfsuid",		/* 138 */
-	"setfsgid",		/* 139 */
-	"_llseek",		/* 140 */
-	"getdents",		/* 141 */
-	"_newselect",		/* 142 */
-	"flock",		/* 143 */
-	"msync",		/* 144 */
-	"readv",		/* 145 */
-	"writev",		/* 146 */
-	"getsid",		/* 147 */
-	"fdatasync",		/* 148 */
-	"_sysctl",		/* 149 */
-	"mlock",		/* 150 */
-	"munlock",		/* 151 */
-	"mlockall",		/* 152 */
-	"munlockall",		/* 153 */
-	"sched_setparam",	/* 154 */
-	"sched_getparam",	/* 155 */
-	"sched_setscheduler",	/* 156 */
-	"sched_getscheduler",	/* 157 */
-	"sched_yield",		/* 158 */
-	"sched_get_priority_max",	/* 159 */
-	"sched_get_priority_min",	/* 160 */
-	"sched_rr_get_interval",	/* 161 */
-	"nanosleep",		/* 162 */
-	"mremap",		/* 163 */
-	"setresuid",		/* 164 */
-	"getresuid",		/* 165 */
-	"(NONE)",		/* 166 */
-	"query_module",		/* 167 */
-	"poll",			/* 168 */
-	"nfsservctl",		/* 169 */
-	"setresgid",		/* 170 */
-	"getresgid",		/* 171 */
-	"prctl",		/* 172 */
-	"rt_sigreturn",		/* 173 */
-	"rt_sigaction",		/* 174 */
-	"rt_sigprocmask",	/* 175 */
-	"rt_sigpending",	/* 176 */
-	"rt_sigtimedwait",	/* 177 */
-	"rt_sigqueueinfo",	/* 178 */
-	"rt_sigsuspend",	/* 179 */
-	"pread",		/* 180 */
-	"pwrite",		/* 181 */
-	"lchown",		/* 182 */
-	"getcwd",		/* 183 */
-	"capget",		/* 184 */
-	"capset",		/* 185 */
-	"sigaltstack",		/* 186 */
-	"sendfile",		/* 187 */
-	"streams1",		/* 188 */
-	"streams2",		/* 189 */
diff --git a/sysdeps/Linux/mksignalent b/sysdeps/Linux/mksignalent
new file mode 100755
index 0000000..316d81f
--- /dev/null
+++ b/sysdeps/Linux/mksignalent
@@ -0,0 +1,33 @@
+#!/usr/bin/awk -f
+
+# hack expression to generate arch/signalent.h from <asm/signal.h>
+# It reads from stdin and writes to stdout
+
+BEGIN {
+	max=0;
+}
+
+{
+	if (($1 ~ /^#define$/) && (!SIGNAL[$3]) && ($2 ~ /^SIG[A-Z]/) \
+	    && ($2 !~ /^SIGRTMIN$/) && ($2 !~ /^SIGRTMAX$/) && ($2 !~ /^SIGSTKSZ$/) \
+	    && ($3>=0) && ($3<=1000)) {
+		SIGNAL[$3]=$2;
+		if ($3 > max) {
+			max=$3;
+		}
+	}
+}
+
+END {
+	for(i=0; i<=max; i++) {
+		if (!SIGNAL[i]) {
+			SIGNAL[i] = "SIG_" i;
+		}
+		pad = 16 - length(SIGNAL[i]);
+		if (pad<1) {
+			pad=1;
+		}
+		printf("\t\"%s\",%*s/* %d */\n", SIGNAL[i], pad, "", i);
+	}
+}
+
diff --git a/sysdeps/Linux/mksyscallent b/sysdeps/Linux/mksyscallent
new file mode 100755
index 0000000..29d978a
--- /dev/null
+++ b/sysdeps/Linux/mksyscallent
@@ -0,0 +1,34 @@
+#!/usr/bin/awk -f
+
+# hack expression to generate arch/syscallent.h from <asm/unistd.h>
+# It reads from stdin and writes to stdout
+# Currently (linux-2.2.3), it works OK on i386,m68k
+# It does NOT work in arm,mips
+# It is untested in other architectures
+
+BEGIN {
+	max=0;
+}
+
+{
+	if (($1 ~ /^#define$/) && ($2 ~ /^__NR_/) && ($3>=0) && ($3<=1000)) {
+		SYSCALL[$3]=substr($2,6);
+		if ($3 > max) {
+			max=$3;
+		}
+	}
+}
+
+END {
+	for(i=0; i<=max; i++) {
+		if (!SYSCALL[i]) {
+			SYSCALL[i] = i;
+		}
+		pad = 32 - length(SYSCALL[i]);
+		if (pad<1) {
+			pad=1;
+		}
+		printf("\t\"%s\",%*s/* %d */\n", SYSCALL[i], pad, "", i);
+	}
+}
+
diff --git a/sysdeps/Linux/mksyscalls b/sysdeps/Linux/mksyscalls
deleted file mode 100755
index a3358be..0000000
--- a/sysdeps/Linux/mksyscalls
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/awk -f
-
-# hack expression to generate arch/syscallent.h from <asm/unistd.h>
-# It reads from stdin and writes to stdout
-# resulting blurb still needs editing!
-
-BEGIN {
-	max=0;
-}
-
-{
-	if (($1 ~ /^#define$/) && (substr($2,1,5) ~ /^__NR_$/) && ($3>=0) && ($3<=1000)) {
-		SYSCALL[$3]=substr($2,6);
-		if ($3 > max) {
-			max=$3;
-		}
-	}
-}
-
-END {
-	for(i=0; i<=max; i++) {
-		if (SYSCALL[i]) {
-			if (length(SYSCALL[i])<5) {
-				pad="\t\t\t";
-			} else if (length(SYSCALL[i])<13) {
-				pad="\t\t";
-			} else {
-				pad="\t";
-			}
-			printf("\t\"%s\",%s/* %d */\n", SYSCALL[i], pad, i);
-		} else {
-			printf("\t\"(NONE)\",\t\t/* %d */\n", i);
-		}
-	}
-}
-
diff --git a/sysdeps/Linux/sparc/Makefile b/sysdeps/Linux/sparc/Makefile
deleted file mode 100644
index b71ce1f..0000000
--- a/sysdeps/Linux/sparc/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-OBJ	=	breakpoint.o regs.o trace.o
-
-all:		arch.o
-
-arch.o:		$(OBJ)
-		$(LD) -r -o arch.o $(OBJ)
-
-clean:
-		$(RM) $(OBJ) arch.o
diff --git a/sysdeps/Linux/sparc/arch.h b/sysdeps/Linux/sparc/arch.h
deleted file mode 100644
index 1173591..0000000
--- a/sysdeps/Linux/sparc/arch.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#define BREAKPOINT_VALUE {0x91, 0xd0, 0x20, 0x01}
-#define BREAKPOINT_LENGTH 4
-#define DECR_PC_AFTER_BREAK 0
-
diff --git a/sysdeps/Linux/sparc/breakpoint.c b/sysdeps/Linux/sparc/breakpoint.c
deleted file mode 100644
index 250e511..0000000
--- a/sysdeps/Linux/sparc/breakpoint.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/ptrace.h>
-#include "ltrace.h"
-
-void insert_breakpoint(pid_t pid, struct breakpoint * sbp)
-{
-	unsigned long a;
-
-	a = ptrace(PTRACE_PEEKTEXT, pid, sbp->addr, 0);
-	*(unsigned long *)sbp->orig_value = a;
-	a = ((0x91 * 256 + 0xd0) * 256 + 0x20) * 256 + 0x01;
-	ptrace(PTRACE_POKETEXT, pid, sbp->addr, a);
-}
-
-void delete_breakpoint(pid_t pid, struct breakpoint * sbp)
-{
-	ptrace(PTRACE_POKETEXT, pid, sbp->addr, *(long *)sbp->orig_value);
-}
diff --git a/sysdeps/Linux/sparc/regs.c b/sysdeps/Linux/sparc/regs.c
deleted file mode 100644
index aaa81a9..0000000
--- a/sysdeps/Linux/sparc/regs.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-#include <sys/ptrace.h>
-
-void * get_instruction_pointer(pid_t pid)
-{
-	return (void *)ptrace(PTRACE_PEEKUSER, pid, PT_PC, 0);
-}
-
-void * get_stack_pointer(pid_t pid)
-{
-	return (void *)-1;
-}
-
-void * get_return_addr(pid_t pid, void * stack_pointer)
-{
-	return (void *)-1;
-}
-
diff --git a/sysdeps/Linux/sparc/signalent.h b/sysdeps/Linux/sparc/signalent.h
deleted file mode 100644
index e69de29..0000000
--- a/sysdeps/Linux/sparc/signalent.h
+++ /dev/null
diff --git a/sysdeps/Linux/sparc/syscallent.h b/sysdeps/Linux/sparc/syscallent.h
deleted file mode 100644
index 432a400..0000000
--- a/sysdeps/Linux/sparc/syscallent.h
+++ /dev/null
@@ -1,256 +0,0 @@
-	"setup",		/* 0 */
-	"exit",			/* 1 */
-	"fork",			/* 2 */
-	"read",			/* 3 */
-	"write",		/* 4 */
-	"open",			/* 5 */
-	"close",		/* 6 */
-	"wait4",		/* 7 */
-	"creat",		/* 8 */
-	"link",			/* 9 */
-	"unlink",		/* 10 */
-	"execv",		/* 11 */
-	"chdir",		/* 12 */
-	"(NONE)",		/* 13 */
-	"mknod",		/* 14 */
-	"chmod",		/* 15 */
-	"chown",		/* 16 */
-	"brk",			/* 17 */
-	"(NONE)",		/* 18 */
-	"lseek",		/* 19 */
-	"getpid",		/* 20 */
-	"capget",		/* 21 */
-	"capset",		/* 22 */
-	"setuid",		/* 23 */
-	"getuid",		/* 24 */
-	"(NONE)",		/* 25 */
-	"ptrace",		/* 26 */
-	"alarm",		/* 27 */
-	"sigaltstack",		/* 28 */
-	"pause",		/* 29 */
-	"utime",		/* 30 */
-	"stty",			/* 31 */
-	"gtty",			/* 32 */
-	"access",		/* 33 */
-	"nice",			/* 34 */
-	"ftime",		/* 35 */
-	"sync",			/* 36 */
-	"kill",			/* 37 */
-	"stat",			/* 38 */
-	"sendfile",		/* 39 */
-	"lstat",		/* 40 */
-	"dup",			/* 41 */
-	"pipe",			/* 42 */
-	"times",		/* 43 */
-	"profil",		/* 44 */
-	"(NONE)",		/* 45 */
-	"setgid",		/* 46 */
-	"getgid",		/* 47 */
-	"signal",		/* 48 */
-	"geteuid",		/* 49 */
-	"getegid",		/* 50 */
-	"acct",			/* 51 */
-	"(NONE)",		/* 52 */
-	"mctl",			/* 53 */
-	"ioctl",		/* 54 */
-	"reboot",		/* 55 */
-	"(NONE)",		/* 56 */
-	"symlink",		/* 57 */
-	"readlink",		/* 58 */
-	"execve",		/* 59 */
-	"umask",		/* 60 */
-	"chroot",		/* 61 */
-	"fstat",		/* 62 */
-	"(NONE)",		/* 63 */
-	"getpagesize",		/* 64 */
-	"msync",		/* 65 */
-	"(NONE)",		/* 66 */
-	"pread",		/* 67 */
-	"pwrite",		/* 68 */
-	"sbrk",			/* 69 */
-	"sstk",			/* 70 */
-	"mmap",			/* 71 */
-	"vadvise",		/* 72 */
-	"munmap",		/* 73 */
-	"mprotect",		/* 74 */
-	"madvise",		/* 75 */
-	"vhangup",		/* 76 */
-	"(NONE)",		/* 77 */
-	"mincore",		/* 78 */
-	"getgroups",		/* 79 */
-	"setgroups",		/* 80 */
-	"getpgrp",		/* 81 */
-	"setpgrp",		/* 82 */
-	"setitimer",		/* 83 */
-	"(NONE)",		/* 84 */
-	"swapon",		/* 85 */
-	"getitimer",		/* 86 */
-	"gethostname",		/* 87 */
-	"sethostname",		/* 88 */
-	"getdtablesize",	/* 89 */
-	"dup2",			/* 90 */
-	"getdopt",		/* 91 */
-	"fcntl",		/* 92 */
-	"select",		/* 93 */
-	"setdopt",		/* 94 */
-	"fsync",		/* 95 */
-	"setpriority",		/* 96 */
-	"socket",		/* 97 */
-	"connect",		/* 98 */
-	"accept",		/* 99 */
-	"getpriority",		/* 100 */
-	"rt_sigreturn",		/* 101 */
-	"rt_sigaction",		/* 102 */
-	"rt_sigprocmask",	/* 103 */
-	"rt_sigpending",	/* 104 */
-	"rt_sigtimedwait",	/* 105 */
-	"rt_sigqueueinfo",	/* 106 */
-	"rt_sigsuspend",	/* 107 */
-	"sigvec",		/* 108 */
-	"sigblock",		/* 109 */
-	"sigsetmask",		/* 110 */
-	"sigpause",		/* 111 */
-	"sigstack",		/* 112 */
-	"recvmsg",		/* 113 */
-	"sendmsg",		/* 114 */
-	"vtrace",		/* 115 */
-	"gettimeofday",		/* 116 */
-	"getrusage",		/* 117 */
-	"getsockopt",		/* 118 */
-	"getcwd",		/* 119 */
-	"readv",		/* 120 */
-	"writev",		/* 121 */
-	"settimeofday",		/* 122 */
-	"fchown",		/* 123 */
-	"fchmod",		/* 124 */
-	"recvfrom",		/* 125 */
-	"setreuid",		/* 126 */
-	"setregid",		/* 127 */
-	"rename",		/* 128 */
-	"truncate",		/* 129 */
-	"ftruncate",		/* 130 */
-	"flock",		/* 131 */
-	"(NONE)",		/* 132 */
-	"sendto",		/* 133 */
-	"shutdown",		/* 134 */
-	"socketpair",		/* 135 */
-	"mkdir",		/* 136 */
-	"rmdir",		/* 137 */
-	"utimes",		/* 138 */
-	"(NONE)",		/* 139 */
-	"adjtime",		/* 140 */
-	"getpeername",		/* 141 */
-	"gethostid",		/* 142 */
-	"(NONE)",		/* 143 */
-	"getrlimit",		/* 144 */
-	"setrlimit",		/* 145 */
-	"killpg",		/* 146 */
-	"prctl",		/* 147 */
-	"(NONE)",		/* 148 */
-	"(NONE)",		/* 149 */
-	"getsockname",		/* 150 */
-	"getmsg",		/* 151 */
-	"putmsg",		/* 152 */
-	"poll",			/* 153 */
-	"(NONE)",		/* 154 */
-	"nfssvc",		/* 155 */
-	"getdirentries",	/* 156 */
-	"statfs",		/* 157 */
-	"fstatfs",		/* 158 */
-	"umount",		/* 159 */
-	"async_daemon",		/* 160 */
-	"getfh",		/* 161 */
-	"getdomainname",	/* 162 */
-	"setdomainname",	/* 163 */
-	"(NONE)",		/* 164 */
-	"quotactl",		/* 165 */
-	"exportfs",		/* 166 */
-	"mount",		/* 167 */
-	"ustat",		/* 168 */
-	"semsys",		/* 169 */
-	"msgsys",		/* 170 */
-	"shmsys",		/* 171 */
-	"auditsys",		/* 172 */
-	"rfssys",		/* 173 */
-	"getdents",		/* 174 */
-	"setsid",		/* 175 */
-	"fchdir",		/* 176 */
-	"fchroot",		/* 177 */
-	"vpixsys",		/* 178 */
-	"aioread",		/* 179 */
-	"aiowrite",		/* 180 */
-	"aiowait",		/* 181 */
-	"aiocancel",		/* 182 */
-	"sigpending",		/* 183 */
-	"query_module",		/* 184 */
-	"setpgid",		/* 185 */
-	"pathconf",		/* 186 */
-	"fpathconf",		/* 187 */
-	"sysconf",		/* 188 */
-	"uname",		/* 189 */
-	"init_module",		/* 190 */
-	"personality",		/* 191 */
-	"prof",			/* 192 */
-	"break",		/* 193 */
-	"lock",			/* 194 */
-	"mpx",			/* 195 */
-	"ulimit",		/* 196 */
-	"getppid",		/* 197 */
-	"sigaction",		/* 198 */
-	"sgetmask",		/* 199 */
-	"ssetmask",		/* 200 */
-	"sigsuspend",		/* 201 */
-	"oldlstat",		/* 202 */
-	"uselib",		/* 203 */
-	"readdir",		/* 204 */
-	"ioperm",		/* 205 */
-	"socketcall",		/* 206 */
-	"syslog",		/* 207 */
-	"olduname",		/* 208 */
-	"iopl",			/* 209 */
-	"idle",			/* 210 */
-	"vm86",			/* 211 */
-	"waitpid",		/* 212 */
-	"swapoff",		/* 213 */
-	"sysinfo",		/* 214 */
-	"ipc",			/* 215 */
-	"sigreturn",		/* 216 */
-	"clone",		/* 217 */
-	"modify_ldt",		/* 218 */
-	"adjtimex",		/* 219 */
-	"sigprocmask",		/* 220 */
-	"create_module",	/* 221 */
-	"delete_module",	/* 222 */
-	"get_kernel_syms",	/* 223 */
-	"getpgid",		/* 224 */
-	"bdflush",		/* 225 */
-	"sysfs",		/* 226 */
-	"afs_syscall",		/* 227 */
-	"setfsuid",		/* 228 */
-	"setfsgid",		/* 229 */
-	"_newselect",		/* 230 */
-	"time",			/* 231 */
-	"oldstat",		/* 232 */
-	"stime",		/* 233 */
-	"oldfstat",		/* 234 */
-	"phys",			/* 235 */
-	"_llseek",		/* 236 */
-	"mlock",		/* 237 */
-	"munlock",		/* 238 */
-	"mlockall",		/* 239 */
-	"munlockall",		/* 240 */
-	"sched_setparam",	/* 241 */
-	"sched_getparam",	/* 242 */
-	"sched_setscheduler",	/* 243 */
-	"sched_getscheduler",	/* 244 */
-	"sched_yield",		/* 245 */
-	"sched_get_priority_max",	/* 246 */
-	"sched_get_priority_min",	/* 247 */
-	"sched_rr_get_interval",	/* 248 */
-	"nanosleep",		/* 249 */
-	"mremap",		/* 250 */
-	"_sysctl",		/* 251 */
-	"getsid",		/* 252 */
-	"fdatasync",		/* 253 */
-	"nfsservctl",		/* 254 */
-	"aplib",		/* 255 */
diff --git a/sysdeps/Linux/sparc/trace.c b/sysdeps/Linux/sparc/trace.c
deleted file mode 100644
index 1452d94..0000000
--- a/sysdeps/Linux/sparc/trace.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <signal.h>
-#include <sys/ptrace.h>
-
-#include "ltrace.h"
-
-/* Returns syscall number if `pid' stopped because of a syscall.
- * Returns -1 otherwise
- */
-int syscall_p(pid_t pid, int status)
-{
-#if 0
-	if (WIFSTOPPED(status) && WSTOPSIG(status)==SIGTRAP) {
-		int tmp = ptrace(PTRACE_PEEKUSER, pid, 4*ORIG_EAX);
-		if (tmp>=0) {
-			return tmp;
-		}
-	}
-#endif
-	return -1;
-}
-
-void continue_after_breakpoint(struct process *proc, struct breakpoint * sbp, int delete_it)
-{
-	delete_breakpoint(proc->pid, sbp);
-	ptrace(PTRACE_POKEUSER, proc->pid, PT_PC, sbp->addr);
-	if (delete_it) {
-		continue_process(proc->pid);
-	} else {
-		proc->breakpoint_being_enabled = sbp;
-		ptrace(PTRACE_SINGLESTEP, proc->pid, 0, 0);
-	}
-}
-
-long gimme_arg(enum tof type, struct process * proc, int arg_num)
-{
-#if 0
-	if (arg_num==-1) {		/* return value */
-		return ptrace(PTRACE_PEEKUSER, proc->pid, 4*EAX);
-	}
-
-	if (type==LT_TOF_FUNCTION) {
-		return ptrace(PTRACE_PEEKTEXT, proc->pid, proc->stack_pointer+4*(arg_num+1));
-	} else if (type==LT_TOF_SYSCALL) {
-#if 0
-		switch(arg_num) {
-			case 0:	return ptrace(PTRACE_PEEKUSER, proc->pid, 4*EBX);
-			case 1:	return ptrace(PTRACE_PEEKUSER, proc->pid, 4*ECX);
-			case 2:	return ptrace(PTRACE_PEEKUSER, proc->pid, 4*EDX);
-			case 3:	return ptrace(PTRACE_PEEKUSER, proc->pid, 4*ESI);
-			case 4:	return ptrace(PTRACE_PEEKUSER, proc->pid, 4*EDI);
-			default:
-				fprintf(stderr, "gimme_arg called with wrong arguments\n");
-				exit(2);
-		}
-#else
-		return ptrace(PTRACE_PEEKUSER, proc->pid, 4*arg_num);
-#endif
-	} else {
-		fprintf(stderr, "gimme_arg called with wrong arguments\n");
-		exit(1);
-	}
-#endif
-	return 0;
-}
diff --git a/sysdeps/Linux/trace.c b/sysdeps/Linux/trace.c
index 9ef96c9..fd2c1a7 100644
--- a/sysdeps/Linux/trace.c
+++ b/sysdeps/Linux/trace.c
@@ -14,7 +14,17 @@
  */
 int fork_p(int sysnum)
 {
-	return (sysnum == __NR_fork || sysnum == __NR_clone);
+	return 0
+#if defined(__NR_fork)
+		|| (sysnum == __NR_fork)
+#endif
+#if defined(__NR_clone)
+		|| (sysnum == __NR_clone)
+#endif
+#if defined(__NR_vfork)
+		|| (sysnum == __NR_vfork)
+#endif
+		;
 }
 
 /* Returns 1 if the sysnum may make the process exec other program
diff --git a/sysdeps/README b/sysdeps/README
new file mode 100644
index 0000000..d7d794d
--- /dev/null
+++ b/sysdeps/README
@@ -0,0 +1,30 @@
+Each operating system must have a subdir here, with a Makefile
+The first target of that Makefile must build a file "sysdep.o" in this
+directory.
+The "clean" target of that Makefile must undo all the efects of the
+first target, and must remove "sysdep.o" in this dir.
+
+Files "sysdep.h", "signalent.h" and "syscallent.h" must be present
+inside the directory after invoking the first target of the Makefile.
+
+-----------
+"sysdep.o" must export the following functions:
+
+void continue_after_breakpoint(struct process * proc, struct breakpoint * sbp, int delete_it);
+void continue_after_signal(pid_t pid, int signum);
+void continue_enabling_breakpoint(pid_t pid, struct breakpoint * sbp);
+void continue_process(pid_t pid);
+void insert_breakpoint(pid_t pid, struct breakpoint * sbp);
+void delete_breakpoint(pid_t pid, struct breakpoint * sbp);
+int fork_p(int sysnum);
+int exec_p(int sysnum);
+int syscall_p(struct process * proc, int status, int * sysnum);
+void * get_instruction_pointer(pid_t pid);
+void * get_stack_pointer(pid_t pid);
+void * get_return_addr(pid_t pid, void * stack_pointer);
+long gimme_arg(enum tof type, struct process * proc, int arg_num);
+int umovestr(struct process * proc, void * addr, int len, void * laddr);
+char * pid2name(pid_t pid);
+void trace_me(void);
+int trace_pid(pid_t pid);
+void untrace_pid(pid_t pid);