aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/arc770/base-files
Commit message (Collapse)AuthorAgeFilesLines
* treewide: drop target board_name functionsMathias Kresin2017-07-151-10/+0
| | | | | | They are not used any longer. Signed-off-by: Mathias Kresin <dev@kresin.me>
* treewide: use the generic board_name functionMathias Kresin2017-07-151-2/+1
| | | | | | Use the generic function instead ot the target specific ones. Signed-off-by: Mathias Kresin <dev@kresin.me>
* all: drop old uci-defaults.shJo-Philipp Wich2015-12-111-1/+1
| | | | | | | | | Replace former uci-defaults.sh implementation with the uci-defaults-new.sh one and update all users accordingly. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 47867
* all: remove redundant board.d/00_model filesJo-Philipp Wich2015-12-041-13/+0
| | | | | | Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 47753
* arc770: switch from uci-defaults to board.dJo-Philipp Wich2015-12-033-23/+32
| | | | | | Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 47743
* linux: add support of Synopsys ARC770-based boardsFelix Fietkau2015-11-223-0/+82
This patch introduces support of new boards with ARC cores. [1] Synopsys SDP board This is a new-generation development board from Synopsys that consists of base-board and CPU tile-board (which might have a real ASIC or FPGA with CPU image). It sports a lot of DesignWare peripherals like GMAC, USB, SPI, I2C etc and is intended to be used for early development of ARC-based products. [2] nSIM This is a virtual board implemented in Synopsys proprietary software simulator (even though available for free for open source community). This board has only serial port as a peripheral and so it is meant to be used for runtime testing which is especially useful during bring-up of new tools and platforms. What's also important ARC cores are very configurable so there're many variations of options like cache sizes, their line lengths, additional hardware blocks like multipliers, dividers etc. And this board could be used to make sure built software still runs on different HW configurations. Cc: Felix Fietkau <nbd@openwrt.org> Cc: Jo-Philipp Wich <jow@openwrt.org> Cc: Jonas Gorski <jogo@openwrt.org> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> SVN-Revision: 47589
d-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
From 424da221cec76ea200cff1fa9b08a6f3d94c28a7 Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Wed, 31 Oct 2018 16:39:13 -0700
Subject: [PATCH] Fix error handling with git-style patches

When an error is encountered in output_files(), the subsequent call to
cleanup() calls back into output_files() resulting in an infinte recursion.
This is trivially reproduced with a git-style patch (which utilizes
output_file_later()) that tries to patch a nonexistent or unreadable
file (see attached test case).

* src/patch.c: (output_files) clear the files_to_output list before
iterating it, so that recursive calls won't iterate the same files.
---
 src/patch.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

--- a/src/patch.c
+++ b/src/patch.c
@@ -1938,8 +1938,12 @@ output_files (struct stat const *st)
 {
   gl_list_iterator_t iter;
   const void *elt;
+  gl_list_t files;
 
-  iter = gl_list_iterator (files_to_output);
+  files = files_to_output;
+  init_files_to_output ();
+
+  iter = gl_list_iterator (files);
   while (gl_list_iterator_next (&iter, &elt, NULL))
     {
       const struct file_to_output *file_to_output = elt;
@@ -1957,8 +1961,8 @@ output_files (struct stat const *st)
 	  /* Free the list up to here. */
 	  for (;;)
 	    {
-	      const void *elt2 = gl_list_get_at (files_to_output, 0);
-	      gl_list_remove_at (files_to_output, 0);
+	      const void *elt2 = gl_list_get_at (files, 0);
+	      gl_list_remove_at (files, 0);
 	      if (elt == elt2)
 		break;
 	    }
@@ -1967,7 +1971,7 @@ output_files (struct stat const *st)
 	}
     }
   gl_list_iterator_free (&iter);
-  gl_list_clear (files_to_output);
+  gl_list_clear (files);
 }
 
 /* Fatal exit with cleanup. */