include:
2006-05-03 Andrew Stubbs <andrew.stubbs@st.com> J"orn Rennecke <joern.rennecke@st.com> PR driver/29931 * libiberty.h (make_relative_prefix_ignore_links): Declare. libiberty: 2006-05-03 Andrew Stubbs <andrew.stubbs@st.com> J"orn Rennecke <joern.rennecke@st.com> PR driver/29931 * make-relative-prefix.c (make_relative_prefix_1): New function, broken out of make_relative_prefix. Make link resolution dependent on new parameter. (make_relative_prefix): Use make_relative_prefix_1. (make_relative_prefix_ignore_links): New function.
This commit is contained in:
parent
85411edae8
commit
d8f813d405
@ -1,3 +1,9 @@
|
||||
2006-11-30 Andrew Stubbs <andrew.stubbs@st.com>
|
||||
J"orn Rennecke <joern.rennecke@st.com>
|
||||
|
||||
PR driver/29931
|
||||
* libiberty.h (make_relative_prefix_ignore_links): Declare.
|
||||
|
||||
2006-11-27 Bob Wilson <bob.wilson@acm.org>
|
||||
|
||||
* xtensa-config.h (XSHAL_ABI): New.
|
||||
|
@ -197,6 +197,13 @@ extern long get_run_time (void);
|
||||
extern char *make_relative_prefix (const char *, const char *,
|
||||
const char *) ATTRIBUTE_MALLOC;
|
||||
|
||||
/* Generate a relocated path to some installation directory without
|
||||
attempting to follow any soft links. Allocates
|
||||
return value using malloc. */
|
||||
|
||||
extern char *make_relative_prefix_ignore_links (const char *, const char *,
|
||||
const char *) ATTRIBUTE_MALLOC;
|
||||
|
||||
/* Choose a temporary directory to use for scratch files. */
|
||||
|
||||
extern char *choose_temp_base (void) ATTRIBUTE_MALLOC;
|
||||
|
@ -1,3 +1,13 @@
|
||||
2006-11-30 Andrew Stubbs <andrew.stubbs@st.com>
|
||||
J"orn Rennecke <joern.rennecke@st.com>
|
||||
|
||||
PR driver/29931
|
||||
* make-relative-prefix.c (make_relative_prefix_1): New function,
|
||||
broken out of make_relative_prefix. Make link resolution dependent
|
||||
on new parameter.
|
||||
(make_relative_prefix): Use make_relative_prefix_1.
|
||||
(make_relative_prefix_ignore_links): New function.
|
||||
|
||||
2006-11-08 Vladimir Prus <vladimir@codesourcery.com>
|
||||
|
||||
* pex-win32.c (no_suffixes): Remove.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Relative (relocatable) prefix support.
|
||||
Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libiberty.
|
||||
|
||||
@ -217,9 +217,9 @@ free_split_directories (char **dirs)
|
||||
|
||||
If no relative prefix can be found, return NULL. */
|
||||
|
||||
char *
|
||||
make_relative_prefix (const char *progname,
|
||||
const char *bin_prefix, const char *prefix)
|
||||
static char *
|
||||
make_relative_prefix_1 (const char *progname, const char *bin_prefix,
|
||||
const char *prefix, const int resolve_links)
|
||||
{
|
||||
char **prog_dirs, **bin_dirs, **prefix_dirs;
|
||||
int prog_num, bin_num, prefix_num;
|
||||
@ -289,9 +289,14 @@ make_relative_prefix (const char *progname,
|
||||
}
|
||||
}
|
||||
|
||||
full_progname = lrealpath (progname);
|
||||
if (full_progname == NULL)
|
||||
return NULL;
|
||||
if ( resolve_links )
|
||||
{
|
||||
full_progname = lrealpath (progname);
|
||||
if (full_progname == NULL)
|
||||
return NULL;
|
||||
}
|
||||
else
|
||||
full_progname = strdup(progname);
|
||||
|
||||
prog_dirs = split_directories (full_progname, &prog_num);
|
||||
bin_dirs = split_directories (bin_prefix, &bin_num);
|
||||
@ -387,3 +392,33 @@ make_relative_prefix (const char *progname,
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* Do the full job, including symlink resolution.
|
||||
This path will find files installed in the same place as the
|
||||
program even when a soft link has been made to the program
|
||||
from somwhere else. */
|
||||
|
||||
char *
|
||||
make_relative_prefix (progname, bin_prefix, prefix)
|
||||
const char *progname;
|
||||
const char *bin_prefix;
|
||||
const char *prefix;
|
||||
{
|
||||
return make_relative_prefix_1 (progname, bin_prefix, prefix, 1);
|
||||
}
|
||||
|
||||
/* Make the relative pathname without attempting to resolve any links.
|
||||
'..' etc may also be left in the pathname.
|
||||
This will find the files the user meant the program to find if the
|
||||
installation is patched together with soft links. */
|
||||
|
||||
char *
|
||||
make_relative_prefix_ignore_links (progname, bin_prefix, prefix)
|
||||
const char *progname;
|
||||
const char *bin_prefix;
|
||||
const char *prefix;
|
||||
{
|
||||
return make_relative_prefix_1 (progname, bin_prefix, prefix, 0);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user