[Apt-Rpm] apt-rpm bug fixes
Ryan Burns
rburns at mvista.com
Fri Jan 11 09:43:49 PST 2008
On Fri, 11 Jan 2008 08:12:23 +0200 (EET)
Panu Matilainen <pmatilai at laiskiainen.org> wrote:
> On Thu, 10 Jan 2008, Ryan Burns wrote:
>
> > Hi Panu,
> >
> > Don't worry about the late response, it took me a quite a while get around
> > to submitting those patches :) Thanks for applying them.
>
> Heh. Well, thanks for getting around to submitting them :)
>
> > On the arm alignment issues, I corrected the md5 patch to follow what was
> > done in sha1.h and verified that it still fixes the issue.
>
> Ok, good - applied. Not that I particularly like having gcc-specifics in
> apt either but at least this is no worse than what we've had so far.
>
> > And for the bool alignment, I completely agree with you that having to align
a
> > bool seems very wrong, but it is indeed required in this case. The general
> > problem is that gcc4+ no longer handles alignment for the programer. IIRC,
the
> > community's reasoning is that the C standard specifies that alignment is up
to
> > the programmer, and therefore it is unnecessary for the compiler to help
with
> > this. (Sorry, I can find the link I was given to the section of the standard
> > that talks about it). I guess in previous versions of gcc, they were just
"kind
> > enough" to handle the most common cases for us. Long story short is that the
> > bool is not aligned and unlike x86, arm doesn't allow for unaligned access.
>
> What bothers me here is that apt is full of bools, what exactly is it
> about HideZeroEpoch that makes it require alignment? Hum... one
> possibility:
>
Wow, I totally missed that. Yes, that is exactly what is causing the issue.
Thanks for catching it.
Ryan
> In rpmhandler.cc it's declared as "bool HideZeroEpoch" but in rpmsystem.h
> it's "extern int HideZeroEpoch". That's just a stupid mistake by me. Can
> you check if the need for alignment goes away if you fix the
> type-mismatch:
>
> --- a/apt-pkg/rpm/rpmsystem.h
> +++ b/apt-pkg/rpm/rpmsystem.h
> @@ -60,6 +60,6 @@ class rpmSystem : public pkgSystem
> };
>
> extern rpmSystem rpmSys;
> -extern int HideZeroEpoch;
> +extern bool HideZeroEpoch;
>
> #endif
>
> - Panu -
--
Ryan Burns <rburns at mvista.com>
MontaVista Software, Inc.
More information about the Apt-Rpm
mailing list