[packages/gcc] - rel 3; from archlinux - patch that fixes finding ar binary in call like '/usr/bin/gcc-ar -vvvvqc z

arekm arekm at pld-linux.org
Mon Oct 9 18:11:35 CEST 2017


commit 75e4cdcf2e8de1559cd6a177f142bbf6c544b480
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Oct 9 18:11:22 2017 +0200

    - rel 3; from archlinux - patch that fixes finding ar binary in call like '/usr/bin/gcc-ar -vvvvqc zupa.a a b'

 Revert-eeb6872bf.patch | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++
 gcc.spec               |  4 ++-
 2 files changed, 85 insertions(+), 1 deletion(-)
---
diff --git a/gcc.spec b/gcc.spec
index b7bcec3..f8096db 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -105,7 +105,7 @@ Summary(pl.UTF-8):	Kolekcja kompilatorów GNU: kompilator C i pliki współdziel
 Summary(pt_BR.UTF-8):	Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
 Name:		gcc
 Version:	%{major_ver}.%{minor_ver}
-Release:	2
+Release:	3
 Epoch:		6
 License:	GPL v3+
 Group:		Development/Languages
@@ -122,6 +122,7 @@ Patch0:		%{name}-info.patch
 Patch2:		%{name}-nodebug.patch
 Patch3:		%{name}-ada-link.patch
 Patch4:		%{name}-ada-x32.patch
+Patch5:		Revert-eeb6872bf.patch
 
 Patch10:	%{name}-moresparcs.patch
 Patch11:	%{name}-install-libffi.patch
@@ -2801,6 +2802,7 @@ Extensions dla języka C.
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
 
 %patch10 -p1
 %if %{with gcc_libffi}
diff --git a/Revert-eeb6872bf.patch b/Revert-eeb6872bf.patch
new file mode 100644
index 0000000..1688c14
--- /dev/null
+++ b/Revert-eeb6872bf.patch
@@ -0,0 +1,82 @@
+commit 43d83a70267a9e5c456d28de8e7348820446b712
+Author: Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
+Date:   Tue May 16 07:50:42 2017 +0200
+
+    Revert "Prevent LTO wrappers to process a recursive execution"
+    
+    This reverts commit eeb6872bfdfd1e71b27de6f62a5f5c08a2efb015.
+
+diff --git a/gcc/file-find.c b/gcc/file-find.c
+index b072a4993d76..b5a1fe8494e8 100644
+--- a/gcc/file-find.c
++++ b/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;
+-    }
+-}
+diff --git a/gcc/file-find.h b/gcc/file-find.h
+index 8f49a3af273e..407feba26e74 100644
+--- a/gcc/file-find.h
++++ b/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 *);
+ 
+diff --git a/gcc/gcc-ar.c b/gcc/gcc-ar.c
+index 78d2fc1ad306..d5d80e042e5a 100644
+--- a/gcc/gcc-ar.c
++++ b/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)
+ 	{
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gcc.git/commitdiff/75e4cdcf2e8de1559cd6a177f142bbf6c544b480



More information about the pld-cvs-commit mailing list