Patchwork gqview: Fix build failure due to missing -lm

login
register
mail settings
Submitter Valentine Barshak
Date Oct. 6, 2012, 8:35 p.m.
Message ID <1349555736-10008-1-git-send-email-gvaxon@gmail.com>
Download mbox | patch
Permalink /patch/189759/
State Accepted
Headers show

Comments

Valentine Barshak - Oct. 6, 2012, 8:35 p.m.
Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
---
 package/gqview/gqview.mk | 1 +
 1 file changed, 1 insertion(+)
Valentine Barshak - Oct. 24, 2012, 7:22 p.m.
On 10/07/2012 12:35 AM, Valentine Barshak wrote:
> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
> ---
>   package/gqview/gqview.mk | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/package/gqview/gqview.mk b/package/gqview/gqview.mk
> index 2f64cd0..7d09fda 100644
> --- a/package/gqview/gqview.mk
> +++ b/package/gqview/gqview.mk
> @@ -7,6 +7,7 @@ GQVIEW_VERSION = 2.1.5
>   GQVIEW_SOURCE = gqview-$(GQVIEW_VERSION).tar.gz
>   GQVIEW_SITE = http://prdownloads.sourceforge.net/gqview
>   GQVIEW_DEPENDENCIES = host-pkg-config libgtk2
> +GQVIEW_CONF_ENV = LIBS="-lm"
>
>   $(eval $(autotools-package))
>
>

Does this work for everyone else or is it just deprecated and nobody 
should use it?

I can't build without -lm neither in BR nor using my native host tools.

Thanks,
Val.
Will Newton - Oct. 24, 2012, 8:51 p.m.
On Wed, Oct 24, 2012 at 8:22 PM, Valentine Barshak <gvaxon@gmail.com> wrote:
> On 10/07/2012 12:35 AM, Valentine Barshak wrote:
>>
>> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
>> ---
>>   package/gqview/gqview.mk | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/package/gqview/gqview.mk b/package/gqview/gqview.mk
>> index 2f64cd0..7d09fda 100644
>> --- a/package/gqview/gqview.mk
>> +++ b/package/gqview/gqview.mk
>> @@ -7,6 +7,7 @@ GQVIEW_VERSION = 2.1.5
>>   GQVIEW_SOURCE = gqview-$(GQVIEW_VERSION).tar.gz
>>   GQVIEW_SITE = http://prdownloads.sourceforge.net/gqview
>>   GQVIEW_DEPENDENCIES = host-pkg-config libgtk2
>> +GQVIEW_CONF_ENV = LIBS="-lm"
>>
>>   $(eval $(autotools-package))
>>
>>
>
> Does this work for everyone else or is it just deprecated and nobody should
> use it?
>
> I can't build without -lm neither in BR nor using my native host tools.

Which version of binutils are you using? 2.22?
Valentine Barshak - Oct. 24, 2012, 9:35 p.m.
On 10/25/2012 12:51 AM, Will Newton wrote:
> On Wed, Oct 24, 2012 at 8:22 PM, Valentine Barshak <gvaxon@gmail.com> wrote:
>> On 10/07/2012 12:35 AM, Valentine Barshak wrote:
>>>
>>> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
>>> ---
>>>    package/gqview/gqview.mk | 1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/package/gqview/gqview.mk b/package/gqview/gqview.mk
>>> index 2f64cd0..7d09fda 100644
>>> --- a/package/gqview/gqview.mk
>>> +++ b/package/gqview/gqview.mk
>>> @@ -7,6 +7,7 @@ GQVIEW_VERSION = 2.1.5
>>>    GQVIEW_SOURCE = gqview-$(GQVIEW_VERSION).tar.gz
>>>    GQVIEW_SITE = http://prdownloads.sourceforge.net/gqview
>>>    GQVIEW_DEPENDENCIES = host-pkg-config libgtk2
>>> +GQVIEW_CONF_ENV = LIBS="-lm"
>>>
>>>    $(eval $(autotools-package))
>>>
>>>
>>
>> Does this work for everyone else or is it just deprecated and nobody should
>> use it?
>>
>> I can't build without -lm neither in BR nor using my native host tools.
>
> Which version of binutils are you using? 2.22?
>

Yes, 2.22.

Thanks,
Val.
Will Newton - Oct. 25, 2012, 9:02 a.m.
On Wed, Oct 24, 2012 at 10:35 PM, Valentine Barshak <gvaxon@gmail.com> wrote:
> On 10/25/2012 12:51 AM, Will Newton wrote:
>>
>> On Wed, Oct 24, 2012 at 8:22 PM, Valentine Barshak <gvaxon@gmail.com>
>> wrote:
>>>
>>> On 10/07/2012 12:35 AM, Valentine Barshak wrote:
>>>>
>>>>
>>>> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
>>>> ---
>>>>    package/gqview/gqview.mk | 1 +
>>>>    1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/package/gqview/gqview.mk b/package/gqview/gqview.mk
>>>> index 2f64cd0..7d09fda 100644
>>>> --- a/package/gqview/gqview.mk
>>>> +++ b/package/gqview/gqview.mk
>>>> @@ -7,6 +7,7 @@ GQVIEW_VERSION = 2.1.5
>>>>    GQVIEW_SOURCE = gqview-$(GQVIEW_VERSION).tar.gz
>>>>    GQVIEW_SITE = http://prdownloads.sourceforge.net/gqview
>>>>    GQVIEW_DEPENDENCIES = host-pkg-config libgtk2
>>>> +GQVIEW_CONF_ENV = LIBS="-lm"
>>>>
>>>>    $(eval $(autotools-package))
>>>>
>>>>
>>>
>>> Does this work for everyone else or is it just deprecated and nobody
>>> should
>>> use it?
>>>
>>> I can't build without -lm neither in BR nor using my native host tools.
>>
>>
>> Which version of binutils are you using? 2.22?
>>
>
> Yes, 2.22.

I believe this is caused by an issue with linking indirectly with the
newer binutils. gqview relies on a library that is linked against libm
but does not explicitly link against libm itself. Before 2.22 binutils
would copy the DT_NEEDED entries from the library into gqview but it
does not do this any more.

A number of packages are affected by this. I believe the correct fix
is to modify the affected packages to link against the libraries they
use explicitly.
Valentine Barshak - Oct. 25, 2012, 5:25 p.m.
On 10/25/2012 01:02 PM, Will Newton wrote:
> On Wed, Oct 24, 2012 at 10:35 PM, Valentine Barshak <gvaxon@gmail.com> wrote:
>> On 10/25/2012 12:51 AM, Will Newton wrote:
>>>
>>> On Wed, Oct 24, 2012 at 8:22 PM, Valentine Barshak <gvaxon@gmail.com>
>>> wrote:
>>>>
>>>> On 10/07/2012 12:35 AM, Valentine Barshak wrote:
>>>>>
>>>>>
>>>>> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
>>>>> ---
>>>>>     package/gqview/gqview.mk | 1 +
>>>>>     1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git a/package/gqview/gqview.mk b/package/gqview/gqview.mk
>>>>> index 2f64cd0..7d09fda 100644
>>>>> --- a/package/gqview/gqview.mk
>>>>> +++ b/package/gqview/gqview.mk
>>>>> @@ -7,6 +7,7 @@ GQVIEW_VERSION = 2.1.5
>>>>>     GQVIEW_SOURCE = gqview-$(GQVIEW_VERSION).tar.gz
>>>>>     GQVIEW_SITE = http://prdownloads.sourceforge.net/gqview
>>>>>     GQVIEW_DEPENDENCIES = host-pkg-config libgtk2
>>>>> +GQVIEW_CONF_ENV = LIBS="-lm"
>>>>>
>>>>>     $(eval $(autotools-package))
>>>>>
>>>>>
>>>>
>>>> Does this work for everyone else or is it just deprecated and nobody
>>>> should
>>>> use it?
>>>>
>>>> I can't build without -lm neither in BR nor using my native host tools.
>>>
>>>
>>> Which version of binutils are you using? 2.22?
>>>
>>
>> Yes, 2.22.
>
> I believe this is caused by an issue with linking indirectly with the
> newer binutils. gqview relies on a library that is linked against libm
> but does not explicitly link against libm itself. Before 2.22 binutils
> would copy the DT_NEEDED entries from the library into gqview but it
> does not do this any more.

gqview calls pow() and sqrt() directly, though it doesn't link against libm.

>
> A number of packages are affected by this. I believe the correct fix
> is to modify the affected packages to link against the libraries they
> use explicitly.
>

Is the above patch OK?

Or do you mean configure/makefile(.in) should be patched to add libm 
dependency?

Thanks,
Val.
Will Newton - Oct. 25, 2012, 6:23 p.m.
On Thu, Oct 25, 2012 at 6:25 PM, Valentine Barshak <gvaxon@gmail.com> wrote:
> On 10/25/2012 01:02 PM, Will Newton wrote:
>>
>> On Wed, Oct 24, 2012 at 10:35 PM, Valentine Barshak <gvaxon@gmail.com>
>> wrote:
>>>
>>> On 10/25/2012 12:51 AM, Will Newton wrote:
>>>>
>>>>
>>>> On Wed, Oct 24, 2012 at 8:22 PM, Valentine Barshak <gvaxon@gmail.com>
>>>> wrote:
>>>>>
>>>>>
>>>>> On 10/07/2012 12:35 AM, Valentine Barshak wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
>>>>>> ---
>>>>>>     package/gqview/gqview.mk | 1 +
>>>>>>     1 file changed, 1 insertion(+)
>>>>>>
>>>>>> diff --git a/package/gqview/gqview.mk b/package/gqview/gqview.mk
>>>>>> index 2f64cd0..7d09fda 100644
>>>>>> --- a/package/gqview/gqview.mk
>>>>>> +++ b/package/gqview/gqview.mk
>>>>>> @@ -7,6 +7,7 @@ GQVIEW_VERSION = 2.1.5
>>>>>>     GQVIEW_SOURCE = gqview-$(GQVIEW_VERSION).tar.gz
>>>>>>     GQVIEW_SITE = http://prdownloads.sourceforge.net/gqview
>>>>>>     GQVIEW_DEPENDENCIES = host-pkg-config libgtk2
>>>>>> +GQVIEW_CONF_ENV = LIBS="-lm"
>>>>>>
>>>>>>     $(eval $(autotools-package))
>>>>>>
>>>>>>
>>>>>
>>>>> Does this work for everyone else or is it just deprecated and nobody
>>>>> should
>>>>> use it?
>>>>>
>>>>> I can't build without -lm neither in BR nor using my native host tools.
>>>>
>>>>
>>>>
>>>> Which version of binutils are you using? 2.22?
>>>>
>>>
>>> Yes, 2.22.
>>
>>
>> I believe this is caused by an issue with linking indirectly with the
>> newer binutils. gqview relies on a library that is linked against libm
>> but does not explicitly link against libm itself. Before 2.22 binutils
>> would copy the DT_NEEDED entries from the library into gqview but it
>> does not do this any more.
>
>
> gqview calls pow() and sqrt() directly, though it doesn't link against libm.
>
>
>>
>> A number of packages are affected by this. I believe the correct fix
>> is to modify the affected packages to link against the libraries they
>> use explicitly.
>>
>
> Is the above patch OK?

I think so, although it could do with a comment to say why it is
needed. Peter or Thomas may disagree though?

> Or do you mean configure/makefile(.in) should be patched to add libm
> dependency?

That is the proper long term fix that should be pushed to gqview upstream.
Valentine Barshak - Oct. 25, 2012, 7:02 p.m.
On 10/25/2012 10:23 PM, Will Newton wrote:
> On Thu, Oct 25, 2012 at 6:25 PM, Valentine Barshak <gvaxon@gmail.com> wrote:
>> On 10/25/2012 01:02 PM, Will Newton wrote:
>>>
>>> On Wed, Oct 24, 2012 at 10:35 PM, Valentine Barshak <gvaxon@gmail.com>
>>> wrote:
>>>>
>>>> On 10/25/2012 12:51 AM, Will Newton wrote:
>>>>>
>>>>>
>>>>> On Wed, Oct 24, 2012 at 8:22 PM, Valentine Barshak <gvaxon@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> On 10/07/2012 12:35 AM, Valentine Barshak wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>
>>>>>>> ---
>>>>>>>      package/gqview/gqview.mk | 1 +
>>>>>>>      1 file changed, 1 insertion(+)
>>>>>>>
>>>>>>> diff --git a/package/gqview/gqview.mk b/package/gqview/gqview.mk
>>>>>>> index 2f64cd0..7d09fda 100644
>>>>>>> --- a/package/gqview/gqview.mk
>>>>>>> +++ b/package/gqview/gqview.mk
>>>>>>> @@ -7,6 +7,7 @@ GQVIEW_VERSION = 2.1.5
>>>>>>>      GQVIEW_SOURCE = gqview-$(GQVIEW_VERSION).tar.gz
>>>>>>>      GQVIEW_SITE = http://prdownloads.sourceforge.net/gqview
>>>>>>>      GQVIEW_DEPENDENCIES = host-pkg-config libgtk2
>>>>>>> +GQVIEW_CONF_ENV = LIBS="-lm"
>>>>>>>
>>>>>>>      $(eval $(autotools-package))
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> Does this work for everyone else or is it just deprecated and nobody
>>>>>> should
>>>>>> use it?
>>>>>>
>>>>>> I can't build without -lm neither in BR nor using my native host tools.
>>>>>
>>>>>
>>>>>
>>>>> Which version of binutils are you using? 2.22?
>>>>>
>>>>
>>>> Yes, 2.22.
>>>
>>>
>>> I believe this is caused by an issue with linking indirectly with the
>>> newer binutils. gqview relies on a library that is linked against libm
>>> but does not explicitly link against libm itself. Before 2.22 binutils
>>> would copy the DT_NEEDED entries from the library into gqview but it
>>> does not do this any more.
>>
>>
>> gqview calls pow() and sqrt() directly, though it doesn't link against libm.
>>
>>
>>>
>>> A number of packages are affected by this. I believe the correct fix
>>> is to modify the affected packages to link against the libraries they
>>> use explicitly.
>>>
>>
>> Is the above patch OK?
>
> I think so, although it could do with a comment to say why it is
> needed. Peter or Thomas may disagree though?

I thought it was kind of obvious.

>
>> Or do you mean configure/makefile(.in) should be patched to add libm
>> dependency?
>
> That is the proper long term fix that should be pushed to gqview upstream.
>

Gqview is no longer supported. There's a Geeqie project that has been 
forked from gqview and is currently active.

I still use gqview since it has all the features I need and is smaller 
than geeqie. I also prefer gqview because it opens a window and shows
a "broken image" icon for unsupported image types, while geeqie doesn't 
create any window (even an error message box), which is a bit confusing.

Thanks,
Val.
Arnout Vandecappelle - Oct. 26, 2012, 7:38 a.m.
On 06/10/12 22:35, Valentine Barshak wrote:
> Signed-off-by: Valentine Barshak<gvaxon@gmail.com>

Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

  Problem can be reproduced on e.g. x86_64 with external toolchain.

  And since upstream is dead, the simple addition of -lm to LIBS is an
adequate solution.

  Regards,
  Arnout

> ---
>   package/gqview/gqview.mk | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/package/gqview/gqview.mk b/package/gqview/gqview.mk
> index 2f64cd0..7d09fda 100644
> --- a/package/gqview/gqview.mk
> +++ b/package/gqview/gqview.mk
> @@ -7,6 +7,7 @@ GQVIEW_VERSION = 2.1.5
>   GQVIEW_SOURCE = gqview-$(GQVIEW_VERSION).tar.gz
>   GQVIEW_SITE = http://prdownloads.sourceforge.net/gqview
>   GQVIEW_DEPENDENCIES = host-pkg-config libgtk2
> +GQVIEW_CONF_ENV = LIBS="-lm"
>
>   $(eval $(autotools-package))
>
Markos Chandras - Oct. 30, 2012, 11:25 a.m.
On Fri, Oct 26, 2012 at 8:38 AM, Arnout Vandecappelle <arnout@mind.be> wrote:
> On 06/10/12 22:35, Valentine Barshak wrote:
>>
>> Signed-off-by: Valentine Barshak<gvaxon@gmail.com>
>
>
> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>
>  Problem can be reproduced on e.g. x86_64 with external toolchain.
>
>  And since upstream is dead, the simple addition of -lm to LIBS is an
> adequate solution.
>
>  Regards,
>  Arnout
>
>

Works for me as well.

Tested-by: Markos Chandras <markos.chandras@imgtec.com>
Peter Korsgaard - Nov. 7, 2012, 7:06 p.m.
>>>>> "Valentine" == Valentine Barshak <gvaxon@gmail.com> writes:

 Valentine> Signed-off-by: Valentine Barshak <gvaxon@gmail.com>

Committed, thanks.

Patch

diff --git a/package/gqview/gqview.mk b/package/gqview/gqview.mk
index 2f64cd0..7d09fda 100644
--- a/package/gqview/gqview.mk
+++ b/package/gqview/gqview.mk
@@ -7,6 +7,7 @@  GQVIEW_VERSION = 2.1.5
 GQVIEW_SOURCE = gqview-$(GQVIEW_VERSION).tar.gz
 GQVIEW_SITE = http://prdownloads.sourceforge.net/gqview
 GQVIEW_DEPENDENCIES = host-pkg-config libgtk2
+GQVIEW_CONF_ENV = LIBS="-lm"
 
 $(eval $(autotools-package))