--- /dev/null
+--- a/src/extern.h
++++ b/src/extern.h
+@@ -97,7 +97,8 @@ extern char input_is_special;
+ extern char output_is_special;
+ extern char input_is_seekable;
+ extern char output_is_seekable;
+-extern int (*xstat) ();
++//void not good enough
++extern int (*xstat) (const char * restrict, struct stat * restrict);
+ extern void (*copy_function) ();
+ extern char *change_directory_option;
+
+--- a/src/global.c
++++ b/src/global.c
+@@ -185,7 +185,7 @@ bool to_stdout_option = false;
+
+ /* A pointer to either lstat or stat, depending on whether
+ dereferencing of symlinks is done for input files. */
+-int (*xstat) ();
++int (*xstat) (const char * restrict, struct stat * restrict);
+
+ /* Which copy operation to perform. (-i, -o, -p) */
+ void (*copy_function) () = 0;