configure: Check for -Werror causing failures when compiling tests
Add support for checking whether test case code can compile without warnings, by recompiling each successful test with -Werror. If the -Werror version doesn't pass, we bail out. This gives us the same level of visibility of warnings in test code as --enable-werror provides for the main compile. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
		
							parent
							
								
									5fda043f9c
								
							
						
					
					
						commit
						8dc38a78d0
					
				
							
								
								
									
										32
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @ -27,16 +27,40 @@ printf " '%s'" "$0" "$@" >> config.log | ||||
| echo >> config.log | ||||
| echo "#" >> config.log | ||||
| 
 | ||||
| do_cc() { | ||||
|     # Run the compiler, capturing its output to the log. | ||||
|     echo $cc "$@" >> config.log | ||||
|     $cc "$@" >> config.log 2>&1 || return $? | ||||
|     # Test passed. If this is an --enable-werror build, rerun | ||||
|     # the test with -Werror and bail out if it fails. This | ||||
|     # makes warning-generating-errors in configure test code | ||||
|     # obvious to developers. | ||||
|     if test "$werror" != "yes"; then | ||||
|         return 0 | ||||
|     fi | ||||
|     # Don't bother rerunning the compile if we were already using -Werror | ||||
|     case "$*" in | ||||
|         *-Werror*) | ||||
|            return 0 | ||||
|         ;; | ||||
|     esac | ||||
|     echo $cc -Werror "$@" >> config.log | ||||
|     $cc -Werror "$@" >> config.log 2>&1 && return $? | ||||
|     echo "ERROR: configure test passed without -Werror but failed with -Werror." | ||||
|     echo "This is probably a bug in the configure script. The failing command" | ||||
|     echo "will be at the bottom of config.log." | ||||
|     echo "You can run configure with --disable-werror to bypass this check." | ||||
|     exit 1 | ||||
| } | ||||
| 
 | ||||
| compile_object() { | ||||
|   echo $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log | ||||
|   $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log 2>&1 | ||||
|   do_cc $QEMU_CFLAGS -c -o $TMPO $TMPC | ||||
| } | ||||
| 
 | ||||
| compile_prog() { | ||||
|   local_cflags="$1" | ||||
|   local_ldflags="$2" | ||||
|   echo $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log | ||||
|   $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log 2>&1 | ||||
|   do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags | ||||
| } | ||||
| 
 | ||||
| # symbolically link $1 to $2.  Portable version of "ln -sf". | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Peter Maydell
						Peter Maydell