* Use strsignal if available to give better error messages for
builders that fail due to a signal.
This commit is contained in:
		
							parent
							
								
									1e90b4189d
								
							
						
					
					
						commit
						df303666bc
					
				
					 2 changed files with 14 additions and 2 deletions
				
			
		|  | @ -256,6 +256,10 @@ AM_CONDITIONAL(INIT_STATE, test "$init_state" = "yes") | ||||||
| AC_CHECK_FUNCS([setresuid setreuid lchown]) | AC_CHECK_FUNCS([setresuid setreuid lchown]) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | # Nice to have, but not essential. | ||||||
|  | AC_CHECK_FUNCS([strsignal]) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| # This is needed if ATerm, Berkeley DB or bzip2 are static libraries, | # This is needed if ATerm, Berkeley DB or bzip2 are static libraries, | ||||||
| # and the Nix libraries are dynamic. | # and the Nix libraries are dynamic. | ||||||
| if test "$(uname)" = "Darwin"; then | if test "$(uname)" = "Darwin"; then | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ | ||||||
| #include <cerrno> | #include <cerrno> | ||||||
| #include <cstdio> | #include <cstdio> | ||||||
| #include <sstream> | #include <sstream> | ||||||
|  | #include <cstring> | ||||||
| 
 | 
 | ||||||
| #include <sys/stat.h> | #include <sys/stat.h> | ||||||
| #include <sys/wait.h> | #include <sys/wait.h> | ||||||
|  | @ -960,8 +961,15 @@ string statusToString(int status) | ||||||
|     if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) { |     if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) { | ||||||
|         if (WIFEXITED(status)) |         if (WIFEXITED(status)) | ||||||
|             return (format("failed with exit code %1%") % WEXITSTATUS(status)).str(); |             return (format("failed with exit code %1%") % WEXITSTATUS(status)).str(); | ||||||
|         else if (WIFSIGNALED(status)) |         else if (WIFSIGNALED(status)) { | ||||||
|             return (format("failed due to signal %1%") % WTERMSIG(status)).str(); | 	    int sig = WTERMSIG(status); | ||||||
|  | #if HAVE_STRSIGNAL | ||||||
|  |             const char * description = strsignal(sig); | ||||||
|  |             return (format("failed due to signal %1% (%2%)") % sig % description).str(); | ||||||
|  | #else | ||||||
|  |             return (format("failed due to signal %1%") % sig).str(); | ||||||
|  | #endif | ||||||
|  | 	} | ||||||
|         else |         else | ||||||
|             return "died abnormally"; |             return "died abnormally"; | ||||||
|     } else return "succeeded"; |     } else return "succeeded"; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue