diff --git a/gcc/input.h b/gcc/input.h
new file mode 100644
index 0000000000000000000000000000000000000000..8c326f9e6a7505454f6451166d3bdddc34d5f5b1
--- /dev/null
+++ b/gcc/input.h
@@ -0,0 +1,25 @@
+/* Source file current line is coming from.  */
+extern char *input_filename;
+
+/* Top-level source file.  */
+extern char *main_input_filename;
+
+/* Line number in current source file.  */
+extern int lineno;
+
+/* Stream for reading from input file.  */
+extern FILE *finput;
+
+struct file_stack
+  {
+    char *name;
+    struct file_stack *next;
+    int line;
+  };
+
+/* Stack of currently pending input files.
+   The line member is not accurate for the innermost file on the stack.  */
+extern struct file_stack *input_file_stack;
+
+/* Incremented on each change to input_file_stack.  */
+extern int input_file_stack_tick;