From: Mark Hatle <mark.hatle@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 3/5] eglibc: Update 2.13 to avoid multilib conflicts
Date: Mon, 25 Jul 2011 14:04:33 -0500 [thread overview]
Message-ID: <4E2DBE41.2090202@windriver.com> (raw)
In-Reply-To: <1311602379.30326.220.camel@phil-desktop>
On 7/25/11 8:59 AM, Phil Blundell wrote:
> On Mon, 2011-07-25 at 14:47 +0100, Richard Purdie wrote:
>> --- /dev/null
>> +++ b/meta/recipes-core/eglibc/eglibc-2.13/arch-ia32.patch
>> @@ -0,0 +1,5309 @@
>> +Sync the i386 and x86_64 headers into one common IA32 set of headers.
>> +
>> +The goal is to ensure that any headers produced in a 32-bit or 64-bit build
>> +are not only functionally equivalent, but actually the same in order to avoid
>> +file conflicts.
>> +
>> +The only remaining conflict is the bits/syscall.h. This is dynamically
>> +generated, and so far I've been unable to figure out how to get both
>> +i386 and x86_64 to generate the same file. We'll need to handle this
>> +in the recipe itself.
>> +
>> +Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
>
> This patch is missing an Upstream-Status. It's also rather large and
> intrusive which makes it hard to review sensibly and seems like it might
> be a maintenance headache in the future. I wonder whether it would be
> better to just put the 32-bit and 64-bit headers for eglibc in separate
> subdirectories (say /usr/include/32/... and /usr/include/64/...) and not
> bother even trying to patch them to be the same.
(still catching up on email)
Someone else asked a similar question as well. I opened a yoctoproject bug on
this as an attempt for people to understand what the problem is and how it's
being resolved (above and beyond the explanation above).
http://bugzilla.pokylinux.org/show_bug.cgi?id=1291
It doesn't have an upstream-status on it, because I'm not exactly sure what to
do with it yet.. I was still evaluating when I went on vacation.
Some of the patches are obvious IMHO. It's simple things like the headers not
being the same, but the contents being identical -- or slight formatting
variations in the files. This should be something I can send upstream.
Most of the remaining items the x86_64 version of the header is "correct", but
the i386 version of the header simply doesn't have knowledge that x86_64 even
exists. Adding that knowledge was as simple as copying the x86_64 version on
top of the i386 version. I don't know if upstream would permit this or not.
The few remaining ones usually had assembly optimizations on the i386 version
that were not in the x86_64 version. I merged these in order for the
optimizations to be retained. Again, I don't know if upstream would permit this
to either the i386 or x86_64 headers.
The syscall.h is generated (as noted above). The issue is that it's generated
differently [and subsequently used differently when building eglibc]. So using
the oe_multilib_header helper was the only reasonable alternative I could see.
As for maintenance, I see this as not terribly complex once you understand what
and why the patches exist. Except for the two? headers that I hand merged,
everything else is obvious once you run a diff between the stock i386 and x86_64
versions. There is no intent for "original content" to be in this patch.
(For people wondering, this generally isn't a problem on power or mips because
there is a single architecture directory that builds for both 32-bit and 64-bit.
IA32 doesn't do this.. they have a separate 32-bit [i386] and 64-bit [x86_64]
architecture directory.. if I were asked what the root cause of the bug was, I'd
immediately point to that. There really should be a single IA32 architecture
that is capable of building both endians.)
--Mark
> p.
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
next prev parent reply other threads:[~2011-07-25 19:08 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-25 13:47 [PATCH 0/5] Various multilib related fixes Richard Purdie
2011-07-25 13:47 ` [PATCH 1/5] multilib_header.bbclass: Add oe_multilib_header wrapper Richard Purdie
2011-07-25 13:54 ` Phil Blundell
2011-07-25 17:11 ` Mark Hatle
2011-07-25 20:06 ` Phil Blundell
2011-07-26 15:25 ` Mark Hatle
2011-07-25 14:35 ` Phil Blundell
2011-07-25 13:47 ` [PATCH 2/5] Fix recipe multilib header conflicts Richard Purdie
2011-07-25 14:08 ` Phil Blundell
2011-07-25 19:11 ` Mark Hatle
2011-07-25 13:47 ` [PATCH 3/5] eglibc: Update 2.13 to avoid multilib conflicts Richard Purdie
2011-07-25 13:59 ` Phil Blundell
2011-07-25 19:04 ` Mark Hatle [this message]
2011-07-25 20:04 ` Phil Blundell
2011-07-25 13:47 ` [PATCH 4/5] ncurses: Uncompress man pages Richard Purdie
2011-07-25 14:13 ` Phil Blundell
2011-07-25 19:14 ` Mark Hatle
2011-07-25 14:42 ` Enrico Scholz
2011-07-25 15:28 ` Phil Blundell
2011-07-25 13:47 ` [PATCH 5/5] package.bbclass: fixup_perms - symlink bug fix Richard Purdie
2011-07-25 14:05 ` Phil Blundell
2011-07-25 14:14 ` Enrico Scholz
2011-07-25 14:15 ` Phil Blundell
2011-07-25 19:08 ` Mark Hatle
2011-07-25 19:42 ` Phil Blundell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E2DBE41.2090202@windriver.com \
--to=mark.hatle@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox