Re: Bug#477741: libauthen-dechpwd-perl_2.002-3(sparc/unstable): FTBFS, test failed
On Thu, Apr 24, 2008 at 05:27:39PM -0700, Ivan Kohler wrote:
> severity 477741 important
> tags 477741 help
> thanks
>
> FTBFS appears to be specific to sparc architecture.
>
> I tried to log onto sperger.debian.org and at least look further into
> the problem, but neither debhelper nor libmodule-build-perl are
> installed. I'll email debian-admin@ and ask.
I guess you forgot to switch to the sid chroot...
> > > t/purdy.......dubious
> > > Test returned status 0 (wstat 10, 0xa)
> > > DIED. FAILED tests 2-101
This is an aligment problem triggering a bus error.
(gdb) run -Iblib/lib -Iblib/arch t/purdy.t
Starting program: /usr/bin/perl -Iblib/lib -Iblib/arch t/purdy.t
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
(no debugging symbols found)
(no debugging symbols found)
1..101
[New Thread 0xf7bd66b0 (LWP 19114)]
ok 1 - use Authen::DecHpwd;
Program received signal SIGBUS, Bus error.
[Switching to Thread 0xf7bd66b0 (LWP 19114)]
0xf7879ac0 in PQMUL_R2 (U=0xffa1b6e4, Y=0xffa1b6e4, result=0xffa1b6ec) at lib/Authen/DecHpwd.xs:595
595 PQADD_R0(&part1, &stack, result); /* Whole thing */
(gdb) bt
#0 0xf7879ac0 in PQMUL_R2 (U=0xffa1b6e4, Y=0xffa1b6e4, result=0xffa1b6ec) at lib/Authen/DecHpwd.xs:595
#1 0xf787973c in PQEXP_R3 (U=0xffa1b910, n=224, result=0xffa1b7f8) at lib/Authen/DecHpwd.xs:544
#2 0xf787903c in Purdy (U=0xffa1b910) at lib/Authen/DecHpwd.xs:483
#3 0xf7878d58 in VMS_lgihpwd (output=0xffa1b910, password=0x14f698 "eviscerate", password_len=10,
encrypt=1, salt=50917, username=0xffa1b870 "unclasping ", username_len=12)
at lib/Authen/DecHpwd.xs:437
#4 0xf787a484 in XS_Authen__DecHpwd_lgi_hpwd (my_perl=0x24008, cv=0x127984) at lib/Authen/DecHpwd.xs:646
#5 0xf7f02b04 in Perl_pp_entersub () from /usr/lib/libperl.so.5.8
#6 0xf7f011ac in Perl_runops_standard () from /usr/lib/libperl.so.5.8
#7 0xf7ea24b4 in perl_run () from /usr/lib/libperl.so.5.8
#8 0x0001143c in main ()
It's using the ul64 version of PQADD_R0 from DecHpwd.xs:326,
assigning to *result which is unaligned.
#define PQADD_R0(U, Y, result) \
{ \
*(ul64*)(result) = *(ul64*)(U) + *(ul64*)(Y); \
if (~*(ul64*)(U) < *(ul64*)(Y)) do { \
*(ul64*)(result) += (ul64)A; \
} while (*(ul64*)(result) < (ul64)A); \
}
Patching it to use the !ul64 version instead makes the tests pass, FWIW.
(BTW, debian/rules needs something like
$(PERL) Build.PL installdirs=vendor config=optimize="$(CFLAGS)"
to honour DEB_BUILD_OPTIONS=noopt.)
Cheers,
--
Niko Tyni ntyni@debian.org
Reply to: