* Don't use ULLONG_MAX in maxFreed - use 0 to mean "no limit".
18446744073709551615ULL breaks on GCC 3.3.6 (`integer constant is too large for "long" type').
This commit is contained in:
		
							parent
							
								
									92f525ecf4
								
							
						
					
					
						commit
						5dd8fb2069
					
				
					 4 changed files with 8 additions and 10 deletions
				
			
		|  | @ -482,7 +482,7 @@ void LocalStore::gcPath(const GCOptions & options, GCResults & results, | ||||||
|     results.bytesFreed += bytesFreed; |     results.bytesFreed += bytesFreed; | ||||||
|     results.blocksFreed += blocksFreed; |     results.blocksFreed += blocksFreed; | ||||||
| 
 | 
 | ||||||
|     if (results.bytesFreed > options.maxFreed) { |     if (options.maxFreed && results.bytesFreed > options.maxFreed) { | ||||||
|         printMsg(lvlInfo, format("deleted more than %1% bytes; stopping") % options.maxFreed); |         printMsg(lvlInfo, format("deleted more than %1% bytes; stopping") % options.maxFreed); | ||||||
|         throw GCLimitReached(); |         throw GCLimitReached(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -5,12 +5,6 @@ | ||||||
| #include <limits.h> | #include <limits.h> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /* Needed for some ancient environments. */ |  | ||||||
| #ifndef ULLONG_MAX |  | ||||||
| #define ULLONG_MAX 18446744073709551615ULL |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| namespace nix { | namespace nix { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -18,7 +12,7 @@ GCOptions::GCOptions() | ||||||
| { | { | ||||||
|     action = gcDeleteDead; |     action = gcDeleteDead; | ||||||
|     ignoreLiveness = false; |     ignoreLiveness = false; | ||||||
|     maxFreed = ULLONG_MAX; |     maxFreed = 0; | ||||||
|     maxLinks = 0; |     maxLinks = 0; | ||||||
|     useAtime = false; |     useAtime = false; | ||||||
|     maxAtime = (time_t) -1; |     maxAtime = (time_t) -1; | ||||||
|  |  | ||||||
|  | @ -56,7 +56,8 @@ struct GCOptions | ||||||
|     /* For `gcDeleteSpecific', the paths to delete. */ |     /* For `gcDeleteSpecific', the paths to delete. */ | ||||||
|     PathSet pathsToDelete; |     PathSet pathsToDelete; | ||||||
| 
 | 
 | ||||||
|     /* Stop after at least `maxFreed' bytes have been freed. */ |     /* Stop after at least `maxFreed' bytes have been freed.  0 means
 | ||||||
|  |        no limit. */ | ||||||
|     unsigned long long maxFreed; |     unsigned long long maxFreed; | ||||||
| 
 | 
 | ||||||
|     /* Stop after the number of hard links to the Nix store directory
 |     /* Stop after the number of hard links to the Nix store directory
 | ||||||
|  |  | ||||||
|  | @ -531,7 +531,10 @@ static void opGC(Strings opFlags, Strings opArgs) | ||||||
|         else if (*i == "--print-live") options.action = GCOptions::gcReturnLive; |         else if (*i == "--print-live") options.action = GCOptions::gcReturnLive; | ||||||
|         else if (*i == "--print-dead") options.action = GCOptions::gcReturnDead; |         else if (*i == "--print-dead") options.action = GCOptions::gcReturnDead; | ||||||
|         else if (*i == "--delete") options.action = GCOptions::gcDeleteDead; |         else if (*i == "--delete") options.action = GCOptions::gcDeleteDead; | ||||||
|         else if (*i == "--max-freed") options.maxFreed = getIntArg(*i, i, opFlags.end()); |         else if (*i == "--max-freed") { | ||||||
|  |             options.maxFreed = getIntArg(*i, i, opFlags.end()); | ||||||
|  |             if (options.maxFreed == 0) options.maxFreed = 1; | ||||||
|  |         } | ||||||
|         else if (*i == "--max-links") options.maxLinks = getIntArg(*i, i, opFlags.end()); |         else if (*i == "--max-links") options.maxLinks = getIntArg(*i, i, opFlags.end()); | ||||||
|         else if (*i == "--use-atime") options.useAtime = true; |         else if (*i == "--use-atime") options.useAtime = true; | ||||||
|         else if (*i == "--max-atime") { |         else if (*i == "--max-atime") { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue