Commit 59014d0a by Richard Stallman

*** empty log message ***

From-SVN: r678
parent aaf625e5
...@@ -534,14 +534,14 @@ static int n_default_compilers ...@@ -534,14 +534,14 @@ static int n_default_compilers
/* Have gcc do the search. */ /* Have gcc do the search. */
/* -u* was put back because both BSD and SysV seem to support it. */ /* -u* was put back because both BSD and SysV seem to support it. */
static char *link_command_spec = "\ static char *link_command_spec = "\
%{!c:%{!M:%{!MM:%{!E:%{!S:ld %X %l %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} \ %{!c:%{!M:%{!MM:%{!E:%{!S:ld %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} \
%{r} %{s} %{T*} %{t} %{u*} %{x} %{z}\ %{r} %{s} %{T*} %{t} %{u*} %{x} %{z}\
%{!A:%{!nostdlib:%S}} \ %{!A:%{!nostdlib:%S}} \
%{L*} %D %o %{!nostdlib:libgcc.a%s %L libgcc.a%s %{!A:%E}}\n }}}}}"; %{L*} %D %o %{!nostdlib:libgcc.a%s %L libgcc.a%s %{!A:%E}}\n }}}}}";
#else #else
/* Use -l and have the linker do the search. */ /* Use -l and have the linker do the search. */
static char *link_command_spec = "\ static char *link_command_spec = "\
%{!c:%{!M:%{!MM:%{!E:%{!S:ld %X %l %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} \ %{!c:%{!M:%{!MM:%{!E:%{!S:ld %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} \
%{r} %{s} %{T*} %{t} %{u*} %{x} %{z}\ %{r} %{s} %{T*} %{t} %{u*} %{x} %{z}\
%{!A:%{!nostdlib:%S}} \ %{!A:%{!nostdlib:%S}} \
%{L*} %D %o %{!nostdlib:-lgcc %L -lgcc %{!A:%E}}\n }}}}}"; %{L*} %D %o %{!nostdlib:-lgcc %L -lgcc %{!A:%E}}\n }}}}}";
...@@ -1371,19 +1371,19 @@ pexecute (func, program, argv, not_last) ...@@ -1371,19 +1371,19 @@ pexecute (func, program, argv, not_last)
FILE *argfile; FILE *argfile;
int i; int i;
scmd = (char *)malloc(strlen(program) + strlen(temp_filename) + 6); scmd = (char *)malloc (strlen (program) + strlen (temp_filename) + 6);
sprintf(scmd, "%s @%s.gp", program, temp_filename); sprintf (scmd, "%s @%s.gp", program, temp_filename);
argfile = fopen(scmd+strlen(program)+2, "w"); argfile = fopen (scmd+strlen (program) + 2, "w");
if (argfile == 0) if (argfile == 0)
pfatal_with_name(scmd+strlen(program)+2); pfatal_with_name (scmd + strlen (program) + 2);
for (i=1; argv[i]; i++) for (i=1; argv[i]; i++)
fprintf(argfile, "%s\n", argv[i]); fprintf (argfile, "%s\n", argv[i]);
fclose(argfile); fclose (argfile);
i = system(scmd); i = system (scmd);
remove(scmd+strlen(program)+2); remove (scmd + strlen (program) + 2);
return i << 8; return i << 8;
} }
...@@ -2210,6 +2210,10 @@ do_spec_1 (spec, inswitch, soft_matched_part) ...@@ -2210,6 +2210,10 @@ do_spec_1 (spec, inswitch, soft_matched_part)
{ {
struct prefix_list *pl struct prefix_list *pl
= (i == 0 ? library_prefix.plist : startfile_prefix.plist); = (i == 0 ? library_prefix.plist : startfile_prefix.plist);
int bufsize = 100;
char *buffer = (char *) xmalloc (bufsize);
int idx;
for (; pl; pl = pl->next) for (; pl; pl = pl->next)
{ {
#ifdef RELATIVE_PREFIX_NOT_LINKDIR #ifdef RELATIVE_PREFIX_NOT_LINKDIR
...@@ -2230,7 +2234,15 @@ do_spec_1 (spec, inswitch, soft_matched_part) ...@@ -2230,7 +2234,15 @@ do_spec_1 (spec, inswitch, soft_matched_part)
do_spec_1 (" ", 0, 0); do_spec_1 (" ", 0, 0);
#endif #endif
do_spec_1 (pl->prefix, 1, 0); do_spec_1 (pl->prefix, 1, 0);
do_spec_1 (machine_suffix, 1, 0); /* Remove slash from machine_suffix. */
if (strlen (machine_suffix) >= bufsize)
bufsize = strlen (machine_suffix) * 2 + 1;
buffer = (char *) xrealloc (buffer, bufsize);
strcpy (buffer, machine_suffix);
idx = strlen (buffer);
if (buffer[idx - 1] == '/')
buffer[idx - 1] = 0;
do_spec_1 (buffer, 1, 0);
/* Make this a separate argument. */ /* Make this a separate argument. */
do_spec_1 (" ", 0, 0); do_spec_1 (" ", 0, 0);
} }
...@@ -2243,12 +2255,21 @@ do_spec_1 (spec, inswitch, soft_matched_part) ...@@ -2243,12 +2255,21 @@ do_spec_1 (spec, inswitch, soft_matched_part)
#ifdef SPACE_AFTER_L_OPTION #ifdef SPACE_AFTER_L_OPTION
do_spec_1 (" ", 0, 0); do_spec_1 (" ", 0, 0);
#endif #endif
do_spec_1 (pl->prefix, 1, 0); /* Remove slash from pl->prefix. */
if (strlen (pl->prefix) >= bufsize)
bufsize = strlen (pl->prefix) * 2 + 1;
buffer = (char *) xrealloc (buffer, bufsize);
strcpy (buffer, pl->prefix);
idx = strlen (buffer);
if (buffer[idx - 1] == '/')
buffer[idx - 1] = 0;
do_spec_1 (buffer, 1, 0);
/* Make this a separate argument. */ /* Make this a separate argument. */
do_spec_1 (" ", 0, 0); do_spec_1 (" ", 0, 0);
} }
} }
} }
free (buffer);
} }
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment