Your message dated Sat, 01 Apr 2006 04:32:07 -0800
with message-id <[EMAIL PROTECTED]>
and subject line Bug#351875: fixed in dietlibc 0.29-10
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: dietlibc-dev
Version: 0.29-8
Severity: normal

Herbert Poetzl reported the following problem with dietlibc on
hppa/parisc machines:

syscalls.s/_llseek.S  defines the llseek function as
direct branch/call to the unified syscall wrapper
(which I think is wrong too, but to that later)

now, on hppa/parisc the calling convention uses r26-r23
for the first four arguments, the rest is spilled onto
the stack. however the Linux kernel passes the first 
six arguments in the registers r26-r21.

as the llseek syscall takes five arguments, this leads
to random arguments for the r22 (whence argument) and
strange failures like this:

_llseek(3, 0, 0xc00202d0, 0x4047f444 /* SEEK_??? */) = 
        -1 EINVAL (Invalid argument)

with the following test code

int     main(int argc, char *argv[])
{
        int fd, ret;
        loff_t lpos;
        char *name = argv[1];

        fd = open(name, O_RDONLY);
        ret = llseek(fd, 0, 0, &lpos, SEEK_END);
        printf("file %s has length %lld\n", name, (long long)lpos);
        close(fd);
        exit(0);        
}

a dirty hack (just to verify that this is true) is
to add the following:

  llseek:
+ ldw -0x34(%sp), %r22
  syscall(_llseek,_llseek)

which will load the r22 register with the proper value
from the stack ...


another issue I found for parisc/hppa is that
parisc/unified.S does

__unified_syscall:
        be,l 0x100(%sr2, %r0), %sr0, %r31
        nop

while the linux kernel says:

arch/parisc/kernel/signal.c

 * We need to be able to restore the syscall arguments (r21-r26) to
 * restart syscalls.  Thus, the syscall path should save them in the
 * pt_regs structure (it's okay to do so since they are caller-save
 * registers).  As noted below, the syscall number gets restored for
 * us due to the magic of delayed branching.

                /* Hooray for delayed branching.  We don't
                   have to restore %r20 (the system call
                   number) because it gets loaded in the delay
                   slot of the branch external instruction. */

so the following seems still to be true:

        The system call number MUST ALWAYS be loaded in the delay
        slot of the ble instruction, or restarting system calls
        WILL NOT WORK.

a possible 'workaround' would be to use some other
register and just 'copy' the syscall number to r20
in the delay slot, also on PIC code r19 has to be
saved as it will be clobberd


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-1-686-smp
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

dietlibc-dev depends on no packages.

Versions of packages dietlibc-dev recommends:
pn  dietlibc                      <none>     (no description available)

-- no debconf information


--- End Message ---
--- Begin Message ---
Source: dietlibc
Source-Version: 0.29-10

We believe that the bug you reported is fixed in the latest version of
dietlibc, which is due to be installed in the Debian FTP archive:

dietlibc-doc_0.29-10_all.deb
  to pool/main/d/dietlibc/dietlibc-doc_0.29-10_all.deb
dietlibc_0.29-10.diff.gz
  to pool/main/d/dietlibc/dietlibc_0.29-10.diff.gz
dietlibc_0.29-10.dsc
  to pool/main/d/dietlibc/dietlibc_0.29-10.dsc



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Gerrit Pape <[EMAIL PROTECTED]> (supplier of updated dietlibc package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Sat,  1 Apr 2006 10:31:30 +0000
Source: dietlibc
Binary: dietlibc-doc dietlibc dietlibc-dev
Architecture: all source
Version: 0.29-10
Distribution: unstable
Urgency: low
Maintainer: Gerrit Pape <[EMAIL PROTECTED]>
Changed-By: Gerrit Pape <[EMAIL PROTECTED]>
Description: 
 dietlibc   - diet libc shared libraries - a libc optimized for small size
 dietlibc-dev - diet libc - a libc optimized for small size
 dietlibc-doc - diet libc documentation - a libc optimized for small size
Closes: 351875 360007
Changes: 
 dietlibc (0.29-10) unstable; urgency=low
 .
   * debian/diff/patch-diet-parisc-fix06.diff: new; fixes issues with the
     parisc syscalls that all contain 5 or 6 arguments (thx Herbert Poetzl,
     Micah Anderson, closes: #351875, #360007).
   * debian/diff/parisc-sendto-recvfrom.diff: remove; obsolete.
Files: 
 bfbca77ad4b4bf2d4f3a9c157e317bf7 558 devel optional dietlibc_0.29-10.dsc
 c6f4d1be33455b3762c6f5b11e043ffc 58770 devel optional dietlibc_0.29-10.diff.gz
 13baf66284049b69ed14e0af27ec8e95 47342 doc optional 
dietlibc-doc_0.29-10_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQFELm7SGJoyQbxwpv8RAjihAKCi7CmunzHK2eRNW4A+qUBDdan+lgCeNWlZ
rUMlY7GAx5v1Sg23IQeYaGQ=
=q+TL
-----END PGP SIGNATURE-----


--- End Message ---

Reply via email to