diff options
author | Alan Modra <amodra@gmail.com> | 2008-08-09 10:15:39 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2008-08-09 10:15:39 +0000 |
commit | a8caa2450b3abe46aeec4ccd61ccc9b680ebb2ff (patch) | |
tree | f0c291edf76ea69c3cc5bc3984bc98ecb6374f48 /ld/ldmain.c | |
parent | 3979a37f371bb2c208f26a15155ae90dec533228 (diff) | |
download | gdb-a8caa2450b3abe46aeec4ccd61ccc9b680ebb2ff.zip gdb-a8caa2450b3abe46aeec4ccd61ccc9b680ebb2ff.tar.gz gdb-a8caa2450b3abe46aeec4ccd61ccc9b680ebb2ff.tar.bz2 |
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.c | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c index e7b9c0f..bf3c0e6 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) { |