Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] libmad and AVR32 optimisations
@ 2013-02-20 22:58 Gilles Talis
  2013-02-20 23:14 ` Benoît Thébaudeau
  0 siblings, 1 reply; 12+ messages in thread
From: Gilles Talis @ 2013-02-20 22:58 UTC (permalink / raw)
  To: buildroot

All,

There is small issue in the AVR32 optimization patch [1]. This is root
cause for autobuild failures: e01f5a5484299dce1797966445f3972583c67b22
and 7ed0563fbbfc19c93ec5be35d3b6a95e496b4c5d.
Reason is that some fixed-point math routines are implemented in
architecture-specific files. If "architecture-specific optimizations"
option is disabled from the build configuration, these routines are not
compiled, but libmad is built with references to these functions though.

My question is: is this issue worth fixing? I assume that libmad users will
usually enable all possible architecture-specific optimizations.

Thanks
Gilles.

[1] package/libmad/libmad-0.15.1b-optimization.patch.avr32
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130220/7e8a19c1/attachment.html>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
  2013-02-20 22:58 [Buildroot] libmad and AVR32 optimisations Gilles Talis
@ 2013-02-20 23:14 ` Benoît Thébaudeau
       [not found]   ` <CAKcgs2wW-vj=1NENE0mLmaZjwD6z9MrhzVm4aScnuX1f7COToQ@mail.gmail.com>
  2013-02-21 10:33   ` Peter Korsgaard
  0 siblings, 2 replies; 12+ messages in thread
From: Benoît Thébaudeau @ 2013-02-20 23:14 UTC (permalink / raw)
  To: buildroot

Dear Gilles,

On Wednesday, February 20, 2013 11:58:29 PM, Gilles Talis wrote:
> All,

> There is small issue in the AVR32 optimization patch [1]. This is root cause
> for autobuild failures: e01f5a5484299dce1797966445f3972583c67b22 and
> 7ed0563fbbfc19c93ec5be35d3b6a95e496b4c5d.

> Reason is that some fixed-point math routines are implemented in
> architecture-specific files. If "architecture-specific optimizations" option
> is disabled from the build configuration, these routines are not compiled,
> but libmad is built with references to these functions though.

> My question is: is this issue worth fixing? I assume that libmad users will
> usually enable all possible architecture-specific optimizations.

> Thanks
> Gilles.

> [1] package/libmad/libmad-0.15.1b-optimization.patch.avr32

This patch was clearly made for specific libmad settings. Rather than fixing it,
it would be easier to simply add a "depends on !BR2_avr32" to the config options
that fail on AVR32.

Best regards,
Beno?t

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
       [not found]   ` <CAKcgs2wW-vj=1NENE0mLmaZjwD6z9MrhzVm4aScnuX1f7COToQ@mail.gmail.com>
@ 2013-02-21  0:55     ` Benoît Thébaudeau
  2013-02-21  1:48       ` Gilles Talis
  0 siblings, 1 reply; 12+ messages in thread
From: Benoît Thébaudeau @ 2013-02-21  0:55 UTC (permalink / raw)
  To: buildroot

Dear Gilles,

Please always Cc the mailing list, use plain text (no HTML), and format your
answers using bottom posting:
http://en.wikipedia.org/wiki/Posting_style#Bottom-posting

On Thursday, February 21, 2013 12:41:12 AM, Gilles Talis wrote:
> Dear Benoit,

> Thanks for your answer.
> This was my initial thought: fix the package options. I agree with you that
> it is easier.
> But then I realized that it might be cleaner to fix the patch itself.

> Still my question remains: is it worth it? Who, beside autobuilder, will
> actually use such a configuration (build libmad on AVR32 without
> architecture-specific optimizations).

It is up to BuildRoot maintainers to decide. But I have already used this patch
on AVR32, and the performance is too low without it to be able to do interesting
things in parallel, so I don't think that any AVR32 user would be interested in
libmad without enabling these optmizations, all the more the audio quality with
these optimizations is still excellent.

It's not like on ARM for which some settings produce distorted audio with some
MP3s, so here all the settings make sense.

> Thanks
> Gilles.

> 2013/2/20 Beno?t Th?baudeau < benoit.thebaudeau@advansee.com >

> > Dear Gilles,
> 

> > On Wednesday, February 20, 2013 11:58:29 PM, Gilles Talis wrote:
> 
> > > All,
> 

> > > There is small issue in the AVR32 optimization patch [1]. This is root
> > > cause
> 
> > > for autobuild failures: e01f5a5484299dce1797966445f3972583c67b22 and
> 
> > > 7ed0563fbbfc19c93ec5be35d3b6a95e496b4c5d.
> 

> > > Reason is that some fixed-point math routines are implemented in
> 
> > > architecture-specific files. If "architecture-specific optimizations"
> > > option
> 
> > > is disabled from the build configuration, these routines are not
> > > compiled,
> 
> > > but libmad is built with references to these functions though.
> 

> > > My question is: is this issue worth fixing? I assume that libmad users
> > > will
> 
> > > usually enable all possible architecture-specific optimizations.
> 

> > > Thanks
> 
> > > Gilles.
> 

> > > [1] package/libmad/libmad-0.15.1b-optimization.patch.avr32
> 

> > This patch was clearly made for specific libmad settings. Rather than
> > fixing
> > it,
> 
> > it would be easier to simply add a "depends on !BR2_avr32" to the config
> > options
> 
> > that fail on AVR32.

Best regards,
Beno?t

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
  2013-02-21  0:55     ` Benoît Thébaudeau
@ 2013-02-21  1:48       ` Gilles Talis
  0 siblings, 0 replies; 12+ messages in thread
From: Gilles Talis @ 2013-02-21  1:48 UTC (permalink / raw)
  To: buildroot

Dear Benoit,

2013/2/20 Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
>
> Dear Gilles,
>
> Please always Cc the mailing list, use plain text (no HTML), and format your
> answers using bottom posting:
> http://en.wikipedia.org/wiki/Posting_style#Bottom-posting
>
> On Thursday, February 21, 2013 12:41:12 AM, Gilles Talis wrote:
> > Dear Benoit,
>
> > Thanks for your answer.
> > This was my initial thought: fix the package options. I agree with you that
> > it is easier.
> > But then I realized that it might be cleaner to fix the patch itself.
>
> > Still my question remains: is it worth it? Who, beside autobuilder, will
> > actually use such a configuration (build libmad on AVR32 without
> > architecture-specific optimizations).
>
> It is up to BuildRoot maintainers to decide. But I have already used this patch
> on AVR32, and the performance is too low without it to be able to do interesting
> things in parallel, so I don't think that any AVR32 user would be interested in
> libmad without enabling these optmizations, all the more the audio quality with
> these optimizations is still excellent.
>
> It's not like on ARM for which some settings produce distorted audio with some
> MP3s, so here all the settings make sense.
>
> > Thanks
> > Gilles.
>
> > 2013/2/20 Beno?t Th?baudeau < benoit.thebaudeau@advansee.com >
>
> > > Dear Gilles,
> >
>
> > > On Wednesday, February 20, 2013 11:58:29 PM, Gilles Talis wrote:
> >
> > > > All,
> >
>
> > > > There is small issue in the AVR32 optimization patch [1]. This is root
> > > > cause
> >
> > > > for autobuild failures: e01f5a5484299dce1797966445f3972583c67b22 and
> >
> > > > 7ed0563fbbfc19c93ec5be35d3b6a95e496b4c5d.
> >
>
> > > > Reason is that some fixed-point math routines are implemented in
> >
> > > > architecture-specific files. If "architecture-specific optimizations"
> > > > option
> >
> > > > is disabled from the build configuration, these routines are not
> > > > compiled,
> >
> > > > but libmad is built with references to these functions though.
> >
>
> > > > My question is: is this issue worth fixing? I assume that libmad users
> > > > will
> >
> > > > usually enable all possible architecture-specific optimizations.
> >
>
> > > > Thanks
> >
> > > > Gilles.
> >
>
> > > > [1] package/libmad/libmad-0.15.1b-optimization.patch.avr32
> >
>
> > > This patch was clearly made for specific libmad settings. Rather than
> > > fixing
> > > it,
> >
> > > it would be easier to simply add a "depends on !BR2_avr32" to the config
> > > options
> >
> > > that fail on AVR32.
>
> Best regards,
> Beno?t

All apologies. I didn't realize I had not copied the list in my
message. I should be more careful next time.
And also thanks for the formatting tips.

Thanks for your answer on libmad and AVR32. It confirms my thoughts.

Regards,
Gilles.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
  2013-02-20 23:14 ` Benoît Thébaudeau
       [not found]   ` <CAKcgs2wW-vj=1NENE0mLmaZjwD6z9MrhzVm4aScnuX1f7COToQ@mail.gmail.com>
@ 2013-02-21 10:33   ` Peter Korsgaard
  2013-02-21 10:52     ` Simon Dawson
  1 sibling, 1 reply; 12+ messages in thread
From: Peter Korsgaard @ 2013-02-21 10:33 UTC (permalink / raw)
  To: buildroot

>>>>> "Beno?t" == Beno?t Th?baudeau <benoit.thebaudeau@advansee.com> writes:


 >> [1] package/libmad/libmad-0.15.1b-optimization.patch.avr32

 Beno?t> This patch was clearly made for specific libmad
 Beno?t> settings. Rather than fixing it, it would be easier to simply
 Beno?t> add a "depends on !BR2_avr32" to the config options that fail
 Beno?t> on AVR32.

Or simply get rid of the huge patch - It's just an optimization, and not
really needed, right?

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
  2013-02-21 10:33   ` Peter Korsgaard
@ 2013-02-21 10:52     ` Simon Dawson
  2013-02-21 10:58       ` Peter Korsgaard
  0 siblings, 1 reply; 12+ messages in thread
From: Simon Dawson @ 2013-02-21 10:52 UTC (permalink / raw)
  To: buildroot

On 21 February 2013 10:33, Peter Korsgaard <jacmet@uclibc.org> wrote:
> Or simply get rid of the huge patch - It's just an optimization, and not
> really needed, right?

The problem is that, for libmad to be usable on avr32, this
optimization patch really *is* needed.

Simon.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
  2013-02-21 10:52     ` Simon Dawson
@ 2013-02-21 10:58       ` Peter Korsgaard
  2013-02-21 12:28         ` Benoît Thébaudeau
  0 siblings, 1 reply; 12+ messages in thread
From: Peter Korsgaard @ 2013-02-21 10:58 UTC (permalink / raw)
  To: buildroot

>>>>> "Simon" == Simon Dawson <spdawson@gmail.com> writes:

 Simon> On 21 February 2013 10:33, Peter Korsgaard <jacmet@uclibc.org> wrote:
 >> Or simply get rid of the huge patch - It's just an optimization, and not
 >> really needed, right?

 Simon> The problem is that, for libmad to be usable on avr32, this
 Simon> optimization patch really *is* needed.

Ok, then lets fix it up instead.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
  2013-02-21 10:58       ` Peter Korsgaard
@ 2013-02-21 12:28         ` Benoît Thébaudeau
  2013-02-21 12:42           ` Peter Korsgaard
  0 siblings, 1 reply; 12+ messages in thread
From: Benoît Thébaudeau @ 2013-02-21 12:28 UTC (permalink / raw)
  To: buildroot

Dear Peter Korsgaard, all,

On Thursday, February 21, 2013 11:58:12 AM, Peter Korsgaard wrote:
> >>>>> "Simon" == Simon Dawson <spdawson@gmail.com> writes:
> 
>  Simon> On 21 February 2013 10:33, Peter Korsgaard <jacmet@uclibc.org> wrote:
>  >> Or simply get rid of the huge patch - It's just an optimization, and not
>  >> really needed, right?
> 
>  Simon> The problem is that, for libmad to be usable on avr32, this
>  Simon> optimization patch really *is* needed.
> 
> Ok, then lets fix it up instead.

To fix it up, you can check if libmad is provided with the ASF:
http://www.atmel.com/tools/AVRSOFTWAREFRAMEWORK.aspx

If so, it may have been cleaned up since the BuildRoot patch, so generate a new
patch from the ASF against mainline libmad, and retest.

Best regards,
Beno?t

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
  2013-02-21 12:28         ` Benoît Thébaudeau
@ 2013-02-21 12:42           ` Peter Korsgaard
  2013-02-21 19:36             ` Simon Dawson
  0 siblings, 1 reply; 12+ messages in thread
From: Peter Korsgaard @ 2013-02-21 12:42 UTC (permalink / raw)
  To: buildroot

>>>>> "Beno?t" == Beno?t Th?baudeau <benoit.thebaudeau@advansee.com> writes:

 Simon> The problem is that, for libmad to be usable on avr32, this
 Simon> optimization patch really *is* needed.
 >> 
 >> Ok, then lets fix it up instead.

 Beno?t> To fix it up, you can check if libmad is provided with the ASF:
 Beno?t> http://www.atmel.com/tools/AVRSOFTWAREFRAMEWORK.aspx

 Beno?t> If so, it may have been cleaned up since the BuildRoot patch,
 Beno?t> so generate a new patch from the ASF against mainline libmad,
 Beno?t> and retest.

Simon, will you look into this?

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
  2013-02-21 12:42           ` Peter Korsgaard
@ 2013-02-21 19:36             ` Simon Dawson
  2013-02-21 20:39               ` Peter Korsgaard
  0 siblings, 1 reply; 12+ messages in thread
From: Simon Dawson @ 2013-02-21 19:36 UTC (permalink / raw)
  To: buildroot

On 21 February 2013 12:42, Peter Korsgaard <jacmet@uclibc.org> wrote:
>>>>>> "Beno?t" == Beno?t Th?baudeau <benoit.thebaudeau@advansee.com> writes:
>
>  Simon> The problem is that, for libmad to be usable on avr32, this
>  Simon> optimization patch really *is* needed.
>  >>
>  >> Ok, then lets fix it up instead.
>
>  Beno?t> To fix it up, you can check if libmad is provided with the ASF:
>  Beno?t> http://www.atmel.com/tools/AVRSOFTWAREFRAMEWORK.aspx
>
>  Beno?t> If so, it may have been cleaned up since the BuildRoot patch,
>  Beno?t> so generate a new patch from the ASF against mainline libmad,
>  Beno?t> and retest.
>
> Simon, will you look into this?

Unfortunately, this approach doesn't work: using a regenerated avr32
patch from ASF, the madplay build still fails in exactly the same
manner if the architecture-specific optimisations are disabled for
libmad.

A simpler approach would be to force the arch-specific optimisations
to be enabled for avr32; would that be an acceptable compromise?

Simon.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
  2013-02-21 19:36             ` Simon Dawson
@ 2013-02-21 20:39               ` Peter Korsgaard
  2013-02-22  1:03                 ` Gilles Talis
  0 siblings, 1 reply; 12+ messages in thread
From: Peter Korsgaard @ 2013-02-21 20:39 UTC (permalink / raw)
  To: buildroot

>>>>> "Simon" == Simon Dawson <spdawson@gmail.com> writes:

 >> Simon, will you look into this?

 Simon> Unfortunately, this approach doesn't work: using a regenerated avr32
 Simon> patch from ASF, the madplay build still fails in exactly the same
 Simon> manner if the architecture-specific optimisations are disabled for
 Simon> libmad.

 Simon> A simpler approach would be to force the arch-specific optimisations
 Simon> to be enabled for avr32; would that be an acceptable compromise?

Yes I think so. Care to send a patch?

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] libmad and AVR32 optimisations
  2013-02-21 20:39               ` Peter Korsgaard
@ 2013-02-22  1:03                 ` Gilles Talis
  0 siblings, 0 replies; 12+ messages in thread
From: Gilles Talis @ 2013-02-22  1:03 UTC (permalink / raw)
  To: buildroot

2013/2/21 Peter Korsgaard <jacmet@uclibc.org>:
>>>>>> "Simon" == Simon Dawson <spdawson@gmail.com> writes:
>
>  >> Simon, will you look into this?
>
>  Simon> Unfortunately, this approach doesn't work: using a regenerated avr32
>  Simon> patch from ASF, the madplay build still fails in exactly the same
>  Simon> manner if the architecture-specific optimisations are disabled for
>  Simon> libmad.
>
>  Simon> A simpler approach would be to force the arch-specific optimisations
>  Simon> to be enabled for avr32; would that be an acceptable compromise?
>
> Yes I think so. Care to send a patch?

Done. Thanks all for your valuable comments.
Gilles.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2013-02-22  1:03 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-20 22:58 [Buildroot] libmad and AVR32 optimisations Gilles Talis
2013-02-20 23:14 ` Benoît Thébaudeau
     [not found]   ` <CAKcgs2wW-vj=1NENE0mLmaZjwD6z9MrhzVm4aScnuX1f7COToQ@mail.gmail.com>
2013-02-21  0:55     ` Benoît Thébaudeau
2013-02-21  1:48       ` Gilles Talis
2013-02-21 10:33   ` Peter Korsgaard
2013-02-21 10:52     ` Simon Dawson
2013-02-21 10:58       ` Peter Korsgaard
2013-02-21 12:28         ` Benoît Thébaudeau
2013-02-21 12:42           ` Peter Korsgaard
2013-02-21 19:36             ` Simon Dawson
2013-02-21 20:39               ` Peter Korsgaard
2013-02-22  1:03                 ` Gilles Talis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox