summaryrefslogtreecommitdiff
path: root/ld/ldmain.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2008-08-09 10:15:39 +0000
committerAlan Modra <amodra@bigpond.net.au>2008-08-09 10:15:39 +0000
commite6b5c9846ca9e1e6be5c1d4ce9075c9bc0cd911e (patch)
tree49e92408563518a45417ac22d4b2b22700d4a0f8 /ld/ldmain.c
parent0d05cc2205adb5b15078b373267c88fecf643749 (diff)
downloadbinutils-redhat-e6b5c9846ca9e1e6be5c1d4ce9075c9bc0cd911e.tar.gz
PR 6753
* ldmain.c (check_for_scripts_dir, set_scripts_dir): Delete. (main): Don't set_scripts_dir here. * ldfile.c (check_for_scripts_dir, find_scripts_dir): New functions, largely based on ldmain.c versions. (ldfile_find_command_file): Set up search in script dir here without affecting library search. * Makefile.am (ldmain.o): No need to define SCRIPTDIR. (ldfile.o): New rule. * Makefile.in: Regenerate.
Diffstat (limited to 'ld/ldmain.c')
-rw-r--r--ld/ldmain.c106
1 files changed, 0 insertions, 106 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c
index e7b9c0f9d5..bf3c0e6ded 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -114,8 +114,6 @@ static const char *get_sysroot
(int, char **);
static char *get_emulation
(int, char **);
-static void set_scripts_dir
- (void);
static bfd_boolean add_archive_element
(struct bfd_link_info *, bfd *, const char *);
static bfd_boolean multiple_definition
@@ -358,10 +356,6 @@ main (int argc, char **argv)
link_info.discard = discard_all;
}
- /* This essentially adds another -L directory so this must be done after
- the -L's in argv have been processed. */
- set_scripts_dir ();
-
/* If we have not already opened and parsed a linker script,
try the default script from command line first. */
if (saved_script_handle == NULL
@@ -671,106 +665,6 @@ get_emulation (int argc, char **argv)
return emulation;
}
-/* If directory DIR contains an "ldscripts" subdirectory,
- add DIR to the library search path and return TRUE,
- else return FALSE. */
-
-static bfd_boolean
-check_for_scripts_dir (char *dir)
-{
- size_t dirlen;
- char *buf;
- struct stat s;
- bfd_boolean res;
-
- dirlen = strlen (dir);
- /* sizeof counts the terminating NUL. */
- buf = xmalloc (dirlen + sizeof ("/ldscripts"));
- sprintf (buf, "%s/ldscripts", dir);
-
- res = stat (buf, &s) == 0 && S_ISDIR (s.st_mode);
- free (buf);
- if (res)
- ldfile_add_library_path (dir, FALSE);
- return res;
-}
-
-/* Set the default directory for finding script files.
- Libraries will be searched for here too, but that's ok.
- We look for the "ldscripts" directory in:
-
- SCRIPTDIR (passed from Makefile)
- (adjusted according to the current location of the binary)
- SCRIPTDIR (passed from Makefile)
- the dir where this program is (for using it from the build tree)
- the dir where this program is/../lib
- (for installing the tool suite elsewhere). */
-
-static void
-set_scripts_dir (void)
-{
- char *end, *dir;
- size_t dirlen;
- bfd_boolean found;
-
- dir = make_relative_prefix (program_name, BINDIR, SCRIPTDIR);
- if (dir)
- {
- found = check_for_scripts_dir (dir);
- free (dir);
- if (found)
- return;
- }
-
- dir = make_relative_prefix (program_name, TOOLBINDIR, SCRIPTDIR);
- if (dir)
- {
- found = check_for_scripts_dir (dir);
- free (dir);
- if (found)
- return;
- }
-
- if (check_for_scripts_dir (SCRIPTDIR))
- /* We've been installed normally. */
- return;
-
- /* Look for "ldscripts" in the dir where our binary is. */
- end = strrchr (program_name, '/');
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- {
- /* We could have \foo\bar, or /foo\bar. */
- char *bslash = strrchr (program_name, '\\');
-
- if (end == NULL || (bslash != NULL && bslash > end))
- end = bslash;
- }
-#endif
-
- if (end == NULL)
- /* Don't look for ldscripts in the current directory. There is
- too much potential for confusion. */
- return;
-
- dirlen = end - program_name;
- /* Make a copy of program_name in dir.
- Leave room for later "/../lib". */
- dir = xmalloc (dirlen + 8);
- strncpy (dir, program_name, dirlen);
- dir[dirlen] = '\0';
-
- if (check_for_scripts_dir (dir))
- {
- free (dir);
- return;
- }
-
- /* Look for "ldscripts" in <the dir where our binary is>/../lib. */
- strcpy (dir + dirlen, "/../lib");
- check_for_scripts_dir (dir);
- free (dir);
-}
-
void
add_ysym (const char *name)
{