* MIPS vs MIPS32 tunings -- summary and questions
@ 2012-04-10 17:53 Mark Hatle
2012-04-10 19:28 ` Andreas Oberritter
0 siblings, 1 reply; 25+ messages in thread
From: Mark Hatle @ 2012-04-10 17:53 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
We still do not have a clean answer for how to resolve the concerns in the
recent thread "conf/machine/include: Cleanup MIPS tunings to match README". The
following is in response to a request I received to summarize the discussion so
far, and include the options to resolve the issue for the current OE-Core release.
If you are interested in this, please be sure to read until the end before
commenting.
Background:
About 2 weeks ago, in response to a number of patches sent for PowerPC issues, I
set to the task of documenting and cleaning up the various tune files. It was
discovered that since they were originally implemented, a number of minor
conflicts and defects had crept into the system. The recent patch set added a
number of README files and attempted to resolve any duplication, or confusion
between items.
During this work it was discovered that there were two tunings that produced the
same package architecture:
mips (tune), optimized for mips1 - o32 ABI, produced packages with a "mips" arch
mips32 (tune), optimized for mips32 - o32 ABI, produced packages also with a
"mips" arch.
While "mips1" should work on a "mips32" system, the reverse is not true. There
was no way to distinguish, in a package feed, the difference between the two
sets of binaries.
I updated the MIPS tune files to resolve this issue. The result was:
mips (tune), mips1 - o32 ABI, produced packages with a "mips" arch
mips32 (tune), mips32 - o32 ABI, produced packages with a "mips32" arch
This lead to the thread mentioned above. At first there were concerns that the
GNU target arch had changed (from mips to mips32), this was not the case. The
only change is in the produced package arch names. So the package feeds and
image generation are the only components affected by this change.
After various discussion with folks, such as Khem Raj, it is unlikely that
anyone would be using oe-core with a "mips1" target. There may be some mips3 or
mips4 targets, but we find it highly unlikely based on our current experience.
Khem suggested resolving this my simply making the "mips" include mips32 as the
default optimization.
Image generation was verified to produce the same images before and after this
change for the qemumips target. I am unable to verify the package feeds, as I
do not have a suitable setup for this.
So possible solutions to this particular issue, which we do need on prior to the
upcoming release:
1) Revert the behavior and match that last release. We have two tunes that
produce different binaries w/ the same "mips" package arch.
* This preserves previous behavior, but IMHO continues to implement the defect
mips (tune) - mips1 processor, o32 ABI - mips package arch
mips32 (tune) - mips32 processor, o32 ABI - mips package arch
2) Keep it as it is currently checked in. Provide the ability to build a basic
"mips" and a more optimized "mips32" tuned target and package set.
* This fixes the defect and provides the opportunity for "mips" to be a
basic common package arch, while mips32 (or additional mips3? mips4? mips32r2?)
tunes could be used to augment this for specific systems.
mips (tune) - mips1 processor, o32 ABI - mips package arch
mips32 (tune) - mips32 processor, o32 ABI - mips32 package arch
3) Define only one mips tune, with a target package arch of "mips". Changing
the basic mips tune, and corresponding mips package arch to include mips32
optimizations and instructions.
* This preserves the "mips" tune, but changes the behavior of the tune from
default compiler, to mips32 optimization
* Anyone requiring mips3 or mips4 will need to add a tune, and that tune
will not be compatible with "mips"
mips (tune) - mips32 processor, o32 ABI - mips package arch
3a) Preserve the mips32 tune entries, but define it as being equal to mips
* Preserves the tune entries for compatibility, but is anyone directly
using them?
3b) Remove the mips32 tune entries -- effectively eliminating mips32 as a tune
* Removes the tune entries (cleans up the tunes), no compatibility -- but
it's unlikely anyone was directly specifying "mips32" as their machine's
DEFAULTTUNE.
My recommendation is either 2 or 3. The 3a/b variation is simply an
implementation detail to me, and I will be happy to implement it either way if
this is the chosen direction.
--Mark
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-10 17:53 MIPS vs MIPS32 tunings -- summary and questions Mark Hatle
@ 2012-04-10 19:28 ` Andreas Oberritter
2012-04-16 13:55 ` Andreas Oberritter
0 siblings, 1 reply; 25+ messages in thread
From: Andreas Oberritter @ 2012-04-10 19:28 UTC (permalink / raw)
To: openembedded-core
On 10.04.2012 19:53, Mark Hatle wrote:
> We still do not have a clean answer for how to resolve the concerns in
> the recent thread "conf/machine/include: Cleanup MIPS tunings to match
> README". The following is in response to a request I received to
> summarize the discussion so far, and include the options to resolve the
> issue for the current OE-Core release.
>
> If you are interested in this, please be sure to read until the end
> before commenting.
>
> Background:
>
> About 2 weeks ago, in response to a number of patches sent for PowerPC
> issues, I set to the task of documenting and cleaning up the various
> tune files. It was discovered that since they were originally
> implemented, a number of minor conflicts and defects had crept into the
> system. The recent patch set added a number of README files and
> attempted to resolve any duplication, or confusion between items.
>
> During this work it was discovered that there were two tunings that
> produced the same package architecture:
>
> mips (tune), optimized for mips1 - o32 ABI, produced packages with a
> "mips" arch
>
> mips32 (tune), optimized for mips32 - o32 ABI, produced packages also
> with a "mips" arch.
>
> While "mips1" should work on a "mips32" system, the reverse is not
> true. There was no way to distinguish, in a package feed, the
> difference between the two sets of binaries.
>
> I updated the MIPS tune files to resolve this issue. The result was:
>
> mips (tune), mips1 - o32 ABI, produced packages with a "mips" arch
>
> mips32 (tune), mips32 - o32 ABI, produced packages with a "mips32" arch
>
> This lead to the thread mentioned above. At first there were concerns
> that the GNU target arch had changed (from mips to mips32), this was not
> the case. The only change is in the produced package arch names. So
> the package feeds and image generation are the only components affected
> by this change.
>
> After various discussion with folks, such as Khem Raj, it is unlikely
> that anyone would be using oe-core with a "mips1" target. There may be
> some mips3 or mips4 targets, but we find it highly unlikely based on our
> current experience. Khem suggested resolving this my simply making the
> "mips" include mips32 as the default optimization.
>
> Image generation was verified to produce the same images before and
> after this change for the qemumips target. I am unable to verify the
> package feeds, as I do not have a suitable setup for this.
>
> So possible solutions to this particular issue, which we do need on
> prior to the upcoming release:
>
> 1) Revert the behavior and match that last release. We have two tunes
> that produce different binaries w/ the same "mips" package arch.
> * This preserves previous behavior, but IMHO continues to implement
> the defect
>
> mips (tune) - mips1 processor, o32 ABI - mips package arch
> mips32 (tune) - mips32 processor, o32 ABI - mips package arch
>
> 2) Keep it as it is currently checked in. Provide the ability to build
> a basic "mips" and a more optimized "mips32" tuned target and package set.
> * This fixes the defect and provides the opportunity for "mips" to be
> a basic common package arch, while mips32 (or additional mips3? mips4?
> mips32r2?) tunes could be used to augment this for specific systems.
>
> mips (tune) - mips1 processor, o32 ABI - mips package arch
> mips32 (tune) - mips32 processor, o32 ABI - mips32 package arch
If the tune should reflect the optimization, then mips should be renamed
to mips1 and specified explicitly using -march=mips1, in order to
protect against changing defaults when using a newer compiler. However,
as Phil pointed out, there are many more optimization settings, e.g. -O2
vs. -Os, that aren't encoded into the package arch, so the goal to have
distinct package archs for different binaries won't be reached.
I don't see what a common "mips" package arch would give us. Within OE,
you'd usually compile all your applications for the package arch of your
target system. Adding compatible package archs to the feed just
increases the complexity of online updates.
> 3) Define only one mips tune, with a target package arch of "mips".
> Changing the basic mips tune, and corresponding mips package arch to
> include mips32 optimizations and instructions.
> * This preserves the "mips" tune, but changes the behavior of the
> tune from default compiler, to mips32 optimization
> * Anyone requiring mips3 or mips4 will need to add a tune, and that
> tune will not be compatible with "mips"
Also, mips1 could be added back anytime if anybody starts using it.
> mips (tune) - mips32 processor, o32 ABI - mips package arch
>
> 3a) Preserve the mips32 tune entries, but define it as being equal to
> mips
> * Preserves the tune entries for compatibility, but is anyone
> directly using them?
>
> 3b) Remove the mips32 tune entries -- effectively eliminating mips32
> as a tune
> * Removes the tune entries (cleans up the tunes), no compatibility
> -- but it's unlikely anyone was directly specifying "mips32" as their
> machine's DEFAULTTUNE.
Actually I have (had) machines specifying mips32el and mips32el-nf as
their DEFAULTTUNEs, which your first patch, that got applied upstream,
broke. But I've already switched to use your latest patch using mipsel
and mipsel-nf instead, (which I prefer over the former).
> My recommendation is either 2 or 3. The 3a/b variation is simply an
> implementation detail to me, and I will be happy to implement it either
> way if this is the chosen direction.
I'm fine with either way that restores mips/mipsel for mips32 targets
*before the release*, because the online update feeds broke and all
packages had to be built again from scratch.
Regards,
Andreas
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-10 19:28 ` Andreas Oberritter
@ 2012-04-16 13:55 ` Andreas Oberritter
2012-04-16 14:37 ` Robert Yang
2012-04-16 14:42 ` Richard Purdie
0 siblings, 2 replies; 25+ messages in thread
From: Andreas Oberritter @ 2012-04-16 13:55 UTC (permalink / raw)
To: Richard Purdie; +Cc: openembedded-core
On 10.04.2012 21:28, Andreas Oberritter wrote:
> On 10.04.2012 19:53, Mark Hatle wrote:
>> We still do not have a clean answer for how to resolve the concerns in
>> the recent thread "conf/machine/include: Cleanup MIPS tunings to match
>> README". The following is in response to a request I received to
>> summarize the discussion so far, and include the options to resolve the
>> issue for the current OE-Core release.
>>
>> If you are interested in this, please be sure to read until the end
>> before commenting.
>>
>> Background:
>>
>> About 2 weeks ago, in response to a number of patches sent for PowerPC
>> issues, I set to the task of documenting and cleaning up the various
>> tune files. It was discovered that since they were originally
>> implemented, a number of minor conflicts and defects had crept into the
>> system. The recent patch set added a number of README files and
>> attempted to resolve any duplication, or confusion between items.
>>
>> During this work it was discovered that there were two tunings that
>> produced the same package architecture:
>>
>> mips (tune), optimized for mips1 - o32 ABI, produced packages with a
>> "mips" arch
>>
>> mips32 (tune), optimized for mips32 - o32 ABI, produced packages also
>> with a "mips" arch.
>>
>> While "mips1" should work on a "mips32" system, the reverse is not
>> true. There was no way to distinguish, in a package feed, the
>> difference between the two sets of binaries.
>>
>> I updated the MIPS tune files to resolve this issue. The result was:
>>
>> mips (tune), mips1 - o32 ABI, produced packages with a "mips" arch
>>
>> mips32 (tune), mips32 - o32 ABI, produced packages with a "mips32" arch
>>
>> This lead to the thread mentioned above. At first there were concerns
>> that the GNU target arch had changed (from mips to mips32), this was not
>> the case. The only change is in the produced package arch names. So
>> the package feeds and image generation are the only components affected
>> by this change.
>>
>> After various discussion with folks, such as Khem Raj, it is unlikely
>> that anyone would be using oe-core with a "mips1" target. There may be
>> some mips3 or mips4 targets, but we find it highly unlikely based on our
>> current experience. Khem suggested resolving this my simply making the
>> "mips" include mips32 as the default optimization.
>>
>> Image generation was verified to produce the same images before and
>> after this change for the qemumips target. I am unable to verify the
>> package feeds, as I do not have a suitable setup for this.
>>
>> So possible solutions to this particular issue, which we do need on
>> prior to the upcoming release:
>>
>> 1) Revert the behavior and match that last release. We have two tunes
>> that produce different binaries w/ the same "mips" package arch.
>> * This preserves previous behavior, but IMHO continues to implement
>> the defect
>>
>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>> mips32 (tune) - mips32 processor, o32 ABI - mips package arch
>>
>> 2) Keep it as it is currently checked in. Provide the ability to build
>> a basic "mips" and a more optimized "mips32" tuned target and package set.
>> * This fixes the defect and provides the opportunity for "mips" to be
>> a basic common package arch, while mips32 (or additional mips3? mips4?
>> mips32r2?) tunes could be used to augment this for specific systems.
>>
>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>> mips32 (tune) - mips32 processor, o32 ABI - mips32 package arch
>
> If the tune should reflect the optimization, then mips should be renamed
> to mips1 and specified explicitly using -march=mips1, in order to
> protect against changing defaults when using a newer compiler. However,
> as Phil pointed out, there are many more optimization settings, e.g. -O2
> vs. -Os, that aren't encoded into the package arch, so the goal to have
> distinct package archs for different binaries won't be reached.
>
> I don't see what a common "mips" package arch would give us. Within OE,
> you'd usually compile all your applications for the package arch of your
> target system. Adding compatible package archs to the feed just
> increases the complexity of online updates.
>
>> 3) Define only one mips tune, with a target package arch of "mips".
>> Changing the basic mips tune, and corresponding mips package arch to
>> include mips32 optimizations and instructions.
>> * This preserves the "mips" tune, but changes the behavior of the
>> tune from default compiler, to mips32 optimization
>> * Anyone requiring mips3 or mips4 will need to add a tune, and that
>> tune will not be compatible with "mips"
>
> Also, mips1 could be added back anytime if anybody starts using it.
>
>> mips (tune) - mips32 processor, o32 ABI - mips package arch
>>
>> 3a) Preserve the mips32 tune entries, but define it as being equal to
>> mips
>> * Preserves the tune entries for compatibility, but is anyone
>> directly using them?
>>
>> 3b) Remove the mips32 tune entries -- effectively eliminating mips32
>> as a tune
>> * Removes the tune entries (cleans up the tunes), no compatibility
>> -- but it's unlikely anyone was directly specifying "mips32" as their
>> machine's DEFAULTTUNE.
>
> Actually I have (had) machines specifying mips32el and mips32el-nf as
> their DEFAULTTUNEs, which your first patch, that got applied upstream,
> broke. But I've already switched to use your latest patch using mipsel
> and mipsel-nf instead, (which I prefer over the former).
>
>> My recommendation is either 2 or 3. The 3a/b variation is simply an
>> implementation detail to me, and I will be happy to implement it either
>> way if this is the chosen direction.
>
> I'm fine with either way that restores mips/mipsel for mips32 targets
> *before the release*, because the online update feeds broke and all
> packages had to be built again from scratch.
Richard, can you please state your opinion about this issue?
The mips package feed (e.g. qemumips) is now broken since weeks. Can I
expect this to be corrected before the release, or should anybody
relying on mipsel package feeds stop using oe-core's
meta/conf/machine/include/mips/arch-mips.inc?
Regards,
Andreas
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-16 13:55 ` Andreas Oberritter
@ 2012-04-16 14:37 ` Robert Yang
2012-04-16 15:23 ` Andreas Oberritter
2012-04-16 15:50 ` Richard Purdie
2012-04-16 14:42 ` Richard Purdie
1 sibling, 2 replies; 25+ messages in thread
From: Robert Yang @ 2012-04-16 14:37 UTC (permalink / raw)
To: openembedded-core
On 04/16/2012 09:55 PM, Andreas Oberritter wrote:
> On 10.04.2012 21:28, Andreas Oberritter wrote:
>> On 10.04.2012 19:53, Mark Hatle wrote:
>>> We still do not have a clean answer for how to resolve the concerns in
>>> the recent thread "conf/machine/include: Cleanup MIPS tunings to match
>>> README". The following is in response to a request I received to
>>> summarize the discussion so far, and include the options to resolve the
>>> issue for the current OE-Core release.
>>>
>>> If you are interested in this, please be sure to read until the end
>>> before commenting.
>>>
>>> Background:
>>>
>>> About 2 weeks ago, in response to a number of patches sent for PowerPC
>>> issues, I set to the task of documenting and cleaning up the various
>>> tune files. It was discovered that since they were originally
>>> implemented, a number of minor conflicts and defects had crept into the
>>> system. The recent patch set added a number of README files and
>>> attempted to resolve any duplication, or confusion between items.
>>>
>>> During this work it was discovered that there were two tunings that
>>> produced the same package architecture:
>>>
>>> mips (tune), optimized for mips1 - o32 ABI, produced packages with a
>>> "mips" arch
>>>
>>> mips32 (tune), optimized for mips32 - o32 ABI, produced packages also
>>> with a "mips" arch.
>>>
>>> While "mips1" should work on a "mips32" system, the reverse is not
>>> true. There was no way to distinguish, in a package feed, the
>>> difference between the two sets of binaries.
>>>
>>> I updated the MIPS tune files to resolve this issue. The result was:
>>>
>>> mips (tune), mips1 - o32 ABI, produced packages with a "mips" arch
>>>
>>> mips32 (tune), mips32 - o32 ABI, produced packages with a "mips32" arch
>>>
>>> This lead to the thread mentioned above. At first there were concerns
>>> that the GNU target arch had changed (from mips to mips32), this was not
>>> the case. The only change is in the produced package arch names. So
>>> the package feeds and image generation are the only components affected
>>> by this change.
>>>
>>> After various discussion with folks, such as Khem Raj, it is unlikely
>>> that anyone would be using oe-core with a "mips1" target. There may be
>>> some mips3 or mips4 targets, but we find it highly unlikely based on our
>>> current experience. Khem suggested resolving this my simply making the
>>> "mips" include mips32 as the default optimization.
>>>
>>> Image generation was verified to produce the same images before and
>>> after this change for the qemumips target. I am unable to verify the
>>> package feeds, as I do not have a suitable setup for this.
>>>
>>> So possible solutions to this particular issue, which we do need on
>>> prior to the upcoming release:
>>>
>>> 1) Revert the behavior and match that last release. We have two tunes
>>> that produce different binaries w/ the same "mips" package arch.
>>> * This preserves previous behavior, but IMHO continues to implement
>>> the defect
>>>
>>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>>> mips32 (tune) - mips32 processor, o32 ABI - mips package arch
>>>
>>> 2) Keep it as it is currently checked in. Provide the ability to build
>>> a basic "mips" and a more optimized "mips32" tuned target and package set.
>>> * This fixes the defect and provides the opportunity for "mips" to be
>>> a basic common package arch, while mips32 (or additional mips3? mips4?
>>> mips32r2?) tunes could be used to augment this for specific systems.
>>>
>>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>>> mips32 (tune) - mips32 processor, o32 ABI - mips32 package arch
>>
>> If the tune should reflect the optimization, then mips should be renamed
>> to mips1 and specified explicitly using -march=mips1, in order to
>> protect against changing defaults when using a newer compiler. However,
>> as Phil pointed out, there are many more optimization settings, e.g. -O2
>> vs. -Os, that aren't encoded into the package arch, so the goal to have
>> distinct package archs for different binaries won't be reached.
>>
>> I don't see what a common "mips" package arch would give us. Within OE,
>> you'd usually compile all your applications for the package arch of your
>> target system. Adding compatible package archs to the feed just
>> increases the complexity of online updates.
>>
>>> 3) Define only one mips tune, with a target package arch of "mips".
>>> Changing the basic mips tune, and corresponding mips package arch to
>>> include mips32 optimizations and instructions.
>>> * This preserves the "mips" tune, but changes the behavior of the
>>> tune from default compiler, to mips32 optimization
>>> * Anyone requiring mips3 or mips4 will need to add a tune, and that
>>> tune will not be compatible with "mips"
>>
>> Also, mips1 could be added back anytime if anybody starts using it.
>>
>>> mips (tune) - mips32 processor, o32 ABI - mips package arch
>>>
>>> 3a) Preserve the mips32 tune entries, but define it as being equal to
>>> mips
>>> * Preserves the tune entries for compatibility, but is anyone
>>> directly using them?
>>>
>>> 3b) Remove the mips32 tune entries -- effectively eliminating mips32
>>> as a tune
>>> * Removes the tune entries (cleans up the tunes), no compatibility
>>> -- but it's unlikely anyone was directly specifying "mips32" as their
>>> machine's DEFAULTTUNE.
>>
>> Actually I have (had) machines specifying mips32el and mips32el-nf as
>> their DEFAULTTUNEs, which your first patch, that got applied upstream,
>> broke. But I've already switched to use your latest patch using mipsel
>> and mipsel-nf instead, (which I prefer over the former).
>>
>>> My recommendation is either 2 or 3. The 3a/b variation is simply an
>>> implementation detail to me, and I will be happy to implement it either
>>> way if this is the chosen direction.
>>
>> I'm fine with either way that restores mips/mipsel for mips32 targets
>> *before the release*, because the online update feeds broke and all
>> packages had to be built again from scratch.
>
> Richard, can you please state your opinion about this issue?
>
> The mips package feed (e.g. qemumips) is now broken since weeks. Can I
I'm a little confused with this, I've just done a build with
MACHINE = "qemumips", both build and runqemu worked well.
// Robert
> expect this to be corrected before the release, or should anybody
> relying on mipsel package feeds stop using oe-core's
> meta/conf/machine/include/mips/arch-mips.inc?
>
> Regards,
> Andreas
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-16 13:55 ` Andreas Oberritter
2012-04-16 14:37 ` Robert Yang
@ 2012-04-16 14:42 ` Richard Purdie
2012-04-16 15:15 ` Andreas Oberritter
1 sibling, 1 reply; 25+ messages in thread
From: Richard Purdie @ 2012-04-16 14:42 UTC (permalink / raw)
To: Andreas Oberritter; +Cc: openembedded-core
On Mon, 2012-04-16 at 15:55 +0200, Andreas Oberritter wrote:
> On 10.04.2012 21:28, Andreas Oberritter wrote:
> > On 10.04.2012 19:53, Mark Hatle wrote:
> >> We still do not have a clean answer for how to resolve the concerns in
> >> the recent thread "conf/machine/include: Cleanup MIPS tunings to match
> >> README". The following is in response to a request I received to
> >> summarize the discussion so far, and include the options to resolve the
> >> issue for the current OE-Core release.
> >>
> >> If you are interested in this, please be sure to read until the end
> >> before commenting.
> >>
> >> Background:
> >>
> >> About 2 weeks ago, in response to a number of patches sent for PowerPC
> >> issues, I set to the task of documenting and cleaning up the various
> >> tune files. It was discovered that since they were originally
> >> implemented, a number of minor conflicts and defects had crept into the
> >> system. The recent patch set added a number of README files and
> >> attempted to resolve any duplication, or confusion between items.
> >>
> >> During this work it was discovered that there were two tunings that
> >> produced the same package architecture:
> >>
> >> mips (tune), optimized for mips1 - o32 ABI, produced packages with a
> >> "mips" arch
> >>
> >> mips32 (tune), optimized for mips32 - o32 ABI, produced packages also
> >> with a "mips" arch.
> >>
> >> While "mips1" should work on a "mips32" system, the reverse is not
> >> true. There was no way to distinguish, in a package feed, the
> >> difference between the two sets of binaries.
> >>
> >> I updated the MIPS tune files to resolve this issue. The result was:
> >>
> >> mips (tune), mips1 - o32 ABI, produced packages with a "mips" arch
> >>
> >> mips32 (tune), mips32 - o32 ABI, produced packages with a "mips32" arch
> >>
> >> This lead to the thread mentioned above. At first there were concerns
> >> that the GNU target arch had changed (from mips to mips32), this was not
> >> the case. The only change is in the produced package arch names. So
> >> the package feeds and image generation are the only components affected
> >> by this change.
> >>
> >> After various discussion with folks, such as Khem Raj, it is unlikely
> >> that anyone would be using oe-core with a "mips1" target. There may be
> >> some mips3 or mips4 targets, but we find it highly unlikely based on our
> >> current experience. Khem suggested resolving this my simply making the
> >> "mips" include mips32 as the default optimization.
> >>
> >> Image generation was verified to produce the same images before and
> >> after this change for the qemumips target. I am unable to verify the
> >> package feeds, as I do not have a suitable setup for this.
> >>
> >> So possible solutions to this particular issue, which we do need on
> >> prior to the upcoming release:
> >>
> >> 1) Revert the behavior and match that last release. We have two tunes
> >> that produce different binaries w/ the same "mips" package arch.
> >> * This preserves previous behavior, but IMHO continues to implement
> >> the defect
> >>
> >> mips (tune) - mips1 processor, o32 ABI - mips package arch
> >> mips32 (tune) - mips32 processor, o32 ABI - mips package arch
> >>
> >> 2) Keep it as it is currently checked in. Provide the ability to build
> >> a basic "mips" and a more optimized "mips32" tuned target and package set.
> >> * This fixes the defect and provides the opportunity for "mips" to be
> >> a basic common package arch, while mips32 (or additional mips3? mips4?
> >> mips32r2?) tunes could be used to augment this for specific systems.
> >>
> >> mips (tune) - mips1 processor, o32 ABI - mips package arch
> >> mips32 (tune) - mips32 processor, o32 ABI - mips32 package arch
> >
> > If the tune should reflect the optimization, then mips should be renamed
> > to mips1 and specified explicitly using -march=mips1, in order to
> > protect against changing defaults when using a newer compiler. However,
> > as Phil pointed out, there are many more optimization settings, e.g. -O2
> > vs. -Os, that aren't encoded into the package arch, so the goal to have
> > distinct package archs for different binaries won't be reached.
> >
> > I don't see what a common "mips" package arch would give us. Within OE,
> > you'd usually compile all your applications for the package arch of your
> > target system. Adding compatible package archs to the feed just
> > increases the complexity of online updates.
> >
> >> 3) Define only one mips tune, with a target package arch of "mips".
> >> Changing the basic mips tune, and corresponding mips package arch to
> >> include mips32 optimizations and instructions.
> >> * This preserves the "mips" tune, but changes the behavior of the
> >> tune from default compiler, to mips32 optimization
> >> * Anyone requiring mips3 or mips4 will need to add a tune, and that
> >> tune will not be compatible with "mips"
> >
> > Also, mips1 could be added back anytime if anybody starts using it.
> >
> >> mips (tune) - mips32 processor, o32 ABI - mips package arch
> >>
> >> 3a) Preserve the mips32 tune entries, but define it as being equal to
> >> mips
> >> * Preserves the tune entries for compatibility, but is anyone
> >> directly using them?
> >>
> >> 3b) Remove the mips32 tune entries -- effectively eliminating mips32
> >> as a tune
> >> * Removes the tune entries (cleans up the tunes), no compatibility
> >> -- but it's unlikely anyone was directly specifying "mips32" as their
> >> machine's DEFAULTTUNE.
> >
> > Actually I have (had) machines specifying mips32el and mips32el-nf as
> > their DEFAULTTUNEs, which your first patch, that got applied upstream,
> > broke. But I've already switched to use your latest patch using mipsel
> > and mipsel-nf instead, (which I prefer over the former).
> >
> >> My recommendation is either 2 or 3. The 3a/b variation is simply an
> >> implementation detail to me, and I will be happy to implement it either
> >> way if this is the chosen direction.
> >
> > I'm fine with either way that restores mips/mipsel for mips32 targets
> > *before the release*, because the online update feeds broke and all
> > packages had to be built again from scratch.
>
> Richard, can you please state your opinion about this issue?
>
> The mips package feed (e.g. qemumips) is now broken since weeks. Can I
> expect this to be corrected before the release, or should anybody
> relying on mipsel package feeds stop using oe-core's
> meta/conf/machine/include/mips/arch-mips.inc?
Sorry, I got distracted by a ton of other issues. I think the cleanup
did make sense and things are more correct now, its just a shame about
the package feed naming issue.
There comes a point we need to try and clean up some of these things so
my proposal would be that people who don't want to use the new naming
set the following in their distro config:
MIPSPKGSFX_VARIANT_tune-mips32el = "mipsel"
and then should still be able to use the arch-mips.inc from OE-Core.
Does that work for people?
Cheers,
Richard
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-16 14:42 ` Richard Purdie
@ 2012-04-16 15:15 ` Andreas Oberritter
2012-04-16 15:30 ` Mark Hatle
0 siblings, 1 reply; 25+ messages in thread
From: Andreas Oberritter @ 2012-04-16 15:15 UTC (permalink / raw)
To: Richard Purdie; +Cc: openembedded-core
On 16.04.2012 16:42, Richard Purdie wrote:
> On Mon, 2012-04-16 at 15:55 +0200, Andreas Oberritter wrote:
>> On 10.04.2012 21:28, Andreas Oberritter wrote:
>>> On 10.04.2012 19:53, Mark Hatle wrote:
>>>> We still do not have a clean answer for how to resolve the concerns in
>>>> the recent thread "conf/machine/include: Cleanup MIPS tunings to match
>>>> README". The following is in response to a request I received to
>>>> summarize the discussion so far, and include the options to resolve the
>>>> issue for the current OE-Core release.
>>>>
>>>> If you are interested in this, please be sure to read until the end
>>>> before commenting.
>>>>
>>>> Background:
>>>>
>>>> About 2 weeks ago, in response to a number of patches sent for PowerPC
>>>> issues, I set to the task of documenting and cleaning up the various
>>>> tune files. It was discovered that since they were originally
>>>> implemented, a number of minor conflicts and defects had crept into the
>>>> system. The recent patch set added a number of README files and
>>>> attempted to resolve any duplication, or confusion between items.
>>>>
>>>> During this work it was discovered that there were two tunings that
>>>> produced the same package architecture:
>>>>
>>>> mips (tune), optimized for mips1 - o32 ABI, produced packages with a
>>>> "mips" arch
>>>>
>>>> mips32 (tune), optimized for mips32 - o32 ABI, produced packages also
>>>> with a "mips" arch.
>>>>
>>>> While "mips1" should work on a "mips32" system, the reverse is not
>>>> true. There was no way to distinguish, in a package feed, the
>>>> difference between the two sets of binaries.
>>>>
>>>> I updated the MIPS tune files to resolve this issue. The result was:
>>>>
>>>> mips (tune), mips1 - o32 ABI, produced packages with a "mips" arch
>>>>
>>>> mips32 (tune), mips32 - o32 ABI, produced packages with a "mips32" arch
>>>>
>>>> This lead to the thread mentioned above. At first there were concerns
>>>> that the GNU target arch had changed (from mips to mips32), this was not
>>>> the case. The only change is in the produced package arch names. So
>>>> the package feeds and image generation are the only components affected
>>>> by this change.
>>>>
>>>> After various discussion with folks, such as Khem Raj, it is unlikely
>>>> that anyone would be using oe-core with a "mips1" target. There may be
>>>> some mips3 or mips4 targets, but we find it highly unlikely based on our
>>>> current experience. Khem suggested resolving this my simply making the
>>>> "mips" include mips32 as the default optimization.
>>>>
>>>> Image generation was verified to produce the same images before and
>>>> after this change for the qemumips target. I am unable to verify the
>>>> package feeds, as I do not have a suitable setup for this.
>>>>
>>>> So possible solutions to this particular issue, which we do need on
>>>> prior to the upcoming release:
>>>>
>>>> 1) Revert the behavior and match that last release. We have two tunes
>>>> that produce different binaries w/ the same "mips" package arch.
>>>> * This preserves previous behavior, but IMHO continues to implement
>>>> the defect
>>>>
>>>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>>>> mips32 (tune) - mips32 processor, o32 ABI - mips package arch
>>>>
>>>> 2) Keep it as it is currently checked in. Provide the ability to build
>>>> a basic "mips" and a more optimized "mips32" tuned target and package set.
>>>> * This fixes the defect and provides the opportunity for "mips" to be
>>>> a basic common package arch, while mips32 (or additional mips3? mips4?
>>>> mips32r2?) tunes could be used to augment this for specific systems.
>>>>
>>>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>>>> mips32 (tune) - mips32 processor, o32 ABI - mips32 package arch
>>>
>>> If the tune should reflect the optimization, then mips should be renamed
>>> to mips1 and specified explicitly using -march=mips1, in order to
>>> protect against changing defaults when using a newer compiler. However,
>>> as Phil pointed out, there are many more optimization settings, e.g. -O2
>>> vs. -Os, that aren't encoded into the package arch, so the goal to have
>>> distinct package archs for different binaries won't be reached.
>>>
>>> I don't see what a common "mips" package arch would give us. Within OE,
>>> you'd usually compile all your applications for the package arch of your
>>> target system. Adding compatible package archs to the feed just
>>> increases the complexity of online updates.
>>>
>>>> 3) Define only one mips tune, with a target package arch of "mips".
>>>> Changing the basic mips tune, and corresponding mips package arch to
>>>> include mips32 optimizations and instructions.
>>>> * This preserves the "mips" tune, but changes the behavior of the
>>>> tune from default compiler, to mips32 optimization
>>>> * Anyone requiring mips3 or mips4 will need to add a tune, and that
>>>> tune will not be compatible with "mips"
>>>
>>> Also, mips1 could be added back anytime if anybody starts using it.
>>>
>>>> mips (tune) - mips32 processor, o32 ABI - mips package arch
>>>>
>>>> 3a) Preserve the mips32 tune entries, but define it as being equal to
>>>> mips
>>>> * Preserves the tune entries for compatibility, but is anyone
>>>> directly using them?
>>>>
>>>> 3b) Remove the mips32 tune entries -- effectively eliminating mips32
>>>> as a tune
>>>> * Removes the tune entries (cleans up the tunes), no compatibility
>>>> -- but it's unlikely anyone was directly specifying "mips32" as their
>>>> machine's DEFAULTTUNE.
>>>
>>> Actually I have (had) machines specifying mips32el and mips32el-nf as
>>> their DEFAULTTUNEs, which your first patch, that got applied upstream,
>>> broke. But I've already switched to use your latest patch using mipsel
>>> and mipsel-nf instead, (which I prefer over the former).
>>>
>>>> My recommendation is either 2 or 3. The 3a/b variation is simply an
>>>> implementation detail to me, and I will be happy to implement it either
>>>> way if this is the chosen direction.
>>>
>>> I'm fine with either way that restores mips/mipsel for mips32 targets
>>> *before the release*, because the online update feeds broke and all
>>> packages had to be built again from scratch.
>>
>> Richard, can you please state your opinion about this issue?
>>
>> The mips package feed (e.g. qemumips) is now broken since weeks. Can I
>> expect this to be corrected before the release, or should anybody
>> relying on mipsel package feeds stop using oe-core's
>> meta/conf/machine/include/mips/arch-mips.inc?
>
> Sorry, I got distracted by a ton of other issues. I think the cleanup
> did make sense and things are more correct now, its just a shame about
> the package feed naming issue.
>
> There comes a point we need to try and clean up some of these things so
> my proposal would be that people who don't want to use the new naming
> set the following in their distro config:
>
> MIPSPKGSFX_VARIANT_tune-mips32el = "mipsel"
>
> and then should still be able to use the arch-mips.inc from OE-Core.
> Does that work for people?
I wonder why this point has to be during the stabilisation phase before
the release, considering much less intrusive changes are not getting
applied.
Setting this variable is a partial workaround. PACKAGE_EXTRA_ARCHS also
broke for tune-mips32.inc, so this has to be set, too. The easiest thing
for everybody would however be to revert "Cleanup MIPS tunings to match
README" and to drop tune-mips, which was unused.
Maybe I would have understood why the patch "Cleanup MIPS tunings to
match README" was applied, if the README hadn't been created just the
same day. Usually the README should describe how something works and not
serve as an artificial reason to break things.
If the overall conclusion is that optimisation settings should be
encoded in the package architecture, I still wonder why -Os and -O2
aren't encoded or why tune-mips still creates 'mips' and not 'mips1'
packages.
So, inconsistent but deployed code has been replaced by inconsistent but
new code. And there's no time left to improve the new inconsistent code
so short before the release, I guess.
Sorry for the rant.
Regards,
Andreas
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-16 14:37 ` Robert Yang
@ 2012-04-16 15:23 ` Andreas Oberritter
2012-04-16 15:50 ` Richard Purdie
1 sibling, 0 replies; 25+ messages in thread
From: Andreas Oberritter @ 2012-04-16 15:23 UTC (permalink / raw)
To: openembedded-core
On 16.04.2012 16:37, Robert Yang wrote:
>
>
> On 04/16/2012 09:55 PM, Andreas Oberritter wrote:
>> On 10.04.2012 21:28, Andreas Oberritter wrote:
>>> On 10.04.2012 19:53, Mark Hatle wrote:
>>>> We still do not have a clean answer for how to resolve the concerns in
>>>> the recent thread "conf/machine/include: Cleanup MIPS tunings to match
>>>> README". The following is in response to a request I received to
>>>> summarize the discussion so far, and include the options to resolve the
>>>> issue for the current OE-Core release.
>>>>
>>>> If you are interested in this, please be sure to read until the end
>>>> before commenting.
>>>>
>>>> Background:
>>>>
>>>> About 2 weeks ago, in response to a number of patches sent for PowerPC
>>>> issues, I set to the task of documenting and cleaning up the various
>>>> tune files. It was discovered that since they were originally
>>>> implemented, a number of minor conflicts and defects had crept into the
>>>> system. The recent patch set added a number of README files and
>>>> attempted to resolve any duplication, or confusion between items.
>>>>
>>>> During this work it was discovered that there were two tunings that
>>>> produced the same package architecture:
>>>>
>>>> mips (tune), optimized for mips1 - o32 ABI, produced packages with a
>>>> "mips" arch
>>>>
>>>> mips32 (tune), optimized for mips32 - o32 ABI, produced packages also
>>>> with a "mips" arch.
>>>>
>>>> While "mips1" should work on a "mips32" system, the reverse is not
>>>> true. There was no way to distinguish, in a package feed, the
>>>> difference between the two sets of binaries.
>>>>
>>>> I updated the MIPS tune files to resolve this issue. The result was:
>>>>
>>>> mips (tune), mips1 - o32 ABI, produced packages with a "mips" arch
>>>>
>>>> mips32 (tune), mips32 - o32 ABI, produced packages with a "mips32" arch
>>>>
>>>> This lead to the thread mentioned above. At first there were concerns
>>>> that the GNU target arch had changed (from mips to mips32), this was
>>>> not
>>>> the case. The only change is in the produced package arch names. So
>>>> the package feeds and image generation are the only components affected
>>>> by this change.
>>>>
>>>> After various discussion with folks, such as Khem Raj, it is unlikely
>>>> that anyone would be using oe-core with a "mips1" target. There may be
>>>> some mips3 or mips4 targets, but we find it highly unlikely based on
>>>> our
>>>> current experience. Khem suggested resolving this my simply making the
>>>> "mips" include mips32 as the default optimization.
>>>>
>>>> Image generation was verified to produce the same images before and
>>>> after this change for the qemumips target. I am unable to verify the
>>>> package feeds, as I do not have a suitable setup for this.
>>>>
>>>> So possible solutions to this particular issue, which we do need on
>>>> prior to the upcoming release:
>>>>
>>>> 1) Revert the behavior and match that last release. We have two tunes
>>>> that produce different binaries w/ the same "mips" package arch.
>>>> * This preserves previous behavior, but IMHO continues to implement
>>>> the defect
>>>>
>>>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>>>> mips32 (tune) - mips32 processor, o32 ABI - mips package arch
>>>>
>>>> 2) Keep it as it is currently checked in. Provide the ability to build
>>>> a basic "mips" and a more optimized "mips32" tuned target and
>>>> package set.
>>>> * This fixes the defect and provides the opportunity for "mips"
>>>> to be
>>>> a basic common package arch, while mips32 (or additional mips3? mips4?
>>>> mips32r2?) tunes could be used to augment this for specific systems.
>>>>
>>>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>>>> mips32 (tune) - mips32 processor, o32 ABI - mips32 package arch
>>>
>>> If the tune should reflect the optimization, then mips should be renamed
>>> to mips1 and specified explicitly using -march=mips1, in order to
>>> protect against changing defaults when using a newer compiler. However,
>>> as Phil pointed out, there are many more optimization settings, e.g. -O2
>>> vs. -Os, that aren't encoded into the package arch, so the goal to have
>>> distinct package archs for different binaries won't be reached.
>>>
>>> I don't see what a common "mips" package arch would give us. Within OE,
>>> you'd usually compile all your applications for the package arch of your
>>> target system. Adding compatible package archs to the feed just
>>> increases the complexity of online updates.
>>>
>>>> 3) Define only one mips tune, with a target package arch of "mips".
>>>> Changing the basic mips tune, and corresponding mips package arch to
>>>> include mips32 optimizations and instructions.
>>>> * This preserves the "mips" tune, but changes the behavior of the
>>>> tune from default compiler, to mips32 optimization
>>>> * Anyone requiring mips3 or mips4 will need to add a tune, and that
>>>> tune will not be compatible with "mips"
>>>
>>> Also, mips1 could be added back anytime if anybody starts using it.
>>>
>>>> mips (tune) - mips32 processor, o32 ABI - mips package arch
>>>>
>>>> 3a) Preserve the mips32 tune entries, but define it as being
>>>> equal to
>>>> mips
>>>> * Preserves the tune entries for compatibility, but is anyone
>>>> directly using them?
>>>>
>>>> 3b) Remove the mips32 tune entries -- effectively eliminating mips32
>>>> as a tune
>>>> * Removes the tune entries (cleans up the tunes), no
>>>> compatibility
>>>> -- but it's unlikely anyone was directly specifying "mips32" as their
>>>> machine's DEFAULTTUNE.
>>>
>>> Actually I have (had) machines specifying mips32el and mips32el-nf as
>>> their DEFAULTTUNEs, which your first patch, that got applied upstream,
>>> broke. But I've already switched to use your latest patch using mipsel
>>> and mipsel-nf instead, (which I prefer over the former).
>>>
>>>> My recommendation is either 2 or 3. The 3a/b variation is simply an
>>>> implementation detail to me, and I will be happy to implement it either
>>>> way if this is the chosen direction.
>>>
>>> I'm fine with either way that restores mips/mipsel for mips32 targets
>>> *before the release*, because the online update feeds broke and all
>>> packages had to be built again from scratch.
>>
>> Richard, can you please state your opinion about this issue?
>>
>> The mips package feed (e.g. qemumips) is now broken since weeks. Can I
>
> I'm a little confused with this, I've just done a build with
> MACHINE = "qemumips", both build and runqemu worked well.
The feed arch changed from mips* to mips32*, so online updates broke.
Regards,
Andreas
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-16 15:15 ` Andreas Oberritter
@ 2012-04-16 15:30 ` Mark Hatle
2012-04-18 11:30 ` Andreas Oberritter
0 siblings, 1 reply; 25+ messages in thread
From: Mark Hatle @ 2012-04-16 15:30 UTC (permalink / raw)
To: openembedded-core
On 4/16/12 10:15 AM, Andreas Oberritter wrote:
> On 16.04.2012 16:42, Richard Purdie wrote:
>> On Mon, 2012-04-16 at 15:55 +0200, Andreas Oberritter wrote:
>>> On 10.04.2012 21:28, Andreas Oberritter wrote:
>>>> On 10.04.2012 19:53, Mark Hatle wrote:
>>>>> We still do not have a clean answer for how to resolve the concerns in
>>>>> the recent thread "conf/machine/include: Cleanup MIPS tunings to match
>>>>> README". The following is in response to a request I received to
>>>>> summarize the discussion so far, and include the options to resolve the
>>>>> issue for the current OE-Core release.
>>>>>
>>>>> If you are interested in this, please be sure to read until the end
>>>>> before commenting.
>>>>>
>>>>> Background:
>>>>>
>>>>> About 2 weeks ago, in response to a number of patches sent for PowerPC
>>>>> issues, I set to the task of documenting and cleaning up the various
>>>>> tune files. It was discovered that since they were originally
>>>>> implemented, a number of minor conflicts and defects had crept into the
>>>>> system. The recent patch set added a number of README files and
>>>>> attempted to resolve any duplication, or confusion between items.
>>>>>
>>>>> During this work it was discovered that there were two tunings that
>>>>> produced the same package architecture:
>>>>>
>>>>> mips (tune), optimized for mips1 - o32 ABI, produced packages with a
>>>>> "mips" arch
>>>>>
>>>>> mips32 (tune), optimized for mips32 - o32 ABI, produced packages also
>>>>> with a "mips" arch.
>>>>>
>>>>> While "mips1" should work on a "mips32" system, the reverse is not
>>>>> true. There was no way to distinguish, in a package feed, the
>>>>> difference between the two sets of binaries.
>>>>>
>>>>> I updated the MIPS tune files to resolve this issue. The result was:
>>>>>
>>>>> mips (tune), mips1 - o32 ABI, produced packages with a "mips" arch
>>>>>
>>>>> mips32 (tune), mips32 - o32 ABI, produced packages with a "mips32" arch
>>>>>
>>>>> This lead to the thread mentioned above. At first there were concerns
>>>>> that the GNU target arch had changed (from mips to mips32), this was not
>>>>> the case. The only change is in the produced package arch names. So
>>>>> the package feeds and image generation are the only components affected
>>>>> by this change.
>>>>>
>>>>> After various discussion with folks, such as Khem Raj, it is unlikely
>>>>> that anyone would be using oe-core with a "mips1" target. There may be
>>>>> some mips3 or mips4 targets, but we find it highly unlikely based on our
>>>>> current experience. Khem suggested resolving this my simply making the
>>>>> "mips" include mips32 as the default optimization.
>>>>>
>>>>> Image generation was verified to produce the same images before and
>>>>> after this change for the qemumips target. I am unable to verify the
>>>>> package feeds, as I do not have a suitable setup for this.
>>>>>
>>>>> So possible solutions to this particular issue, which we do need on
>>>>> prior to the upcoming release:
>>>>>
>>>>> 1) Revert the behavior and match that last release. We have two tunes
>>>>> that produce different binaries w/ the same "mips" package arch.
>>>>> * This preserves previous behavior, but IMHO continues to implement
>>>>> the defect
>>>>>
>>>>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>>>>> mips32 (tune) - mips32 processor, o32 ABI - mips package arch
>>>>>
>>>>> 2) Keep it as it is currently checked in. Provide the ability to build
>>>>> a basic "mips" and a more optimized "mips32" tuned target and package set.
>>>>> * This fixes the defect and provides the opportunity for "mips" to be
>>>>> a basic common package arch, while mips32 (or additional mips3? mips4?
>>>>> mips32r2?) tunes could be used to augment this for specific systems.
>>>>>
>>>>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>>>>> mips32 (tune) - mips32 processor, o32 ABI - mips32 package arch
>>>>
>>>> If the tune should reflect the optimization, then mips should be renamed
>>>> to mips1 and specified explicitly using -march=mips1, in order to
>>>> protect against changing defaults when using a newer compiler. However,
>>>> as Phil pointed out, there are many more optimization settings, e.g. -O2
>>>> vs. -Os, that aren't encoded into the package arch, so the goal to have
>>>> distinct package archs for different binaries won't be reached.
>>>>
>>>> I don't see what a common "mips" package arch would give us. Within OE,
>>>> you'd usually compile all your applications for the package arch of your
>>>> target system. Adding compatible package archs to the feed just
>>>> increases the complexity of online updates.
>>>>
>>>>> 3) Define only one mips tune, with a target package arch of "mips".
>>>>> Changing the basic mips tune, and corresponding mips package arch to
>>>>> include mips32 optimizations and instructions.
>>>>> * This preserves the "mips" tune, but changes the behavior of the
>>>>> tune from default compiler, to mips32 optimization
>>>>> * Anyone requiring mips3 or mips4 will need to add a tune, and that
>>>>> tune will not be compatible with "mips"
>>>>
>>>> Also, mips1 could be added back anytime if anybody starts using it.
>>>>
>>>>> mips (tune) - mips32 processor, o32 ABI - mips package arch
>>>>>
>>>>> 3a) Preserve the mips32 tune entries, but define it as being equal to
>>>>> mips
>>>>> * Preserves the tune entries for compatibility, but is anyone
>>>>> directly using them?
>>>>>
>>>>> 3b) Remove the mips32 tune entries -- effectively eliminating mips32
>>>>> as a tune
>>>>> * Removes the tune entries (cleans up the tunes), no compatibility
>>>>> -- but it's unlikely anyone was directly specifying "mips32" as their
>>>>> machine's DEFAULTTUNE.
>>>>
>>>> Actually I have (had) machines specifying mips32el and mips32el-nf as
>>>> their DEFAULTTUNEs, which your first patch, that got applied upstream,
>>>> broke. But I've already switched to use your latest patch using mipsel
>>>> and mipsel-nf instead, (which I prefer over the former).
>>>>
>>>>> My recommendation is either 2 or 3. The 3a/b variation is simply an
>>>>> implementation detail to me, and I will be happy to implement it either
>>>>> way if this is the chosen direction.
>>>>
>>>> I'm fine with either way that restores mips/mipsel for mips32 targets
>>>> *before the release*, because the online update feeds broke and all
>>>> packages had to be built again from scratch.
>>>
>>> Richard, can you please state your opinion about this issue?
>>>
>>> The mips package feed (e.g. qemumips) is now broken since weeks. Can I
>>> expect this to be corrected before the release, or should anybody
>>> relying on mipsel package feeds stop using oe-core's
>>> meta/conf/machine/include/mips/arch-mips.inc?
>>
>> Sorry, I got distracted by a ton of other issues. I think the cleanup
>> did make sense and things are more correct now, its just a shame about
>> the package feed naming issue.
>>
>> There comes a point we need to try and clean up some of these things so
>> my proposal would be that people who don't want to use the new naming
>> set the following in their distro config:
>>
>> MIPSPKGSFX_VARIANT_tune-mips32el = "mipsel"
>>
>> and then should still be able to use the arch-mips.inc from OE-Core.
>> Does that work for people?
>
> I wonder why this point has to be during the stabilisation phase before
> the release, considering much less intrusive changes are not getting
> applied.
This was a bug. That is why it was "fixed". I agree there is argument if this
fix is acceptable or not, but it was a fix to a bug. We never should have been
generating two tunings with different run-time characteristics on MIPS, with the
same package arch.
> Setting this variable is a partial workaround. PACKAGE_EXTRA_ARCHS also
> broke for tune-mips32.inc, so this has to be set, too. The easiest thing
> for everybody would however be to revert "Cleanup MIPS tunings to match
> README" and to drop tune-mips, which was unused.
Setting it to mips/mipsel should work as the PACKAGE_EXTRA_ARCHS in mips32
should already have "mips" or "mipsel" in them.
I would expect this would be a reasonable upgrade path as existing systems know
only "mips".. so we rebuild with the custom "mips" setting, adding in the
compatible extra_archs.. (hopefully adjusting the any feed management mechanisms
at the same time).. And then for the "next" release the mips32 goes on line,
and the system already knows it's compatible. [or the manual mips change
suggested stays.]
> Maybe I would have understood why the patch "Cleanup MIPS tunings to
> match README" was applied, if the README hadn't been created just the
> same day. Usually the README should describe how something works and not
> serve as an artificial reason to break things.
The README was created in response to bugs on other architectures, primarily
PPC. People adding tunings (or fixing bugs in tunings) were not understanding
what the various components of the tunes were for. The main README was added to
document the primary tuning settings and how they interact with the system,
while the ARCH specific READMEs were added to add any architecture specific
information. These documents and changes were not intended to change behavior,
but simply document existing and expected behaviors. Any associated changes
were done to sync up the tune files with those README files.
> If the overall conclusion is that optimisation settings should be
> encoded in the package architecture, I still wonder why -Os and -O2
> aren't encoded or why tune-mips still creates 'mips' and not 'mips1'
> packages.
I personally see -Os, -O2, etc are distribution settings and not processor
related optimization settings. In short I see the following situations:
ABI
Instruction Set
Process specific instruction set ordering
Local compiler optimizations
The first two -have- to be captured, I prefer adding the third as well. The
fourth becomes distribution and package centric. It also may affect performance
of a given app, but it will still run and be compatible. (The third one is a
bit tricky, processor instruction ordering can very well work around hardware
bugs as well as provide runtime performance optimizations. I've worked on many
platforms over the years that instruction ordering was the "correct" workaround
to a hardware bug.)
(On the ARM architecture I'm going to push for the same thing, but it's
recognized that currently they expect only the first and second items to be
captured in the package arch.)
> So, inconsistent but deployed code has been replaced by inconsistent but
> new code. And there's no time left to improve the new inconsistent code
> so short before the release, I guess.
Deployed code from 2011-1 does not change. This change is wholly inappropriate
to be applied to former releases. The "next" release will contain this code.
Anything between the last stable release and the next (pending) release was
in-progress development. I understand that semantics changed for MIPS32 at the
last minute, but I would have suggested/made the same change at the beginning on
the release or in 2011-1 if I had known the problem existed.
> Sorry for the rant.
I do understand your frustration. I hope we don't go through this again with
anything.. but the tunings are in a much better position for the future now that
I believe everything is consistent between packages of the same architecture.
--Mark
> Regards,
> Andreas
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-16 14:37 ` Robert Yang
2012-04-16 15:23 ` Andreas Oberritter
@ 2012-04-16 15:50 ` Richard Purdie
1 sibling, 0 replies; 25+ messages in thread
From: Richard Purdie @ 2012-04-16 15:50 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On Mon, 2012-04-16 at 22:37 +0800, Robert Yang wrote:
>
> On 04/16/2012 09:55 PM, Andreas Oberritter wrote:
> > On 10.04.2012 21:28, Andreas Oberritter wrote:
> >> I'm fine with either way that restores mips/mipsel for mips32 targets
> >> *before the release*, because the online update feeds broke and all
> >> packages had to be built again from scratch.
> >
> > Richard, can you please state your opinion about this issue?
> >
> > The mips package feed (e.g. qemumips) is now broken since weeks. Can I
>
> I'm a little confused with this, I've just done a build with
> MACHINE = "qemumips", both build and runqemu worked well.
Builds will work fine however the package architecture for mips32
changes from "mipsel" to "mips32el" which broken things for people with
existing package feeds.
Cheers,
Richard
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-16 15:30 ` Mark Hatle
@ 2012-04-18 11:30 ` Andreas Oberritter
2012-04-18 11:40 ` Richard Purdie
0 siblings, 1 reply; 25+ messages in thread
From: Andreas Oberritter @ 2012-04-18 11:30 UTC (permalink / raw)
To: openembedded-core
On 16.04.2012 17:30, Mark Hatle wrote:
> On 4/16/12 10:15 AM, Andreas Oberritter wrote:
>> On 16.04.2012 16:42, Richard Purdie wrote:
>>> On Mon, 2012-04-16 at 15:55 +0200, Andreas Oberritter wrote:
>>>> On 10.04.2012 21:28, Andreas Oberritter wrote:
>>>>> On 10.04.2012 19:53, Mark Hatle wrote:
>>>>>> We still do not have a clean answer for how to resolve the
>>>>>> concerns in
>>>>>> the recent thread "conf/machine/include: Cleanup MIPS tunings to
>>>>>> match
>>>>>> README". The following is in response to a request I received to
>>>>>> summarize the discussion so far, and include the options to
>>>>>> resolve the
>>>>>> issue for the current OE-Core release.
>>>>>>
>>>>>> If you are interested in this, please be sure to read until the end
>>>>>> before commenting.
>>>>>>
>>>>>> Background:
>>>>>>
>>>>>> About 2 weeks ago, in response to a number of patches sent for
>>>>>> PowerPC
>>>>>> issues, I set to the task of documenting and cleaning up the various
>>>>>> tune files. It was discovered that since they were originally
>>>>>> implemented, a number of minor conflicts and defects had crept
>>>>>> into the
>>>>>> system. The recent patch set added a number of README files and
>>>>>> attempted to resolve any duplication, or confusion between items.
>>>>>>
>>>>>> During this work it was discovered that there were two tunings that
>>>>>> produced the same package architecture:
>>>>>>
>>>>>> mips (tune), optimized for mips1 - o32 ABI, produced packages with a
>>>>>> "mips" arch
>>>>>>
>>>>>> mips32 (tune), optimized for mips32 - o32 ABI, produced packages also
>>>>>> with a "mips" arch.
>>>>>>
>>>>>> While "mips1" should work on a "mips32" system, the reverse is not
>>>>>> true. There was no way to distinguish, in a package feed, the
>>>>>> difference between the two sets of binaries.
>>>>>>
>>>>>> I updated the MIPS tune files to resolve this issue. The result was:
>>>>>>
>>>>>> mips (tune), mips1 - o32 ABI, produced packages with a "mips" arch
>>>>>>
>>>>>> mips32 (tune), mips32 - o32 ABI, produced packages with a "mips32"
>>>>>> arch
>>>>>>
>>>>>> This lead to the thread mentioned above. At first there were
>>>>>> concerns
>>>>>> that the GNU target arch had changed (from mips to mips32), this
>>>>>> was not
>>>>>> the case. The only change is in the produced package arch names. So
>>>>>> the package feeds and image generation are the only components
>>>>>> affected
>>>>>> by this change.
>>>>>>
>>>>>> After various discussion with folks, such as Khem Raj, it is unlikely
>>>>>> that anyone would be using oe-core with a "mips1" target. There
>>>>>> may be
>>>>>> some mips3 or mips4 targets, but we find it highly unlikely based
>>>>>> on our
>>>>>> current experience. Khem suggested resolving this my simply making
>>>>>> the
>>>>>> "mips" include mips32 as the default optimization.
>>>>>>
>>>>>> Image generation was verified to produce the same images before and
>>>>>> after this change for the qemumips target. I am unable to verify the
>>>>>> package feeds, as I do not have a suitable setup for this.
>>>>>>
>>>>>> So possible solutions to this particular issue, which we do need on
>>>>>> prior to the upcoming release:
>>>>>>
>>>>>> 1) Revert the behavior and match that last release. We have two
>>>>>> tunes
>>>>>> that produce different binaries w/ the same "mips" package arch.
>>>>>> * This preserves previous behavior, but IMHO continues to
>>>>>> implement
>>>>>> the defect
>>>>>>
>>>>>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>>>>>> mips32 (tune) - mips32 processor, o32 ABI - mips package arch
>>>>>>
>>>>>> 2) Keep it as it is currently checked in. Provide the ability to
>>>>>> build
>>>>>> a basic "mips" and a more optimized "mips32" tuned target and
>>>>>> package set.
>>>>>> * This fixes the defect and provides the opportunity for
>>>>>> "mips" to be
>>>>>> a basic common package arch, while mips32 (or additional mips3?
>>>>>> mips4?
>>>>>> mips32r2?) tunes could be used to augment this for specific systems.
>>>>>>
>>>>>> mips (tune) - mips1 processor, o32 ABI - mips package arch
>>>>>> mips32 (tune) - mips32 processor, o32 ABI - mips32 package arch
>>>>>
>>>>> If the tune should reflect the optimization, then mips should be
>>>>> renamed
>>>>> to mips1 and specified explicitly using -march=mips1, in order to
>>>>> protect against changing defaults when using a newer compiler.
>>>>> However,
>>>>> as Phil pointed out, there are many more optimization settings,
>>>>> e.g. -O2
>>>>> vs. -Os, that aren't encoded into the package arch, so the goal to
>>>>> have
>>>>> distinct package archs for different binaries won't be reached.
>>>>>
>>>>> I don't see what a common "mips" package arch would give us. Within
>>>>> OE,
>>>>> you'd usually compile all your applications for the package arch of
>>>>> your
>>>>> target system. Adding compatible package archs to the feed just
>>>>> increases the complexity of online updates.
>>>>>
>>>>>> 3) Define only one mips tune, with a target package arch of "mips".
>>>>>> Changing the basic mips tune, and corresponding mips package arch to
>>>>>> include mips32 optimizations and instructions.
>>>>>> * This preserves the "mips" tune, but changes the behavior of the
>>>>>> tune from default compiler, to mips32 optimization
>>>>>> * Anyone requiring mips3 or mips4 will need to add a tune, and
>>>>>> that
>>>>>> tune will not be compatible with "mips"
>>>>>
>>>>> Also, mips1 could be added back anytime if anybody starts using it.
>>>>>
>>>>>> mips (tune) - mips32 processor, o32 ABI - mips package arch
>>>>>>
>>>>>> 3a) Preserve the mips32 tune entries, but define it as being
>>>>>> equal to
>>>>>> mips
>>>>>> * Preserves the tune entries for compatibility, but is anyone
>>>>>> directly using them?
>>>>>>
>>>>>> 3b) Remove the mips32 tune entries -- effectively eliminating
>>>>>> mips32
>>>>>> as a tune
>>>>>> * Removes the tune entries (cleans up the tunes), no
>>>>>> compatibility
>>>>>> -- but it's unlikely anyone was directly specifying "mips32" as their
>>>>>> machine's DEFAULTTUNE.
>>>>>
>>>>> Actually I have (had) machines specifying mips32el and mips32el-nf as
>>>>> their DEFAULTTUNEs, which your first patch, that got applied upstream,
>>>>> broke. But I've already switched to use your latest patch using mipsel
>>>>> and mipsel-nf instead, (which I prefer over the former).
>>>>>
>>>>>> My recommendation is either 2 or 3. The 3a/b variation is simply an
>>>>>> implementation detail to me, and I will be happy to implement it
>>>>>> either
>>>>>> way if this is the chosen direction.
>>>>>
>>>>> I'm fine with either way that restores mips/mipsel for mips32 targets
>>>>> *before the release*, because the online update feeds broke and all
>>>>> packages had to be built again from scratch.
>>>>
>>>> Richard, can you please state your opinion about this issue?
>>>>
>>>> The mips package feed (e.g. qemumips) is now broken since weeks. Can I
>>>> expect this to be corrected before the release, or should anybody
>>>> relying on mipsel package feeds stop using oe-core's
>>>> meta/conf/machine/include/mips/arch-mips.inc?
>>>
>>> Sorry, I got distracted by a ton of other issues. I think the cleanup
>>> did make sense and things are more correct now, its just a shame about
>>> the package feed naming issue.
>>>
>>> There comes a point we need to try and clean up some of these things so
>>> my proposal would be that people who don't want to use the new naming
>>> set the following in their distro config:
>>>
>>> MIPSPKGSFX_VARIANT_tune-mips32el = "mipsel"
>>>
>>> and then should still be able to use the arch-mips.inc from OE-Core.
>>> Does that work for people?
>>
>> I wonder why this point has to be during the stabilisation phase before
>> the release, considering much less intrusive changes are not getting
>> applied.
>
> This was a bug. That is why it was "fixed". I agree there is argument
> if this fix is acceptable or not, but it was a fix to a bug. We never
> should have been generating two tunings with different run-time
> characteristics on MIPS, with the same package arch.
>
>> Setting this variable is a partial workaround. PACKAGE_EXTRA_ARCHS also
>> broke for tune-mips32.inc, so this has to be set, too. The easiest thing
>> for everybody would however be to revert "Cleanup MIPS tunings to match
>> README" and to drop tune-mips, which was unused.
>
> Setting it to mips/mipsel should work as the PACKAGE_EXTRA_ARCHS in
> mips32 should already have "mips" or "mipsel" in them.
>
> I would expect this would be a reasonable upgrade path as existing
> systems know only "mips".. so we rebuild with the custom "mips" setting,
> adding in the compatible extra_archs.. (hopefully adjusting the any feed
> management mechanisms at the same time).. And then for the "next"
> release the mips32 goes on line, and the system already knows it's
> compatible. [or the manual mips change suggested stays.]
Mark,
now, after having repacked all binary tarballs that had mipsel or
mipsel-nf in their name and contents, and after having changed all
occurrences of mipsel and mipsel-nf in my local recipes (where
appropriate), and after having rebuilt everything from scratch again, it
came to my attention that "mipsel" in PACKAGE_EXTRA_ARCHS breaks opkg,
because no mipsel packages are being generated. That's what I told
before, right?
So please remove mipsel from PACKAGE_EXTRA_ARCHS to finally get this
working again!
Regards,
Andreas
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 11:30 ` Andreas Oberritter
@ 2012-04-18 11:40 ` Richard Purdie
2012-04-18 11:45 ` Andreas Oberritter
0 siblings, 1 reply; 25+ messages in thread
From: Richard Purdie @ 2012-04-18 11:40 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On Wed, 2012-04-18 at 13:30 +0200, Andreas Oberritter wrote:
> now, after having repacked all binary tarballs that had mipsel or
> mipsel-nf in their name and contents, and after having changed all
> occurrences of mipsel and mipsel-nf in my local recipes (where
> appropriate), and after having rebuilt everything from scratch again, it
> came to my attention that "mipsel" in PACKAGE_EXTRA_ARCHS breaks opkg,
> because no mipsel packages are being generated. That's what I told
> before, right?
How is this breaking opkg? We often have architectures listed in there
for which there are no packages generated (all, noarch and any spring to
mind)?
Cheers,
Richard
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 11:40 ` Richard Purdie
@ 2012-04-18 11:45 ` Andreas Oberritter
2012-04-18 11:53 ` Andreas Oberritter
2012-04-18 11:54 ` Martin Jansa
0 siblings, 2 replies; 25+ messages in thread
From: Andreas Oberritter @ 2012-04-18 11:45 UTC (permalink / raw)
To: openembedded-core
On 18.04.2012 13:40, Richard Purdie wrote:
> On Wed, 2012-04-18 at 13:30 +0200, Andreas Oberritter wrote:
>> now, after having repacked all binary tarballs that had mipsel or
>> mipsel-nf in their name and contents, and after having changed all
>> occurrences of mipsel and mipsel-nf in my local recipes (where
>> appropriate), and after having rebuilt everything from scratch again, it
>> came to my attention that "mipsel" in PACKAGE_EXTRA_ARCHS breaks opkg,
>> because no mipsel packages are being generated. That's what I told
>> before, right?
>
> How is this breaking opkg? We often have architectures listed in there
> for which there are no packages generated (all, noarch and any spring to
> mind)?
Downloading http://10.0.0.1/mipsel/Packages.gz.
wget: server returned error: HTTP/1.1 404 Not Found
Collected errors:
* opkg_download: Failed to download http://10.0.0.1/mipsel/Packages.gz, wget returned 1.
Regards,
Andreas
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 11:45 ` Andreas Oberritter
@ 2012-04-18 11:53 ` Andreas Oberritter
2012-04-18 11:54 ` Martin Jansa
1 sibling, 0 replies; 25+ messages in thread
From: Andreas Oberritter @ 2012-04-18 11:53 UTC (permalink / raw)
To: openembedded-core
On 18.04.2012 13:45, Andreas Oberritter wrote:
> On 18.04.2012 13:40, Richard Purdie wrote:
>> On Wed, 2012-04-18 at 13:30 +0200, Andreas Oberritter wrote:
>>> now, after having repacked all binary tarballs that had mipsel or
>>> mipsel-nf in their name and contents, and after having changed all
>>> occurrences of mipsel and mipsel-nf in my local recipes (where
>>> appropriate), and after having rebuilt everything from scratch again, it
>>> came to my attention that "mipsel" in PACKAGE_EXTRA_ARCHS breaks opkg,
>>> because no mipsel packages are being generated. That's what I told
>>> before, right?
>>
>> How is this breaking opkg? We often have architectures listed in there
>> for which there are no packages generated (all, noarch and any spring to
>> mind)?
>
> Downloading http://10.0.0.1/mipsel/Packages.gz.
> wget: server returned error: HTTP/1.1 404 Not Found
> Collected errors:
> * opkg_download: Failed to download http://10.0.0.1/mipsel/Packages.gz, wget returned 1.
That is, because although noarch and any are part of ${PACKAGE_ARCHS},
they are not part of ${PACKAGE_EXTRA_ARCHS}.
distro-feed-configs.bb uses "all ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".
Regards,
Andreas
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 11:45 ` Andreas Oberritter
2012-04-18 11:53 ` Andreas Oberritter
@ 2012-04-18 11:54 ` Martin Jansa
2012-04-18 12:00 ` Richard Purdie
1 sibling, 1 reply; 25+ messages in thread
From: Martin Jansa @ 2012-04-18 11:54 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
[-- Attachment #1: Type: text/plain, Size: 1574 bytes --]
On Wed, Apr 18, 2012 at 01:45:54PM +0200, Andreas Oberritter wrote:
> On 18.04.2012 13:40, Richard Purdie wrote:
> > On Wed, 2012-04-18 at 13:30 +0200, Andreas Oberritter wrote:
> >> now, after having repacked all binary tarballs that had mipsel or
> >> mipsel-nf in their name and contents, and after having changed all
> >> occurrences of mipsel and mipsel-nf in my local recipes (where
> >> appropriate), and after having rebuilt everything from scratch again, it
> >> came to my attention that "mipsel" in PACKAGE_EXTRA_ARCHS breaks opkg,
> >> because no mipsel packages are being generated. That's what I told
> >> before, right?
> >
> > How is this breaking opkg? We often have architectures listed in there
> > for which there are no packages generated (all, noarch and any spring to
> > mind)?
>
> Downloading http://10.0.0.1/mipsel/Packages.gz.
> wget: server returned error: HTTP/1.1 404 Not Found
> Collected errors:
> * opkg_download: Failed to download http://10.0.0.1/mipsel/Packages.gz, wget returned 1.
I had a lot of those (e.g. because armv7a-vfp-neon was including 20
arm*feed.conf variants in /etc/opkg most of them empty - without
Packages.gz).
So I've added "filter" to distro-feed-configs
http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
to add only feeds I'm generating (and I also don't want armv5* packages
installed on armv7a-vfp-neon target unless user explicitly adds armv5*
feed).
Cheers,
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 11:54 ` Martin Jansa
@ 2012-04-18 12:00 ` Richard Purdie
2012-04-18 12:08 ` Andreas Oberritter
2012-04-18 12:15 ` Koen Kooi
0 siblings, 2 replies; 25+ messages in thread
From: Richard Purdie @ 2012-04-18 12:00 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
> On Wed, Apr 18, 2012 at 01:45:54PM +0200, Andreas Oberritter wrote:
> > On 18.04.2012 13:40, Richard Purdie wrote:
> > > On Wed, 2012-04-18 at 13:30 +0200, Andreas Oberritter wrote:
> > >> now, after having repacked all binary tarballs that had mipsel or
> > >> mipsel-nf in their name and contents, and after having changed all
> > >> occurrences of mipsel and mipsel-nf in my local recipes (where
> > >> appropriate), and after having rebuilt everything from scratch again, it
> > >> came to my attention that "mipsel" in PACKAGE_EXTRA_ARCHS breaks opkg,
> > >> because no mipsel packages are being generated. That's what I told
> > >> before, right?
> > >
> > > How is this breaking opkg? We often have architectures listed in there
> > > for which there are no packages generated (all, noarch and any spring to
> > > mind)?
> >
> > Downloading http://10.0.0.1/mipsel/Packages.gz.
> > wget: server returned error: HTTP/1.1 404 Not Found
> > Collected errors:
> > * opkg_download: Failed to download http://10.0.0.1/mipsel/Packages.gz, wget returned 1.
>
> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
> arm*feed.conf variants in /etc/opkg most of them empty - without
> Packages.gz).
>
> So I've added "filter" to distro-feed-configs
> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
> to add only feeds I'm generating (and I also don't want armv5* packages
> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
> feed).
This is the better solution. I think we need to get a better default
feed-config generation mechanism into the core. Distros may still need
to tweak it but it would be good to share some of the best practises...
Cheers,
Richard
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 12:00 ` Richard Purdie
@ 2012-04-18 12:08 ` Andreas Oberritter
2012-04-18 12:45 ` Richard Purdie
2012-04-18 12:15 ` Koen Kooi
1 sibling, 1 reply; 25+ messages in thread
From: Andreas Oberritter @ 2012-04-18 12:08 UTC (permalink / raw)
To: openembedded-core
On 18.04.2012 14:00, Richard Purdie wrote:
> On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
>> On Wed, Apr 18, 2012 at 01:45:54PM +0200, Andreas Oberritter wrote:
>>> On 18.04.2012 13:40, Richard Purdie wrote:
>>>> On Wed, 2012-04-18 at 13:30 +0200, Andreas Oberritter wrote:
>>>>> now, after having repacked all binary tarballs that had mipsel or
>>>>> mipsel-nf in their name and contents, and after having changed all
>>>>> occurrences of mipsel and mipsel-nf in my local recipes (where
>>>>> appropriate), and after having rebuilt everything from scratch again, it
>>>>> came to my attention that "mipsel" in PACKAGE_EXTRA_ARCHS breaks opkg,
>>>>> because no mipsel packages are being generated. That's what I told
>>>>> before, right?
>>>>
>>>> How is this breaking opkg? We often have architectures listed in there
>>>> for which there are no packages generated (all, noarch and any spring to
>>>> mind)?
>>>
>>> Downloading http://10.0.0.1/mipsel/Packages.gz.
>>> wget: server returned error: HTTP/1.1 404 Not Found
>>> Collected errors:
>>> * opkg_download: Failed to download http://10.0.0.1/mipsel/Packages.gz, wget returned 1.
>>
>> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
>> arm*feed.conf variants in /etc/opkg most of them empty - without
>> Packages.gz).
>>
>> So I've added "filter" to distro-feed-configs
>> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
>> to add only feeds I'm generating (and I also don't want armv5* packages
>> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
>> feed).
>
> This is the better solution. I think we need to get a better default
> feed-config generation mechanism into the core. Distros may still need
> to tweak it but it would be good to share some of the best practises...
Did you look at the patch? Which default setting of
SUPPORTED_EXTRA_ARCHS do you suggest? Do you think it's feasible to add
every single downloadable arch to this variable? If a user of my distro
decides to build it for some arm or x86 cpu, should he need to know
which archs to add at this place?
I don't think that's user-friendly and I don't know what's so bad about
removing something that probably hasn't helped anybody.
Regards,
Andreas
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 12:00 ` Richard Purdie
2012-04-18 12:08 ` Andreas Oberritter
@ 2012-04-18 12:15 ` Koen Kooi
1 sibling, 0 replies; 25+ messages in thread
From: Koen Kooi @ 2012-04-18 12:15 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
Op 18 apr. 2012, om 14:00 heeft Richard Purdie het volgende geschreven:
> On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
>> On Wed, Apr 18, 2012 at 01:45:54PM +0200, Andreas Oberritter wrote:
>>> On 18.04.2012 13:40, Richard Purdie wrote:
>>>> On Wed, 2012-04-18 at 13:30 +0200, Andreas Oberritter wrote:
>>>>> now, after having repacked all binary tarballs that had mipsel or
>>>>> mipsel-nf in their name and contents, and after having changed all
>>>>> occurrences of mipsel and mipsel-nf in my local recipes (where
>>>>> appropriate), and after having rebuilt everything from scratch again, it
>>>>> came to my attention that "mipsel" in PACKAGE_EXTRA_ARCHS breaks opkg,
>>>>> because no mipsel packages are being generated. That's what I told
>>>>> before, right?
>>>>
>>>> How is this breaking opkg? We often have architectures listed in there
>>>> for which there are no packages generated (all, noarch and any spring to
>>>> mind)?
>>>
>>> Downloading http://10.0.0.1/mipsel/Packages.gz.
>>> wget: server returned error: HTTP/1.1 404 Not Found
>>> Collected errors:
>>> * opkg_download: Failed to download http://10.0.0.1/mipsel/Packages.gz, wget returned 1.
>>
>> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
>> arm*feed.conf variants in /etc/opkg most of them empty - without
>> Packages.gz).
>>
>> So I've added "filter" to distro-feed-configs
>> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
>> to add only feeds I'm generating (and I also don't want armv5* packages
>> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
>> feed).
>
> This is the better solution. I think we need to get a better default
> feed-config generation mechanism into the core. Distros may still need
> to tweak it but it would be good to share some of the best practises...
That's exactly why I invented FEED_ARCH a few years ago, which is now changed to BASE_PACKAGE_ARCH. The angstrom-feed-configs recipe which distro-feed-configs was based on doesn't support from the the above drawbacks.
This discussion about using all PACKAGE_*_ARCHS to generate URLs pops up every other year with people concluding that distro-feed-configs sucks.
I can only recommend to have an integrated solution to manage your binary feeds instead of trying to fit it into the (broken) distro-feed-config model.
regards,
Koen
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 12:08 ` Andreas Oberritter
@ 2012-04-18 12:45 ` Richard Purdie
2012-04-18 14:37 ` Andreas Oberritter
0 siblings, 1 reply; 25+ messages in thread
From: Richard Purdie @ 2012-04-18 12:45 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On Wed, 2012-04-18 at 14:08 +0200, Andreas Oberritter wrote:
> On 18.04.2012 14:00, Richard Purdie wrote:
> > On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
> >> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
> >> arm*feed.conf variants in /etc/opkg most of them empty - without
> >> Packages.gz).
> >>
> >> So I've added "filter" to distro-feed-configs
> >> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
> >> to add only feeds I'm generating (and I also don't want armv5* packages
> >> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
> >> feed).
> >
> > This is the better solution. I think we need to get a better default
> > feed-config generation mechanism into the core. Distros may still need
> > to tweak it but it would be good to share some of the best practises...
>
> Did you look at the patch? Which default setting of
> SUPPORTED_EXTRA_ARCHS do you suggest?
I did. I didn't say the above patch was a perfect solution.
> Do you think it's feasible to add
> every single downloadable arch to this variable? If a user of my distro
> decides to build it for some arm or x86 cpu, should he need to know
> which archs to add at this place?
This is a place where the build system meets and interfaces with the
distro. No one policy in the build system is going to fit every distro's
needs, not should we ever aim to so. I think my comment above shows what
I think is the correct intention, we should aim to find common ground
and share solutions where possible.
You could simply decide your distro only supports PACKAGE_ARCH for a
given target, you could also decide to filter through the list
PACKAGE_ARCHs and remove certain values based on a whitelist or
blacklist. Its a policy decision and one the distro needs to decide on
ultimately.
> I don't think that's user-friendly and I don't know what's so bad about
> removing something that probably hasn't helped anybody.
I disagree. I am sorry you're feeling some pain on this particular
topic, that wasn't intended and I'm hoping we can get that resolved and
move forward quickly.
Cheers,
Richard
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 12:45 ` Richard Purdie
@ 2012-04-18 14:37 ` Andreas Oberritter
2012-04-18 15:21 ` Mark Hatle
0 siblings, 1 reply; 25+ messages in thread
From: Andreas Oberritter @ 2012-04-18 14:37 UTC (permalink / raw)
To: openembedded-core
On 18.04.2012 14:45, Richard Purdie wrote:
> On Wed, 2012-04-18 at 14:08 +0200, Andreas Oberritter wrote:
>> On 18.04.2012 14:00, Richard Purdie wrote:
>>> On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
>>>> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
>>>> arm*feed.conf variants in /etc/opkg most of them empty - without
>>>> Packages.gz).
>>>>
>>>> So I've added "filter" to distro-feed-configs
>>>> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
>>>> to add only feeds I'm generating (and I also don't want armv5* packages
>>>> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
>>>> feed).
>>>
>>> This is the better solution. I think we need to get a better default
>>> feed-config generation mechanism into the core. Distros may still need
>>> to tweak it but it would be good to share some of the best practises...
>>
>> Did you look at the patch? Which default setting of
>> SUPPORTED_EXTRA_ARCHS do you suggest?
>
> I did. I didn't say the above patch was a perfect solution.
>
>> Do you think it's feasible to add
>> every single downloadable arch to this variable? If a user of my distro
>> decides to build it for some arm or x86 cpu, should he need to know
>> which archs to add at this place?
>
> This is a place where the build system meets and interfaces with the
> distro. No one policy in the build system is going to fit every distro's
> needs, not should we ever aim to so.
At least we should have defaults that actually work for someone. Now we
don't and considering that distro-feed-configs.bb is the only place
where PACKAGE_EXTRA_ARCHS is actually used, this would be very easy to
accomplish. Especially because it worked well by default before Mark
broke it.
I guess it's indeed better to just override the necessary bits in my
distro instead of trying to get working defaults upstream.
Regards,
Andreas
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 14:37 ` Andreas Oberritter
@ 2012-04-18 15:21 ` Mark Hatle
2012-04-18 15:46 ` Martin Jansa
0 siblings, 1 reply; 25+ messages in thread
From: Mark Hatle @ 2012-04-18 15:21 UTC (permalink / raw)
To: openembedded-core
On 4/18/12 9:37 AM, Andreas Oberritter wrote:
> On 18.04.2012 14:45, Richard Purdie wrote:
>> On Wed, 2012-04-18 at 14:08 +0200, Andreas Oberritter wrote:
>>> On 18.04.2012 14:00, Richard Purdie wrote:
>>>> On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
>>>>> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
>>>>> arm*feed.conf variants in /etc/opkg most of them empty - without
>>>>> Packages.gz).
>>>>>
>>>>> So I've added "filter" to distro-feed-configs
>>>>> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
>>>>> to add only feeds I'm generating (and I also don't want armv5* packages
>>>>> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
>>>>> feed).
>>>>
>>>> This is the better solution. I think we need to get a better default
>>>> feed-config generation mechanism into the core. Distros may still need
>>>> to tweak it but it would be good to share some of the best practises...
>>>
>>> Did you look at the patch? Which default setting of
>>> SUPPORTED_EXTRA_ARCHS do you suggest?
>>
>> I did. I didn't say the above patch was a perfect solution.
>>
>>> Do you think it's feasible to add
>>> every single downloadable arch to this variable? If a user of my distro
>>> decides to build it for some arm or x86 cpu, should he need to know
>>> which archs to add at this place?
>>
>> This is a place where the build system meets and interfaces with the
>> distro. No one policy in the build system is going to fit every distro's
>> needs, not should we ever aim to so.
>
> At least we should have defaults that actually work for someone. Now we
> don't and considering that distro-feed-configs.bb is the only place
> where PACKAGE_EXTRA_ARCHS is actually used, this would be very easy to
> accomplish. Especially because it worked well by default before Mark
> broke it.
PACKAGE_EXTRA_ARCHS is also used by Zypper, RPM configuration and other places.
In those cases it is a full list of all available (and compatible) package
architecture types.
Coming from the RPM world, it seems very odd to me that a set of "extra_archs"
can not list well, extra compatible archs without causing an error. I have no
idea how to reconcile this behavior, without making a package manager
distro-feed specific solution. (For RPM we absolutely want the existing behavior.)
--Mark
> I guess it's indeed better to just override the necessary bits in my
> distro instead of trying to get working defaults upstream.
>
> Regards,
> Andreas
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 15:21 ` Mark Hatle
@ 2012-04-18 15:46 ` Martin Jansa
2012-04-18 17:01 ` Koen Kooi
0 siblings, 1 reply; 25+ messages in thread
From: Martin Jansa @ 2012-04-18 15:46 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
[-- Attachment #1: Type: text/plain, Size: 3849 bytes --]
On Wed, Apr 18, 2012 at 10:21:38AM -0500, Mark Hatle wrote:
> On 4/18/12 9:37 AM, Andreas Oberritter wrote:
> > On 18.04.2012 14:45, Richard Purdie wrote:
> >> On Wed, 2012-04-18 at 14:08 +0200, Andreas Oberritter wrote:
> >>> On 18.04.2012 14:00, Richard Purdie wrote:
> >>>> On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
> >>>>> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
> >>>>> arm*feed.conf variants in /etc/opkg most of them empty - without
> >>>>> Packages.gz).
> >>>>>
> >>>>> So I've added "filter" to distro-feed-configs
> >>>>> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
> >>>>> to add only feeds I'm generating (and I also don't want armv5* packages
> >>>>> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
> >>>>> feed).
> >>>>
> >>>> This is the better solution. I think we need to get a better default
> >>>> feed-config generation mechanism into the core. Distros may still need
> >>>> to tweak it but it would be good to share some of the best practises...
> >>>
> >>> Did you look at the patch? Which default setting of
> >>> SUPPORTED_EXTRA_ARCHS do you suggest?
> >>
> >> I did. I didn't say the above patch was a perfect solution.
> >>
> >>> Do you think it's feasible to add
> >>> every single downloadable arch to this variable? If a user of my distro
> >>> decides to build it for some arm or x86 cpu, should he need to know
> >>> which archs to add at this place?
> >>
> >> This is a place where the build system meets and interfaces with the
> >> distro. No one policy in the build system is going to fit every distro's
> >> needs, not should we ever aim to so.
> >
> > At least we should have defaults that actually work for someone. Now we
> > don't and considering that distro-feed-configs.bb is the only place
> > where PACKAGE_EXTRA_ARCHS is actually used, this would be very easy to
> > accomplish. Especially because it worked well by default before Mark
> > broke it.
>
> PACKAGE_EXTRA_ARCHS is also used by Zypper, RPM configuration and other places.
> In those cases it is a full list of all available (and compatible) package
> architecture types.
>
> Coming from the RPM world, it seems very odd to me that a set of "extra_archs"
> can not list well, extra compatible archs without causing an error. I have no
> idea how to reconcile this behavior, without making a package manager
> distro-feed specific solution. (For RPM we absolutely want the existing behavior.)
The problem Andreas is seeing is not fatal AFAIK.. just couple (or a
lot) of 404 (Packages files not available) while doing opkg update is
not nice for end user.
Downloading many existing Packages files without any Package in it
is also suboptimal, but maybe good start.. so we can teach
meta/classes/package_ipk.bbclass:package_update_index_ipk() to create
Packages files not only for existing
ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS} ${SDK_PACKAGE_ARCHS}"
but for all (replace "if [ -e $pkgdir/ ]; then" with something like
"if [ ! -e $pkgdir/ ]; then mkdir -p $pkgdir; fi")
Cheers,
> > I guess it's indeed better to just override the necessary bits in my
> > distro instead of trying to get working defaults upstream.
> >
> > Regards,
> > Andreas
> >
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 15:46 ` Martin Jansa
@ 2012-04-18 17:01 ` Koen Kooi
2012-04-18 18:10 ` Andreas Oberritter
2012-04-18 19:57 ` Martin Jansa
0 siblings, 2 replies; 25+ messages in thread
From: Koen Kooi @ 2012-04-18 17:01 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
Op 18 apr. 2012, om 17:46 heeft Martin Jansa het volgende geschreven:
> On Wed, Apr 18, 2012 at 10:21:38AM -0500, Mark Hatle wrote:
>> On 4/18/12 9:37 AM, Andreas Oberritter wrote:
>>> On 18.04.2012 14:45, Richard Purdie wrote:
>>>> On Wed, 2012-04-18 at 14:08 +0200, Andreas Oberritter wrote:
>>>>> On 18.04.2012 14:00, Richard Purdie wrote:
>>>>>> On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
>>>>>>> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
>>>>>>> arm*feed.conf variants in /etc/opkg most of them empty - without
>>>>>>> Packages.gz).
>>>>>>>
>>>>>>> So I've added "filter" to distro-feed-configs
>>>>>>> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
>>>>>>> to add only feeds I'm generating (and I also don't want armv5* packages
>>>>>>> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
>>>>>>> feed).
>>>>>>
>>>>>> This is the better solution. I think we need to get a better default
>>>>>> feed-config generation mechanism into the core. Distros may still need
>>>>>> to tweak it but it would be good to share some of the best practises...
>>>>>
>>>>> Did you look at the patch? Which default setting of
>>>>> SUPPORTED_EXTRA_ARCHS do you suggest?
>>>>
>>>> I did. I didn't say the above patch was a perfect solution.
>>>>
>>>>> Do you think it's feasible to add
>>>>> every single downloadable arch to this variable? If a user of my distro
>>>>> decides to build it for some arm or x86 cpu, should he need to know
>>>>> which archs to add at this place?
>>>>
>>>> This is a place where the build system meets and interfaces with the
>>>> distro. No one policy in the build system is going to fit every distro's
>>>> needs, not should we ever aim to so.
>>>
>>> At least we should have defaults that actually work for someone. Now we
>>> don't and considering that distro-feed-configs.bb is the only place
>>> where PACKAGE_EXTRA_ARCHS is actually used, this would be very easy to
>>> accomplish. Especially because it worked well by default before Mark
>>> broke it.
>>
>> PACKAGE_EXTRA_ARCHS is also used by Zypper, RPM configuration and other places.
>> In those cases it is a full list of all available (and compatible) package
>> architecture types.
>>
>> Coming from the RPM world, it seems very odd to me that a set of "extra_archs"
>> can not list well, extra compatible archs without causing an error. I have no
>> idea how to reconcile this behavior, without making a package manager
>> distro-feed specific solution. (For RPM we absolutely want the existing behavior.)
>
> The problem Andreas is seeing is not fatal AFAIK.. just couple (or a
> lot) of 404 (Packages files not available) while doing opkg update is
> not nice for end user.
>
> Downloading many existing Packages files without any Package in it
> is also suboptimal, but maybe good start.. so we can teach
> meta/classes/package_ipk.bbclass:package_update_index_ipk() to create
> Packages files not only for existing
> ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS} ${SDK_PACKAGE_ARCHS}"
> but for all (replace "if [ -e $pkgdir/ ]; then" with something like
> "if [ ! -e $pkgdir/ ]; then mkdir -p $pkgdir; fi")
That implies you're exposing feeds straight from OE, which is a bad, bad idea.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 17:01 ` Koen Kooi
@ 2012-04-18 18:10 ` Andreas Oberritter
2012-04-18 18:31 ` Koen Kooi
2012-04-18 19:57 ` Martin Jansa
1 sibling, 1 reply; 25+ messages in thread
From: Andreas Oberritter @ 2012-04-18 18:10 UTC (permalink / raw)
To: openembedded-core
On 18.04.2012 19:01, Koen Kooi wrote:
>
> Op 18 apr. 2012, om 17:46 heeft Martin Jansa het volgende geschreven:
>
>> On Wed, Apr 18, 2012 at 10:21:38AM -0500, Mark Hatle wrote:
>>> On 4/18/12 9:37 AM, Andreas Oberritter wrote:
>>>> On 18.04.2012 14:45, Richard Purdie wrote:
>>>>> On Wed, 2012-04-18 at 14:08 +0200, Andreas Oberritter wrote:
>>>>>> On 18.04.2012 14:00, Richard Purdie wrote:
>>>>>>> On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
>>>>>>>> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
>>>>>>>> arm*feed.conf variants in /etc/opkg most of them empty - without
>>>>>>>> Packages.gz).
>>>>>>>>
>>>>>>>> So I've added "filter" to distro-feed-configs
>>>>>>>> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
>>>>>>>> to add only feeds I'm generating (and I also don't want armv5* packages
>>>>>>>> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
>>>>>>>> feed).
>>>>>>>
>>>>>>> This is the better solution. I think we need to get a better default
>>>>>>> feed-config generation mechanism into the core. Distros may still need
>>>>>>> to tweak it but it would be good to share some of the best practises...
>>>>>>
>>>>>> Did you look at the patch? Which default setting of
>>>>>> SUPPORTED_EXTRA_ARCHS do you suggest?
>>>>>
>>>>> I did. I didn't say the above patch was a perfect solution.
>>>>>
>>>>>> Do you think it's feasible to add
>>>>>> every single downloadable arch to this variable? If a user of my distro
>>>>>> decides to build it for some arm or x86 cpu, should he need to know
>>>>>> which archs to add at this place?
>>>>>
>>>>> This is a place where the build system meets and interfaces with the
>>>>> distro. No one policy in the build system is going to fit every distro's
>>>>> needs, not should we ever aim to so.
>>>>
>>>> At least we should have defaults that actually work for someone. Now we
>>>> don't and considering that distro-feed-configs.bb is the only place
>>>> where PACKAGE_EXTRA_ARCHS is actually used, this would be very easy to
>>>> accomplish. Especially because it worked well by default before Mark
>>>> broke it.
>>>
>>> PACKAGE_EXTRA_ARCHS is also used by Zypper, RPM configuration and other places.
>>> In those cases it is a full list of all available (and compatible) package
>>> architecture types.
>>>
>>> Coming from the RPM world, it seems very odd to me that a set of "extra_archs"
>>> can not list well, extra compatible archs without causing an error. I have no
>>> idea how to reconcile this behavior, without making a package manager
>>> distro-feed specific solution. (For RPM we absolutely want the existing behavior.)
>>
>> The problem Andreas is seeing is not fatal AFAIK.. just couple (or a
>> lot) of 404 (Packages files not available) while doing opkg update is
>> not nice for end user.
>>
>> Downloading many existing Packages files without any Package in it
>> is also suboptimal, but maybe good start.. so we can teach
>> meta/classes/package_ipk.bbclass:package_update_index_ipk() to create
>> Packages files not only for existing
>> ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS} ${SDK_PACKAGE_ARCHS}"
>> but for all (replace "if [ -e $pkgdir/ ]; then" with something like
>> "if [ ! -e $pkgdir/ ]; then mkdir -p $pkgdir; fi")
>
> That implies you're exposing feeds straight from OE, which is a bad, bad idea.
Can you please elaborate on why this is a bad idea?
Regards,
Andreas
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 18:10 ` Andreas Oberritter
@ 2012-04-18 18:31 ` Koen Kooi
0 siblings, 0 replies; 25+ messages in thread
From: Koen Kooi @ 2012-04-18 18:31 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
Op 18 apr. 2012, om 20:10 heeft Andreas Oberritter het volgende geschreven:
> On 18.04.2012 19:01, Koen Kooi wrote:
>>
>> Op 18 apr. 2012, om 17:46 heeft Martin Jansa het volgende geschreven:
>>
>>> On Wed, Apr 18, 2012 at 10:21:38AM -0500, Mark Hatle wrote:
>>>> On 4/18/12 9:37 AM, Andreas Oberritter wrote:
>>>>> On 18.04.2012 14:45, Richard Purdie wrote:
>>>>>> On Wed, 2012-04-18 at 14:08 +0200, Andreas Oberritter wrote:
>>>>>>> On 18.04.2012 14:00, Richard Purdie wrote:
>>>>>>>> On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
>>>>>>>>> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
>>>>>>>>> arm*feed.conf variants in /etc/opkg most of them empty - without
>>>>>>>>> Packages.gz).
>>>>>>>>>
>>>>>>>>> So I've added "filter" to distro-feed-configs
>>>>>>>>> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
>>>>>>>>> to add only feeds I'm generating (and I also don't want armv5* packages
>>>>>>>>> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
>>>>>>>>> feed).
>>>>>>>>
>>>>>>>> This is the better solution. I think we need to get a better default
>>>>>>>> feed-config generation mechanism into the core. Distros may still need
>>>>>>>> to tweak it but it would be good to share some of the best practises...
>>>>>>>
>>>>>>> Did you look at the patch? Which default setting of
>>>>>>> SUPPORTED_EXTRA_ARCHS do you suggest?
>>>>>>
>>>>>> I did. I didn't say the above patch was a perfect solution.
>>>>>>
>>>>>>> Do you think it's feasible to add
>>>>>>> every single downloadable arch to this variable? If a user of my distro
>>>>>>> decides to build it for some arm or x86 cpu, should he need to know
>>>>>>> which archs to add at this place?
>>>>>>
>>>>>> This is a place where the build system meets and interfaces with the
>>>>>> distro. No one policy in the build system is going to fit every distro's
>>>>>> needs, not should we ever aim to so.
>>>>>
>>>>> At least we should have defaults that actually work for someone. Now we
>>>>> don't and considering that distro-feed-configs.bb is the only place
>>>>> where PACKAGE_EXTRA_ARCHS is actually used, this would be very easy to
>>>>> accomplish. Especially because it worked well by default before Mark
>>>>> broke it.
>>>>
>>>> PACKAGE_EXTRA_ARCHS is also used by Zypper, RPM configuration and other places.
>>>> In those cases it is a full list of all available (and compatible) package
>>>> architecture types.
>>>>
>>>> Coming from the RPM world, it seems very odd to me that a set of "extra_archs"
>>>> can not list well, extra compatible archs without causing an error. I have no
>>>> idea how to reconcile this behavior, without making a package manager
>>>> distro-feed specific solution. (For RPM we absolutely want the existing behavior.)
>>>
>>> The problem Andreas is seeing is not fatal AFAIK.. just couple (or a
>>> lot) of 404 (Packages files not available) while doing opkg update is
>>> not nice for end user.
>>>
>>> Downloading many existing Packages files without any Package in it
>>> is also suboptimal, but maybe good start.. so we can teach
>>> meta/classes/package_ipk.bbclass:package_update_index_ipk() to create
>>> Packages files not only for existing
>>> ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS} ${SDK_PACKAGE_ARCHS}"
>>> but for all (replace "if [ -e $pkgdir/ ]; then" with something like
>>> "if [ ! -e $pkgdir/ ]; then mkdir -p $pkgdir; fi")
>>
>> That implies you're exposing feeds straight from OE, which is a bad, bad idea.
>
> Can you please elaborate on why this is a bad idea?
The main reason is that packages will get recreated with different MD5 sums, upsetting opkg. And worse, they will have different contents because PR bumps get left out a lot (but less than they used to). It's analogous to using WORKDIR/rootfs for nfsroot. It might work for you, but in general it's a bad idea.
What we do in angstrom is disallow duplicate files to get uploaded, so foo_1.0-r0.ipk won't get overwritten by a 'newer' foo_1.0-r0.ipk, it will only go away if foo_1.0-r1.ipk gets uploaded.
regards,
Koen
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: MIPS vs MIPS32 tunings -- summary and questions
2012-04-18 17:01 ` Koen Kooi
2012-04-18 18:10 ` Andreas Oberritter
@ 2012-04-18 19:57 ` Martin Jansa
1 sibling, 0 replies; 25+ messages in thread
From: Martin Jansa @ 2012-04-18 19:57 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
[-- Attachment #1: Type: text/plain, Size: 3786 bytes --]
On Wed, Apr 18, 2012 at 07:01:12PM +0200, Koen Kooi wrote:
>
> Op 18 apr. 2012, om 17:46 heeft Martin Jansa het volgende geschreven:
>
> > On Wed, Apr 18, 2012 at 10:21:38AM -0500, Mark Hatle wrote:
> >> On 4/18/12 9:37 AM, Andreas Oberritter wrote:
> >>> On 18.04.2012 14:45, Richard Purdie wrote:
> >>>> On Wed, 2012-04-18 at 14:08 +0200, Andreas Oberritter wrote:
> >>>>> On 18.04.2012 14:00, Richard Purdie wrote:
> >>>>>> On Wed, 2012-04-18 at 13:54 +0200, Martin Jansa wrote:
> >>>>>>> I had a lot of those (e.g. because armv7a-vfp-neon was including 20
> >>>>>>> arm*feed.conf variants in /etc/opkg most of them empty - without
> >>>>>>> Packages.gz).
> >>>>>>>
> >>>>>>> So I've added "filter" to distro-feed-configs
> >>>>>>> http://git.shr-project.org/git/?p=meta-smartphone.git;a=commit;h=236aa553bb0f82f741c6edb793e96f421f24f4fa
> >>>>>>> to add only feeds I'm generating (and I also don't want armv5* packages
> >>>>>>> installed on armv7a-vfp-neon target unless user explicitly adds armv5*
> >>>>>>> feed).
> >>>>>>
> >>>>>> This is the better solution. I think we need to get a better default
> >>>>>> feed-config generation mechanism into the core. Distros may still need
> >>>>>> to tweak it but it would be good to share some of the best practises...
> >>>>>
> >>>>> Did you look at the patch? Which default setting of
> >>>>> SUPPORTED_EXTRA_ARCHS do you suggest?
> >>>>
> >>>> I did. I didn't say the above patch was a perfect solution.
> >>>>
> >>>>> Do you think it's feasible to add
> >>>>> every single downloadable arch to this variable? If a user of my distro
> >>>>> decides to build it for some arm or x86 cpu, should he need to know
> >>>>> which archs to add at this place?
> >>>>
> >>>> This is a place where the build system meets and interfaces with the
> >>>> distro. No one policy in the build system is going to fit every distro's
> >>>> needs, not should we ever aim to so.
> >>>
> >>> At least we should have defaults that actually work for someone. Now we
> >>> don't and considering that distro-feed-configs.bb is the only place
> >>> where PACKAGE_EXTRA_ARCHS is actually used, this would be very easy to
> >>> accomplish. Especially because it worked well by default before Mark
> >>> broke it.
> >>
> >> PACKAGE_EXTRA_ARCHS is also used by Zypper, RPM configuration and other places.
> >> In those cases it is a full list of all available (and compatible) package
> >> architecture types.
> >>
> >> Coming from the RPM world, it seems very odd to me that a set of "extra_archs"
> >> can not list well, extra compatible archs without causing an error. I have no
> >> idea how to reconcile this behavior, without making a package manager
> >> distro-feed specific solution. (For RPM we absolutely want the existing behavior.)
> >
> > The problem Andreas is seeing is not fatal AFAIK.. just couple (or a
> > lot) of 404 (Packages files not available) while doing opkg update is
> > not nice for end user.
> >
> > Downloading many existing Packages files without any Package in it
> > is also suboptimal, but maybe good start.. so we can teach
> > meta/classes/package_ipk.bbclass:package_update_index_ipk() to create
> > Packages files not only for existing
> > ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS} ${SDK_PACKAGE_ARCHS}"
> > but for all (replace "if [ -e $pkgdir/ ]; then" with something like
> > "if [ ! -e $pkgdir/ ]; then mkdir -p $pkgdir; fi")
>
> That implies you're exposing feeds straight from OE, which is a bad, bad idea.
I'm rsyncing feed (whole deploy dir) to exposed location only after whole build
is finished and package-indexes regenerated, so I think I'm quite safe.
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2012-04-18 20:06 UTC | newest]
Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-10 17:53 MIPS vs MIPS32 tunings -- summary and questions Mark Hatle
2012-04-10 19:28 ` Andreas Oberritter
2012-04-16 13:55 ` Andreas Oberritter
2012-04-16 14:37 ` Robert Yang
2012-04-16 15:23 ` Andreas Oberritter
2012-04-16 15:50 ` Richard Purdie
2012-04-16 14:42 ` Richard Purdie
2012-04-16 15:15 ` Andreas Oberritter
2012-04-16 15:30 ` Mark Hatle
2012-04-18 11:30 ` Andreas Oberritter
2012-04-18 11:40 ` Richard Purdie
2012-04-18 11:45 ` Andreas Oberritter
2012-04-18 11:53 ` Andreas Oberritter
2012-04-18 11:54 ` Martin Jansa
2012-04-18 12:00 ` Richard Purdie
2012-04-18 12:08 ` Andreas Oberritter
2012-04-18 12:45 ` Richard Purdie
2012-04-18 14:37 ` Andreas Oberritter
2012-04-18 15:21 ` Mark Hatle
2012-04-18 15:46 ` Martin Jansa
2012-04-18 17:01 ` Koen Kooi
2012-04-18 18:10 ` Andreas Oberritter
2012-04-18 18:31 ` Koen Kooi
2012-04-18 19:57 ` Martin Jansa
2012-04-18 12:15 ` Koen Kooi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox