configure: use correct cflags in compiler checks
linux-user build on fedora 11 breaks because fallocate is broken on that system if -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 are specified, which is what QEMU uses. We do have a configure check to catch this and disable fallocate, however, it turns out that default QEMU_CFLAGS/LDFLAGS were assigned in script *after* all compiler checks: so during checks we were not running compiler with same flags that we used for build later. Fix this by moving QEMU_CFLAGS to before compiler checks, and using comple_prog when checking for fallocate. This also fixes the fact that we do some compiler checks while assigning the flags, right below a comment that says "no cc tests beyond this point". Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
				
					committed by
					
						 Anthony Liguori
						Anthony Liguori
					
				
			
			
				
	
			
			
			
						parent
						
							1062977b97
						
					
				
				
					commit
					be17dc90b5
				
			
							
								
								
									
										41
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @@ -91,6 +91,26 @@ ar="${cross_prefix}${ar}" | ||||
| objcopy="${cross_prefix}${objcopy}" | ||||
| ld="${cross_prefix}${ld}" | ||||
|  | ||||
| # default flags for all hosts | ||||
| QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS" | ||||
| CFLAGS="-g $CFLAGS" | ||||
| QEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS" | ||||
| QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS" | ||||
| QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS" | ||||
| QEMU_CFLAGS="-U_FORTIFY_SOURCE $QEMU_CFLAGS" | ||||
| QEMU_CFLAGS="-I. -I\$(SRC_PATH) $QEMU_CFLAGS" | ||||
| LDFLAGS="-g $LDFLAGS" | ||||
|  | ||||
| gcc_flags="-Wold-style-declaration -Wold-style-definition" | ||||
| cat > $TMPC << EOF | ||||
| int main(void) { } | ||||
| EOF | ||||
| for flag in $gcc_flags; do | ||||
|     if compile_prog "$QEMU_CFLAGS" "$flag" ; then | ||||
| 	QEMU_CFLAGS="$flag $QEMU_CFLAGS" | ||||
|     fi | ||||
| done | ||||
|  | ||||
| # check that the C compiler works. | ||||
| cat > $TMPC <<EOF | ||||
| int main(void) {} | ||||
| @@ -1596,7 +1616,7 @@ int main(void) | ||||
|     return 0; | ||||
| } | ||||
| EOF | ||||
| if compile_prog "" "" ; then | ||||
| if compile_prog "$ARCH_CFLAGS" "" ; then | ||||
|   fallocate=yes | ||||
| fi | ||||
|  | ||||
| @@ -1744,28 +1764,9 @@ fi | ||||
| # End of CC checks | ||||
| # After here, no more $cc or $ld runs | ||||
|  | ||||
| # default flags for all hosts | ||||
| QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS" | ||||
| CFLAGS="-g $CFLAGS" | ||||
| if test "$debug" = "no" ; then | ||||
|   CFLAGS="-O2 $CFLAGS" | ||||
| fi | ||||
| QEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS" | ||||
| QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS" | ||||
| QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS" | ||||
| QEMU_CFLAGS="-U_FORTIFY_SOURCE $QEMU_CFLAGS" | ||||
| QEMU_CFLAGS="-I. -I\$(SRC_PATH) $QEMU_CFLAGS" | ||||
| LDFLAGS="-g $LDFLAGS" | ||||
|  | ||||
| gcc_flags="-Wold-style-declaration -Wold-style-definition" | ||||
| cat > $TMPC << EOF | ||||
| int main(void) { } | ||||
| EOF | ||||
| for flag in $gcc_flags; do | ||||
|     if compile_prog "$QEMU_CFLAGS" "$flag" ; then | ||||
| 	QEMU_CFLAGS="$flag $QEMU_CFLAGS" | ||||
|     fi | ||||
| done | ||||
|  | ||||
| # Consult white-list to determine whether to enable werror | ||||
| # by default.  Only enable by default for git builds | ||||
|   | ||||
		Reference in New Issue
	
	Block a user