Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: does anyone else get a core dump from ldconfig when booting amd64-current?



On Tue, Jan 27, 2009 at 12:24:15PM -0500, Christos Zoulas wrote:
> On Jan 27,  5:41pm, njoly%pasteur.fr@localhost (Nicolas Joly) wrote:
> -- Subject: Re: does anyone else get a core dump from ldconfig when booting a
> 
> | On Sun, Jan 25, 2009 at 02:28:03AM +0000, Christos Zoulas wrote:
> | > In article <20090125012631.GA84416%medusa.sis.pasteur.fr@localhost>,
> | > Nicolas Joly  <njoly%pasteur.fr@localhost> wrote:
> | > >On Sun, Jan 25, 2009 at 12:45:14AM +0000, Christos Zoulas wrote:
> | [...]
> | > >njoly@lanfeust [~]> ktrace -di ./dummy
> | > >zsh: bus error (core dumped)  ktrace -di ./dummy
> | > >[...]
> | > >   521      1 dummy    CALL  netbsd32_open(0xffffd490,0,0)
> | > >   521      1 dummy    NAMI  "/emul/netbsd32/usr/lib/i386/libc.so.12"
> | > >   521      1 dummy    NAMI  "/usr/lib/i386/libc.so.12"
> | > >   521      1 dummy    RET   netbsd32_open 3
> | > >   521      1 dummy    CALL  netbsd32___fstat50(3,0xffffd3d0)
> | > >   521      1 dummy    RET   netbsd32___fstat50 0
> | > >   521      1 dummy    CALL  netbsd32_close(3)
> | > >   521      1 dummy    RET   netbsd32_close 0
> | > >   521      1 dummy    PSIG  SIGBUS SIG_DFL: code=SI_USER sent by
> | > >pid=-67194868, uid=0)
> | > >   521      1 dummy    NAMI  "dummy.core"
> | > 
> | > Yes, I saw this. My theory is that the information that it gets from
> | > stat is broken, and it does not load libc, but instead closes the fd.
> | > I found the bug in the stat conversion and I committed a fix but I
> | > doubt that this is the problem.
> | 
> | This is an alignment problem, with netbsd32_{timespec,timeval}
> | structures ... Looks like the amd64 kernel use 64bit aligment, while
> | `cc -m32' compiled programs expect 32bit aligned objects. The kernel
> | structure is then larger than the userland expected one. Kaboom !!!
> | 
> | Not sure if this is a correct fix, but packing the netbsd32 structures
> | make all of this work again.
> 
> I don't think that there is a cleaner way.
> 
> We could declare the structure as
>       struct netbsd32_timeval  {
>               int32_t tv_hsec;
>               int32_t tv_lsec;
>               int32_t tv_usec;
>       }
> 
> and deal with hsec and lsec manually. Is that better?

Not for me. I find it much harder to follow ...

-- 
Nicolas Joly

Biological Software and Databanks.
Institut Pasteur, Paris.


Home | Main Index | Thread Index | Old Index