gcc: patch for bug#81829.
This commit is contained in:
parent
8187d82337
commit
7d91772ec9
|
@ -0,0 +1,71 @@
|
|||
Bug 81829 - [7 Regression] /usr/bin/gcc-{ar,nm,ranlib} segfault without arguments
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81829
|
||||
|
||||
--- gcc/file-find.c
|
||||
+++ gcc/file-find.c
|
||||
@@ -208,38 +208,3 @@ prefix_from_string (const char *p, struct path_prefix *pprefix)
|
||||
}
|
||||
free (nstore);
|
||||
}
|
||||
-
|
||||
-void
|
||||
-remove_prefix (const char *prefix, struct path_prefix *pprefix)
|
||||
-{
|
||||
- struct prefix_list *remove, **prev, **remove_prev = NULL;
|
||||
- int max_len = 0;
|
||||
-
|
||||
- if (pprefix->plist)
|
||||
- {
|
||||
- prev = &pprefix->plist;
|
||||
- for (struct prefix_list *pl = pprefix->plist; pl->next; pl = pl->next)
|
||||
- {
|
||||
- if (strcmp (prefix, pl->prefix) == 0)
|
||||
- {
|
||||
- remove = pl;
|
||||
- remove_prev = prev;
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
- int l = strlen (pl->prefix);
|
||||
- if (l > max_len)
|
||||
- max_len = l;
|
||||
-
|
||||
- prev = &pl;
|
||||
- }
|
||||
-
|
||||
- if (remove_prev)
|
||||
- {
|
||||
- *remove_prev = remove->next;
|
||||
- free (remove);
|
||||
- }
|
||||
-
|
||||
- pprefix->max_len = max_len;
|
||||
- }
|
||||
-}
|
||||
--- gcc/file-find.h
|
||||
+++ gcc/file-find.h
|
||||
@@ -41,7 +41,6 @@ extern void find_file_set_debug (bool);
|
||||
extern char *find_a_file (struct path_prefix *, const char *, int);
|
||||
extern void add_prefix (struct path_prefix *, const char *);
|
||||
extern void add_prefix_begin (struct path_prefix *, const char *);
|
||||
-extern void remove_prefix (const char *prefix, struct path_prefix *);
|
||||
extern void prefix_from_env (const char *, struct path_prefix *);
|
||||
extern void prefix_from_string (const char *, struct path_prefix *);
|
||||
|
||||
--- gcc/gcc-ar.c
|
||||
+++ gcc/gcc-ar.c
|
||||
@@ -194,14 +194,6 @@ main (int ac, char **av)
|
||||
#ifdef CROSS_DIRECTORY_STRUCTURE
|
||||
real_exe_name = concat (target_machine, "-", PERSONALITY, NULL);
|
||||
#endif
|
||||
- /* Do not search original location in the same folder. */
|
||||
- char *exe_folder = lrealpath (av[0]);
|
||||
- exe_folder[strlen (exe_folder) - strlen (lbasename (exe_folder))] = '\0';
|
||||
- char *location = concat (exe_folder, PERSONALITY, NULL);
|
||||
-
|
||||
- if (access (location, X_OK) == 0)
|
||||
- remove_prefix (exe_folder, &path);
|
||||
-
|
||||
exe_name = find_a_file (&path, real_exe_name, X_OK);
|
||||
if (!exe_name)
|
||||
{
|
|
@ -3,7 +3,7 @@ _majorver=7.2
|
|||
|
||||
pkgname=gcc
|
||||
version=${_majorver}.0
|
||||
revision=2
|
||||
revision=3
|
||||
short_desc="The GNU C Compiler"
|
||||
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
||||
homepage="http://gcc.gnu.org"
|
||||
|
|
Loading…
Reference in New Issue