diff mbox

[fix,for,2.1,v2] makefile: Fix tools compile

Message ID 53B2662F.7040300@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini July 1, 2014, 7:41 a.m. UTC
Il 01/07/2014 09:30, Alexey Kardashevskiy ha scritto:
> The existing test whether "-lm" needs to be included or not is
> insufficient as it reports false negative on Fedora20/ppc64.
> This happens because sin(0.0) is a constant value which compiler
> can safely throw away and therefore there is no need to add "-lm".
> As the result, qemu-nbd/qemu-io/qemu-img tools cannot compile.
>
> This adds a global variable and uses it in the test to prevent
> from optimization.
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>
> ---
> Changes:
> v2:
> * previous s/sin/log/ replacement removed, a global variable is
> used instead
> ---
>  configure | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 23ecb37..6dd44a9 100755
> --- a/configure
> +++ b/configure
> @@ -3453,7 +3453,7 @@ fi
>  # Do we need libm
>  cat > $TMPC << EOF
>  #include <math.h>
> -int main(void) { return isnan(sin(0.0)); }
> +double x; int main(void) {return isnan(sin(x));}
>  EOF
>  if compile_prog "" "" ; then
>    :
>

Can you please test with this hunk on top:


It should now be unnecessary.

Paolo

Comments

Alexey Kardashevskiy July 1, 2014, 7:47 a.m. UTC | #1
On 07/01/2014 05:41 PM, Paolo Bonzini wrote:
> Il 01/07/2014 09:30, Alexey Kardashevskiy ha scritto:
>> The existing test whether "-lm" needs to be included or not is
>> insufficient as it reports false negative on Fedora20/ppc64.
>> This happens because sin(0.0) is a constant value which compiler
>> can safely throw away and therefore there is no need to add "-lm".
>> As the result, qemu-nbd/qemu-io/qemu-img tools cannot compile.
>>
>> This adds a global variable and uses it in the test to prevent
>> from optimization.
>>
>> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>>
>> ---
>> Changes:
>> v2:
>> * previous s/sin/log/ replacement removed, a global variable is
>> used instead
>> ---
>>  configure | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/configure b/configure
>> index 23ecb37..6dd44a9 100755
>> --- a/configure
>> +++ b/configure
>> @@ -3453,7 +3453,7 @@ fi
>>  # Do we need libm
>>  cat > $TMPC << EOF
>>  #include <math.h>
>> -int main(void) { return isnan(sin(0.0)); }
>> +double x; int main(void) {return isnan(sin(x));}
>>  EOF
>>  if compile_prog "" "" ; then
>>    :
>>
> 
> Can you please test with this hunk on top:
> 
> diff --git a/Makefile.target b/Makefile.target
> index 6089d29..137d0b0 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -163,10 +163,6 @@ dummy := $(call unnest-vars,.., \
>  all-obj-y += $(common-obj-y)
>  all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y)
> 
> -ifndef CONFIG_HAIKU
> -LIBS+=-lm
> -endif
> -
>  # build either PROG or PROGW
>  $(QEMU_PROG_BUILD): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
>      $(call LINK,$^)
> 
> It should now be unnecessary.


Tried, all good.
Paolo Bonzini July 1, 2014, 7:54 a.m. UTC | #2
Il 01/07/2014 09:47, Alexey Kardashevskiy ha scritto:
> On 07/01/2014 05:41 PM, Paolo Bonzini wrote:
>> Il 01/07/2014 09:30, Alexey Kardashevskiy ha scritto:
>>> The existing test whether "-lm" needs to be included or not is
>>> insufficient as it reports false negative on Fedora20/ppc64.
>>> This happens because sin(0.0) is a constant value which compiler
>>> can safely throw away and therefore there is no need to add "-lm".
>>> As the result, qemu-nbd/qemu-io/qemu-img tools cannot compile.
>>>
>>> This adds a global variable and uses it in the test to prevent
>>> from optimization.
>>>
>>> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>>>
>>> ---
>>> Changes:
>>> v2:
>>> * previous s/sin/log/ replacement removed, a global variable is
>>> used instead
>>> ---
>>>  configure | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/configure b/configure
>>> index 23ecb37..6dd44a9 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -3453,7 +3453,7 @@ fi
>>>  # Do we need libm
>>>  cat > $TMPC << EOF
>>>  #include <math.h>
>>> -int main(void) { return isnan(sin(0.0)); }
>>> +double x; int main(void) {return isnan(sin(x));}
>>>  EOF
>>>  if compile_prog "" "" ; then
>>>    :
>>>
>>
>> Can you please test with this hunk on top:
>>
>> diff --git a/Makefile.target b/Makefile.target
>> index 6089d29..137d0b0 100644
>> --- a/Makefile.target
>> +++ b/Makefile.target
>> @@ -163,10 +163,6 @@ dummy := $(call unnest-vars,.., \
>>  all-obj-y += $(common-obj-y)
>>  all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y)
>>
>> -ifndef CONFIG_HAIKU
>> -LIBS+=-lm
>> -endif
>> -
>>  # build either PROG or PROGW
>>  $(QEMU_PROG_BUILD): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
>>      $(call LINK,$^)
>>
>> It should now be unnecessary.
>
>
> Tried, all good.

Thanks, applied to scsi-next.

Paolo
diff mbox

Patch

diff --git a/Makefile.target b/Makefile.target
index 6089d29..137d0b0 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -163,10 +163,6 @@  dummy := $(call unnest-vars,.., \
  all-obj-y += $(common-obj-y)
  all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y)

-ifndef CONFIG_HAIKU
-LIBS+=-lm
-endif
-
  # build either PROG or PROGW
  $(QEMU_PROG_BUILD): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
  	$(call LINK,$^)