aboutsummaryrefslogtreecommitdiff
path: root/gcc/file-find.h
diff options
context:
space:
mode:
authorMeador Inge <meadori@codesourcery.com>2012-11-27 16:55:47 +0000
committerMeador Inge <meadori@gcc.gnu.org>2012-11-27 16:55:47 +0000
commitc2a73de27f10388dcb8e457f7ccbeec798350492 (patch)
treeb327f0c1eba3f0941ca3e99f9c8e852a2b117082 /gcc/file-find.h
parent3a50da342e585096bfdfc07ce8d8d49e9a6f227e (diff)
downloadgcc-c2a73de27f10388dcb8e457f7ccbeec798350492.zip
gcc-c2a73de27f10388dcb8e457f7ccbeec798350492.tar.gz
gcc-c2a73de27f10388dcb8e457f7ccbeec798350492.tar.bz2
collect2.c (main): Call find_file_set_debug.
2012-11-27 Meador Inge <meadori@codesourcery.com> * collect2.c (main): Call find_file_set_debug. (find_a_find, add_prefix, prefix_from_env, prefix_from_string): Factor out into ... * file-find.c (New file): ... here and ... * file-find.h (New file): ... here. * gcc-ar.c (standard_exec_prefix): New variable. (standard_libexec_prefix): Ditto. (tooldir_base_prefix) Ditto. (self_exec_prefix): Ditto. (self_libexec_prefix): Ditto. (self_tooldir_prefix): Ditto. (target_version): Ditto. (path): Ditto. (target_path): Ditto. (setup_prefixes): New function. (main): Rework how wrapped programs are found. * Makefile.in (OBJS-libcommon-target): Add file-find.o. (AR_OBJS): New variable. (gcc-ar$(exeext)): Add dependency on $(AR_OBJS). (gcc-nm$(exeext)): Ditto. (gcc-ranlib(exeext)): Ditto. (COLLECT2_OBJS): Add file-find.o. (collect2.o): Add file-find.h prerequisite. (file-find.o): New rule. From-SVN: r193859
Diffstat (limited to 'gcc/file-find.h')
-rw-r--r--gcc/file-find.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/gcc/file-find.h b/gcc/file-find.h
new file mode 100644
index 0000000..4c0182a
--- /dev/null
+++ b/gcc/file-find.h
@@ -0,0 +1,47 @@
+/* Prototypes and data structures used for implementing functions for
+ finding files relative to GCC binaries.
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_FILE_FIND_H
+#define GCC_FILE_FIND_H
+
+/* Structure to hold all the directories in which to search for files to
+ execute. */
+
+struct prefix_list
+{
+ const char *prefix; /* String to prepend to the path. */
+ struct prefix_list *next; /* Next in linked list. */
+};
+
+struct path_prefix
+{
+ struct prefix_list *plist; /* List of prefixes to try */
+ int max_len; /* Max length of a prefix in PLIST */
+ const char *name; /* Name of this list (used in config stuff) */
+};
+
+extern void find_file_set_debug (bool);
+extern char *find_a_file (struct path_prefix *, const char *);
+extern void add_prefix (struct path_prefix *, const char *);
+extern void prefix_from_env (const char *, struct path_prefix *);
+extern void prefix_from_string (const char *, struct path_prefix *);
+
+#endif /* GCC_FILE_FIND_H */