* [Buildroot] [PATCH] util-linux: disable fallocate for avr32
@ 2013-11-03 9:56 spdawson at gmail.com
2013-11-03 10:34 ` Thomas Petazzoni
2013-11-10 23:41 ` Peter Korsgaard
0 siblings, 2 replies; 6+ messages in thread
From: spdawson at gmail.com @ 2013-11-03 9:56 UTC (permalink / raw)
To: buildroot
From: Simon Dawson <spdawson@gmail.com>
The fallocate syscall is not implemented in the avr32 toolchain.
Fixes build failures such as the following.
http://autobuild.buildroot.net/results/bc4/bc41a3fea20181526eb247ac910244aa2aa4c4c0/
Signed-off-by: Simon Dawson <spdawson@gmail.com>
---
package/util-linux/Config.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/package/util-linux/Config.in b/package/util-linux/Config.in
index 41e0986..d56e631 100644
--- a/package/util-linux/Config.in
+++ b/package/util-linux/Config.in
@@ -72,6 +72,7 @@ config BR2_PACKAGE_UTIL_LINUX_EJECT
config BR2_PACKAGE_UTIL_LINUX_FALLOCATE
bool "fallocate"
+ depends on !BR2_avr32 # fallocate not implemented
help
Preallocate space to a file
--
1.8.3.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] util-linux: disable fallocate for avr32
2013-11-03 9:56 [Buildroot] [PATCH] util-linux: disable fallocate for avr32 spdawson at gmail.com
@ 2013-11-03 10:34 ` Thomas Petazzoni
2013-11-03 11:06 ` Yann E. MORIN
2013-11-10 23:41 ` Peter Korsgaard
1 sibling, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2013-11-03 10:34 UTC (permalink / raw)
To: buildroot
Simon,
On Sun, 3 Nov 2013 09:56:25 +0000, spdawson at gmail.com wrote:
> From: Simon Dawson <spdawson@gmail.com>
>
> The fallocate syscall is not implemented in the avr32 toolchain.
>
> Fixes build failures such as the following.
>
> http://autobuild.buildroot.net/results/bc4/bc41a3fea20181526eb247ac910244aa2aa4c4c0/
>
> Signed-off-by: Simon Dawson <spdawson@gmail.com>
> ---
> package/util-linux/Config.in | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/package/util-linux/Config.in b/package/util-linux/Config.in
> index 41e0986..d56e631 100644
> --- a/package/util-linux/Config.in
> +++ b/package/util-linux/Config.in
> @@ -72,6 +72,7 @@ config BR2_PACKAGE_UTIL_LINUX_EJECT
>
> config BR2_PACKAGE_UTIL_LINUX_FALLOCATE
> bool "fallocate"
> + depends on !BR2_avr32 # fallocate not implemented
> help
> Preallocate space to a file
>
Situation is a bit fuzzy here.
We have added a patch to uClibc that implements fallocate support:
package/uclibc/0.9.33.2/uclibc-0041-libc-add-posix_fallocate.patch. So
internal toolchains based on 0.9.33.2 should now have fallocate support.
However:
* The AVR32 toolchain used in the autobuilders predates the addition
of this patch, and therefore does not have the fallocate support
(the autobuilders uses a Buildroot generated toolchain, but
generated with Buildroot 2013.05).
* The AVR32 support at the moment is using 0.9.33.2, but you told us
that 0.9.33.2 is basically not working properly on AVR32, and that
reverting to 0.9.31 was the only solution to get a working AVR32
system. This would indeed mean that fallocate support would not be
available on AVR32 (but it would more be related to the uClibc
version rather than the architecture).
* A larger problem that I have already raised several times is that
adding feature patches to the uClibc package in Buildroot is causing
issues with external toolchain support for uClibc toolchains. These
external toolchains are very unlikely to carry the same backported
feature patches as we do, and therefore the build will break with
those external toolchains if Buildroot relies on uClibc having those
features.
I'm Cc'ing Arnout, Peter, Yann and Thomas DS on this one, because we
really need to define a policy on this topic.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] util-linux: disable fallocate for avr32
2013-11-03 10:34 ` Thomas Petazzoni
@ 2013-11-03 11:06 ` Yann E. MORIN
2013-11-03 11:17 ` Thomas Petazzoni
0 siblings, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2013-11-03 11:06 UTC (permalink / raw)
To: buildroot
Simon, Thomas, All,
On 2013-11-03 11:34 +0100, Thomas Petazzoni spake thusly:
> On Sun, 3 Nov 2013 09:56:25 +0000, spdawson at gmail.com wrote:
> > From: Simon Dawson <spdawson@gmail.com>
> >
> > The fallocate syscall is not implemented in the avr32 toolchain.
> >
> > Fixes build failures such as the following.
> >
> > http://autobuild.buildroot.net/results/bc4/bc41a3fea20181526eb247ac910244aa2aa4c4c0/
> >
> > Signed-off-by: Simon Dawson <spdawson@gmail.com>
> > ---
> > package/util-linux/Config.in | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/package/util-linux/Config.in b/package/util-linux/Config.in
> > index 41e0986..d56e631 100644
> > --- a/package/util-linux/Config.in
> > +++ b/package/util-linux/Config.in
> > @@ -72,6 +72,7 @@ config BR2_PACKAGE_UTIL_LINUX_EJECT
> >
> > config BR2_PACKAGE_UTIL_LINUX_FALLOCATE
> > bool "fallocate"
> > + depends on !BR2_avr32 # fallocate not implemented
> > help
> > Preallocate space to a file
> >
>
> Situation is a bit fuzzy here.
>
> We have added a patch to uClibc that implements fallocate support:
> package/uclibc/0.9.33.2/uclibc-0041-libc-add-posix_fallocate.patch. So
> internal toolchains based on 0.9.33.2 should now have fallocate support.
>
> However:
>
> * The AVR32 toolchain used in the autobuilders predates the addition
> of this patch, and therefore does not have the fallocate support
> (the autobuilders uses a Buildroot generated toolchain, but
> generated with Buildroot 2013.05).
>
> * The AVR32 support at the moment is using 0.9.33.2, but you told us
> that 0.9.33.2 is basically not working properly on AVR32, and that
> reverting to 0.9.31 was the only solution to get a working AVR32
> system. This would indeed mean that fallocate support would not be
> available on AVR32 (but it would more be related to the uClibc
> version rather than the architecture).
>
> * A larger problem that I have already raised several times is that
> adding feature patches to the uClibc package in Buildroot is causing
> issues with external toolchain support for uClibc toolchains. These
> external toolchains are very unlikely to carry the same backported
> feature patches as we do, and therefore the build will break with
> those external toolchains if Buildroot relies on uClibc having those
> features.
>
> I'm Cc'ing Arnout, Peter, Yann and Thomas DS on this one, because we
> really need to define a policy on this topic.
Our stance has always been 'no feature-patch in Buildroot'.
OTOH, I can understand that fallocate is really required (being in
POSIX).
But since uClibc is highly configurable, it could happen that an
external toolchain would have fallocate disabled (being in Advanced
RT in POSIX).
So, I'm a bit fuzzy as to what we should do here.
The best approach would be to push all of our changes upstream uClibc,
and hope for a release soon, so we can bump. But it looks like upstream
is not really alive those days.
Another approach would be to add yet one more toolchain knob that tells
whether the toolchain has fallocate (defaults to 'y' for (e)glibc and
internal, prompts for external uClibc).
My preference would be to remove feature-patches, but that is really
gonna hurt newcomers (and may bite long-timers as well).
In the end, I'm not much of any help on that one, sorry... :-(
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] util-linux: disable fallocate for avr32
2013-11-03 11:06 ` Yann E. MORIN
@ 2013-11-03 11:17 ` Thomas Petazzoni
2013-11-04 6:40 ` Arnout Vandecappelle
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2013-11-03 11:17 UTC (permalink / raw)
To: buildroot
Dear Yann E. MORIN,
On Sun, 3 Nov 2013 12:06:13 +0100, Yann E. MORIN wrote:
> > I'm Cc'ing Arnout, Peter, Yann and Thomas DS on this one, because we
> > really need to define a policy on this topic.
>
> Our stance has always been 'no feature-patch in Buildroot'.
> OTOH, I can understand that fallocate is really required (being in
> POSIX).
>
> But since uClibc is highly configurable, it could happen that an
> external toolchain would have fallocate disabled (being in Advanced
> RT in POSIX).
True, but our position on the matter has more or less always been: the
external uClibc toolchain should have a uClibc configuration similar to
the one we have in Buildroot. We cannot support any random uClibc
configuration.
But it's hard to require external toolchains to have uClibc features
that are not even part of a uClibc stable release.
> So, I'm a bit fuzzy as to what we should do here.
>
> The best approach would be to push all of our changes upstream uClibc,
> and hope for a release soon, so we can bump. But it looks like upstream
> is not really alive those days.
All the feature patches we have for uClibc are already upstream: they
are precisely backported from upstream... waiting for an upstream
release to occur.
> Another approach would be to add yet one more toolchain knob that tells
> whether the toolchain has fallocate (defaults to 'y' for (e)glibc and
> internal, prompts for external uClibc).
True, but that doesn't scale really nicely to the crazy number of
features. For example, systemd needs execvpe(), which is not in uClibc
0.9.33, but is available in our uClibc thanks to a backported patch.
Should we also add another config know for execvpe() ?
> My preference would be to remove feature-patches, but that is really
> gonna hurt newcomers (and may bite long-timers as well).
I believe the only reasonable solutions are (alternatively, and the
choice can be made differently per-package) :
(1) Add patches to the package to avoid usage of unimplemented uClibc
features (when possible)
(2) Mark the packages as depends on !UCLIBC
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] util-linux: disable fallocate for avr32
2013-11-03 11:17 ` Thomas Petazzoni
@ 2013-11-04 6:40 ` Arnout Vandecappelle
0 siblings, 0 replies; 6+ messages in thread
From: Arnout Vandecappelle @ 2013-11-04 6:40 UTC (permalink / raw)
To: buildroot
On 03/11/13 12:17, Thomas Petazzoni wrote:
> Dear Yann E. MORIN,
>
> On Sun, 3 Nov 2013 12:06:13 +0100, Yann E. MORIN wrote:
>
[snip]
>> My preference would be to remove feature-patches, but that is really
>> gonna hurt newcomers (and may bite long-timers as well).
>
> I believe the only reasonable solutions are (alternatively, and the
> choice can be made differently per-package) :
>
> (1) Add patches to the package to avoid usage of unimplemented uClibc
> features (when possible)
>
> (2) Mark the packages as depends on !UCLIBC
If I may throw in yet another alternative: depend on a version of
uClibc. We can call our patched uClibc version 0.9.34. At least, this
still applies when there's a finally a uClibc release: we would then need
a mechanism to mark a package to depend on the new uClibc.
On second thought, this is probably still difficult to maintain and
equally difficult for user to use a buildroot-generated toolchain as an
external toolchain.
Regards,
Arnout
>
> Best regards,
>
> Thomas
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] util-linux: disable fallocate for avr32
2013-11-03 9:56 [Buildroot] [PATCH] util-linux: disable fallocate for avr32 spdawson at gmail.com
2013-11-03 10:34 ` Thomas Petazzoni
@ 2013-11-10 23:41 ` Peter Korsgaard
1 sibling, 0 replies; 6+ messages in thread
From: Peter Korsgaard @ 2013-11-10 23:41 UTC (permalink / raw)
To: buildroot
>>>>> "spdawson" == spdawson <spdawson@gmail.com> writes:
> From: Simon Dawson <spdawson@gmail.com>
> The fallocate syscall is not implemented in the avr32 toolchain.
> Fixes build failures such as the following.
> http://autobuild.buildroot.net/results/bc4/bc41a3fea20181526eb247ac910244aa2aa4c4c0/
Committed, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-11-10 23:41 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-03 9:56 [Buildroot] [PATCH] util-linux: disable fallocate for avr32 spdawson at gmail.com
2013-11-03 10:34 ` Thomas Petazzoni
2013-11-03 11:06 ` Yann E. MORIN
2013-11-03 11:17 ` Thomas Petazzoni
2013-11-04 6:40 ` Arnout Vandecappelle
2013-11-10 23:41 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox