diff --git a/Makefile.am b/Makefile.am
index c8a6871..e78e1fe 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -40,6 +40,7 @@
 	kexec.c		\
 	keyctl.c	\
 	ldt.c		\
+	link.c		\
 	loop.c		\
 	mem.c		\
 	mknod.c		\
diff --git a/file.c b/file.c
index 2c4691b..7ba6824 100644
--- a/file.c
+++ b/file.c
@@ -1102,24 +1102,6 @@
 #endif
 }
 
-#ifndef AT_SYMLINK_NOFOLLOW
-# define AT_SYMLINK_NOFOLLOW	0x100
-#endif
-#ifndef AT_REMOVEDIR
-# define AT_REMOVEDIR		0x200
-#endif
-#ifndef AT_SYMLINK_FOLLOW
-# define AT_SYMLINK_FOLLOW	0x400
-#endif
-#ifndef AT_NO_AUTOMOUNT
-# define AT_NO_AUTOMOUNT	0x800
-#endif
-#ifndef AT_EMPTY_PATH
-# define AT_EMPTY_PATH		0x1000
-#endif
-
-#include "xlat/at_flags.h"
-
 int
 sys_newfstatat(struct tcb *tcp)
 {
@@ -1269,53 +1251,3 @@
 	}
 	return 0;
 }
-
-int
-sys_link(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		printpath(tcp, tcp->u_arg[0]);
-		tprints(", ");
-		printpath(tcp, tcp->u_arg[1]);
-	}
-	return 0;
-}
-
-int
-sys_linkat(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		print_dirfd(tcp, tcp->u_arg[0]);
-		printpath(tcp, tcp->u_arg[1]);
-		tprints(", ");
-		print_dirfd(tcp, tcp->u_arg[2]);
-		printpath(tcp, tcp->u_arg[3]);
-		tprints(", ");
-		printflags(at_flags, tcp->u_arg[4], "AT_???");
-	}
-	return 0;
-}
-
-int
-sys_unlinkat(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		print_dirfd(tcp, tcp->u_arg[0]);
-		printpath(tcp, tcp->u_arg[1]);
-		tprints(", ");
-		printflags(at_flags, tcp->u_arg[2], "AT_???");
-	}
-	return 0;
-}
-
-int
-sys_symlinkat(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		printpath(tcp, tcp->u_arg[0]);
-		tprints(", ");
-		print_dirfd(tcp, tcp->u_arg[1]);
-		printpath(tcp, tcp->u_arg[2]);
-	}
-	return 0;
-}
diff --git a/link.c b/link.c
new file mode 100644
index 0000000..2f5298f
--- /dev/null
+++ b/link.c
@@ -0,0 +1,71 @@
+#include "defs.h"
+
+#include <fcntl.h>
+
+#ifndef AT_SYMLINK_NOFOLLOW
+# define AT_SYMLINK_NOFOLLOW	0x100
+#endif
+#ifndef AT_REMOVEDIR
+# define AT_REMOVEDIR		0x200
+#endif
+#ifndef AT_SYMLINK_FOLLOW
+# define AT_SYMLINK_FOLLOW	0x400
+#endif
+#ifndef AT_NO_AUTOMOUNT
+# define AT_NO_AUTOMOUNT	0x800
+#endif
+#ifndef AT_EMPTY_PATH
+# define AT_EMPTY_PATH		0x1000
+#endif
+
+#include "xlat/at_flags.h"
+
+int
+sys_link(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		printpath(tcp, tcp->u_arg[0]);
+		tprints(", ");
+		printpath(tcp, tcp->u_arg[1]);
+	}
+	return 0;
+}
+
+int
+sys_linkat(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		print_dirfd(tcp, tcp->u_arg[0]);
+		printpath(tcp, tcp->u_arg[1]);
+		tprints(", ");
+		print_dirfd(tcp, tcp->u_arg[2]);
+		printpath(tcp, tcp->u_arg[3]);
+		tprints(", ");
+		printflags(at_flags, tcp->u_arg[4], "AT_???");
+	}
+	return 0;
+}
+
+int
+sys_unlinkat(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		print_dirfd(tcp, tcp->u_arg[0]);
+		printpath(tcp, tcp->u_arg[1]);
+		tprints(", ");
+		printflags(at_flags, tcp->u_arg[2], "AT_???");
+	}
+	return 0;
+}
+
+int
+sys_symlinkat(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		printpath(tcp, tcp->u_arg[0]);
+		tprints(", ");
+		print_dirfd(tcp, tcp->u_arg[1]);
+		printpath(tcp, tcp->u_arg[2]);
+	}
+	return 0;
+}
