On 01/27/2010 09:32 AM, didier wrote:
Hi,
Le mercredi 27 janvier 2010 à 00:54 -0700, Stephen Fisher a écrit :
On Tue, Jan 26, 2010 at 06:40:38PM +0100, Radek Vokál wrote:
The wireshark package cannot be build on ppc64 due to ppc64 ABI
limitation and RRC dissector source file which contains too many
string constants.
That's not good :(. I didn't realize until now that packet-rrc.c is
about 7MB of text (code) with over 150,000 lines! Only the similar
dissector packet-nbap.c is even close at almost 70,000 lines at about
3.5MB. I assume that packet-nbap.c isn't causing compilation problems
on ppc64? My first thought is to just pull packet-rrc.c from the
makefile, but if you're building packages for others, then leaving out a
dissector could be bad. I wonder if it would make a difference if we
converted it to be a plug-in dissector that ships with Wireshark?
Lacking that, we may be able to make the ASN.1 dissector generator spit
out a file that works on ppc64. Sure seems like a lot of extra work to
support one platform, but then again, maybe it would be easier to manage
anyway having all of those strings handled differently.
There's a lot of stuff like:
{ "midambleAllocationMode", "rrc.midambleAllocationMode", ...
Is it possible to compress it to the pseudo code:
const foo = "rrc.midambleAllocationMode"
{&foo +4, foo, ....
?
It should be faster on all platforms.
Don't know if it's enough.
Didier
The other solution would be to move all string literals to an const char
array and access them from that array.
Radek
--
Radek Vokál <rvokal@xxxxxxxxxx>
Engineering Manager - Base Operating Systems Brno
Office: +420 532 294 111
Mobile: +420 608 437 507
Red Hat Inc. http://cz.redhat.com