klibc.git
7 years agogzip: Fix silent fallback to decompression
Ben Hutchings [Fri, 18 Sep 2015 19:59:17 +0000 (21:59 +0200)]
gzip: Fix silent fallback to decompression

If the gzip utilities are built without support for compression,
they will always attempt to carry out decompression even if the
command name and options don't imply that.  Instead they should
fail with an explicit error in this case.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Name gzip-fix-silent-fallback-to-decompression.patch

7 years agoppc64: fix struct stat
Aurelien Jarno [Sat, 25 Apr 2015 12:16:16 +0000 (14:16 +0200)]
ppc64: fix struct stat

On ppc64 the struct stat defined by klibc matches the kernel one.
However it contains implicit padding before the st_rdev field due to the
64-bit alignement. For internal reasons, klibc defines st_rdev as a pair
of 32-bit values (using the __stdev64 macro). They only need to be
32-bit aligned and as a consequence st->st_rdev is incorrectly defined.

The solution is to add an explicit padding in the structure. This fixes
the resume binary on ppc64 BE and LE, and probably other things.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Gbp-Pq: Name klibc-ppc64-fix-struct-stat.patch

7 years agoAdd pread and pwrite 32bit syscall wrappers for parisc
Helge Deller [Wed, 23 Apr 2014 20:52:53 +0000 (22:52 +0200)]
Add pread and pwrite 32bit syscall wrappers for parisc

On the hppa arch (32bit userspace and 32 or 64bit kernel), the fstype
program fails to detect the filesystem.  The reason for this failure
is, that fstype calls the pread() syscall, which has on some
architectures with 32bit userspace a different calling syntax.  I
noticed this bug on hppa, but I assume s390 (32bit) and others might
run into similiar issues.

Signed-off-by: Helge Deller <deller@gmx.de>
Gbp-Pq: Name klibc-add-pread-and-pwrite-32bit-syscall-wrappers-for-parisc.patch

7 years agodash: mkbuiltins: Fix sort order harder
Ben Hutchings [Wed, 9 Sep 2015 01:12:40 +0000 (02:12 +0100)]
dash: mkbuiltins: Fix sort order harder

LC_COLLATE can be overriden by LC_ALL, so set LC_ALL instead when
running sort.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Name dash-mkbuiltins-fix-sort-order-harder.patch

7 years agoInstall headers with consistent mode
Ben Hutchings [Wed, 9 Sep 2015 00:24:56 +0000 (01:24 +0100)]
Install headers with consistent mode

Currently we ensure the installed headers are readable by everyone,
but write permissions will depend on the current umask.  Turn off the
group and other writable bits to ensure consistent results.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Name install-headers-with-consistent-mode.patch

7 years agoadd-mips64-support-arch-mips64-specific
Dejan Latinovic [Fri, 6 Mar 2015 00:51:45 +0000 (16:51 -0800)]
add-mips64-support-arch-mips64-specific

Description: Adding mips64 specific chagnes.
Modeled on mips 32 and adapted for 64 bit ABI.
 - MCONFIG:  using existing klibc.ld scrpit
 - crt0.S:   adapted gp initialization
 - setjmp.S: do not save floating-point state

Gbp-Pq: Name 0003-add-mips64-support-arch-mips64-specific.patch

7 years agoadd-mips64-support-arch-mips32
Dejan Latinovic [Fri, 6 Mar 2015 00:51:44 +0000 (16:51 -0800)]
add-mips64-support-arch-mips32

Description: Add mips64 support, using existing mips32 code.
 - using mips32 assembler source files: pipe.S vfork.S syscall.S
 - sysstub.ph: copied over from klibc/arch/mips

Gbp-Pq: Name 0002-add-mips64-support-arch-mips32.patch

7 years agoadd-mips64-support-headers
Dejan Latinovic [Fri, 6 Mar 2015 00:51:44 +0000 (16:51 -0800)]
add-mips64-support-headers

Description: Added header files for mips64.
Modeled on mips 32 header files and adapted for 64 bit ABI.
 - archsetjmp.h: do not save floating-point state
 - asm.h:        Symbolic register names for 64 bit ABI

Gbp-Pq: Name 0001-add-mips64-support-headers.patch

7 years agoMIPS: Update archfcntl.h
Ben Hutchings [Sun, 5 Oct 2014 00:08:21 +0000 (01:08 +0100)]
MIPS: Update archfcntl.h

Update usr/include/arch/mips/archfcntl.h from kernel headers:

- Add definitions of O_PATH, O_TMPFILE
- Update value of O_SYNC to include __O_SYNC
- Add definitions of F_{SET,GET}OWN_EX, F_GETOWNER_UIDS,
  F_OFD_{GETLK,SETLK,SETLKW}, F_OWNER_{TID,PID,PGRP}

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Name mips-update-archfcntl-h.patch

7 years agomount: Implement -o defaults
Ben Hutchings [Sat, 4 Oct 2014 15:32:39 +0000 (16:32 +0100)]
mount: Implement -o defaults

This is needed to support mounting non-root filesystems in
initramfs-tools.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Name mount-implement-o-defaults.patch

7 years agoppc64: ELFv2: Load TOC value in system call stub
Mauricio Faria de Oliveira [Tue, 9 Sep 2014 22:17:19 +0000 (15:17 -0700)]
ppc64: ELFv2: Load TOC value in system call stub

This fixes a segmentation fault in the system call's error handling path with
dynamically-linked binaries on PowerPC64 little endian.  The system call stub
wasn't loading up r2 with the appropriate TOC value in its global entry point.

The r2 setup code comes from the FUNC_START macro in gcc [1] and an equivalent
one can also be found in the LOCALENTRY macro in glibc [2].

On the ELFv2 ABI (see [1]):
 - The global entry point is expected to load up r2 with the appropriate TOC
   value for this function.
 - The local entry point expects r2 to be set up to the current TOC.

The problem happened with dynamically-linked binaries because:
 - the system call is an indirect call (via global entry point) from the binary
   to the shared library, landing in the syscall stub  (which didn't load up r2
   with the TOC of the shared library)
 - its branch to __syscall_error is a direct call (via local entry point) within
   the shared library, landing in the function (which expects r2 to be set up to
   that TOC)
 - when the function attempts to store errno (in an address relative to the TOC),
   that address incorrectly pointed to a read-only segment -- segmentation fault.

The problem didn't happen with statically-linked binaries because the TOC value
wasn't different on that case.

Thanks and credits to Alan Modra and Ulrich Weigand, for helping with this and
pointing out the solution.

[1] https://gcc.gnu.org/ml/gcc-patches/2013-11/msg01141.html
[2] https://www.sourceware.org/ml/libc-alpha/2013-11/msg00315.html

Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Gbp-Pq: Name ppc64el-load-toc-syscall-stub.patch

7 years agomultiarch-include-path
maximilian attems [Sat, 30 Dec 2017 22:09:36 +0000 (22:09 +0000)]
multiarch-include-path

Gbp-Pq: Name multiarch-include-path

7 years agoFix klibc Debian specific build trouble
Ben Hutchings [Sun, 14 Mar 2010 18:41:56 +0000 (18:41 +0000)]
Fix klibc Debian specific build trouble

Simply remove the headers_install invocation and rely on linux-libc-dev.

With these changes:

(the extra chmod was needed to allow for umask > 022) I could compile,
link and run this program:

#include <unistd.h>

int main(void)
{
write(1, "Hello world\n", 12);
return 0;
}

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
[ added multi arch support ]
Signed-off-by: Colin Watson <cjwatson@ubuntu.com>
Signed-off-by: maximilian attems <max@stro.at>
[ fixed cross building ]
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Gbp-Pq: Name klibc-linux-libc-dev

7 years agoklibc (2.0.4-11) unstable; urgency=medium
Ben Hutchings [Sat, 30 Dec 2017 22:09:36 +0000 (22:09 +0000)]
klibc (2.0.4-11) unstable; urgency=medium

  * Apply i386 syscall changes from upstream (fixes FTBFS):
    - [klibc] i386: remove special handling of socketcall
    - [klibc] Add accept4(), handle fallback from accept() to accept4()

[dgit import unpatched klibc 2.0.4-11]

7 years agoImport klibc_2.0.4-11.debian.tar.xz
Ben Hutchings [Sat, 30 Dec 2017 22:09:36 +0000 (22:09 +0000)]
Import klibc_2.0.4-11.debian.tar.xz

[dgit import tarball klibc 2.0.4-11 klibc_2.0.4-11.debian.tar.xz]

11 years agoImport klibc_2.0.4.orig.tar.gz
maximilian attems [Thu, 11 Sep 2014 19:23:25 +0000 (20:23 +0100)]
Import klibc_2.0.4.orig.tar.gz

[dgit import orig klibc_2.0.4.orig.tar.gz]