[klibc] klibc 2.0 release

maximilian attems max at stro.at
Thu May 31 09:35:55 PDT 2012

The stdio klibc branch got merged into klibc properly,
meaning the I/O being buffered. klibc gained with it
support for several stream functions. This massive work
got authored by hpa.

ipconfig saw several note worthy enhancement allowing the
generation of a proper lease file.

kinit added fs mount according to /etc/fstab or bootparam.

Plus several arch fixes for the usual suspects: alpha, i386, ia64
m68k, powerpc, s390x and sh4.

Many more fixes, see belows shortlog for the looong story.
A bit delayed due to kernel.org breakin, but development is
kicking in again. The 2.0 branch saw boot time tests and
deployments in Debian, so we are quite certain it should
work for the most out of you, if not please let us know.


git repository:

git web:

irc channel on freenode:

--- Shortlog since klibc 1.5.25 ---

Aurelien Jarno (1):
      [klibc] s390x: klcc searches for include in the wrong path

Curt Wohlgemuth (3):
      [klibc] kinit: Add ability to mount filesystems via /etc/fstab or cmdline
      [klibc] kinit: Create block device for mount commands if needed.
      [klibc] kinit: Parse mount command options properly.

Greg Thelen (3):
      [klibc] ipconfig: check poll() return value
      [klibc] vsscanf: remove unused variables
      [klibc] nfsmount: clean up dummypmap compiler warning

H. Peter Anvin (57):
      [klibc] Initial implementation of buffered stdio
      [klibc] Correct fdopen()
      [klibc] Add ungetc()
      [klibc] Saner definition for BUFSIZ
      [klibc] Whitespace fix
      Merge branch 'master' into stdio
      [klibc] ia64: remove obsolete <klibc/archsys.h>
      [klibc] Simple stdio test
      [klibc] Replace the stdio offset with a stdio data pointer
      [klibc] Bypass stdio buffering for large I/O
      [klibc] Change OPEN_MAX to 256
      [klibc] Remove stdio internals from <stdio.h>
      [klibc] Remove unused fputc implementation
      [klibc] Make __parse_open_mode handle "e" for O_CLOEXEC
      [klibc] Move _IO_file_flags from stdio.h to stdioint.h
      [klibc] Add zalloc() function
      [klibc] Restructure the FILE object to allow simple inlines
      [klibc] Fix confusion between _IONBF and _IOFBF
      [klibc] Make byte counters in stdio unsigned
      [klibc] fflush: discard input data
      [klibc] fseek: report error on fflush() failure
      [klibc] f[d]open: don't bother setting input buffer
      [klibc] Add rewind() function
      [klibc] fgets: shave a few bytes off
      [klibc] fgets: remove obsolete comment
      [klibc] Optimize fgetc() to read the buffer directly
      [klibc] Fix the zapping of unused input on output operation
      [klibc] stdio: fix the handling of the eof and error flags on fseek
      [klibc] isatty: allow errno to be set
      [klibc] fgetc: shave off a few bytes
      [klibc] f*open: support the glibc 'x' flag
      [klibc] Update the documentation about how to get headers
      [klibc] Kbuild: build subdirectories first
      [klibc] Handle legacy sigsuspend() correctly
      [klibc] If we need mmap2(), it doesn't matter if NO_MMU
      [klibc] Fold fopen and fdopen
      [klibc] fflush: only flush output streams for fflush(NULL)
      [klibc] readdir(): use _KLIBC_BUFSIZ to size the dirent buffer
      [klibc] Add fdopendir(), fix dirfd()
      [klibc] Don't set the file pointer to -1 if unseekable
      [klibc] Change stdio prefix from _io_ to _IO_
      [klibc] Define fseeko and ftello as macros
      [klibc] stdio: don't cache the file pointer
      [klibc] fseek: remove redundant clearing of obytes
      klibc: fseek: use >= 0 to test for lseek() success
      [klibc] stdio: don't force stdin and stdout to line buffered
      [klibc] Use RT signal system calls on MIPS
      [klibc] fwrite: fix the implementation of _IONBF
      [klibc] SYSCALLS.def: add openat() on 64-bit platforms
      [klibc] Rename llseek.c to lseek.c
      [klibc] lseek: give gcc a little optimization hint
      [klibc] Add trivial lseek test
      [klibc] Add dup3() system call
      [klibc] Add pipe2() system call
      [klibc] Move SEEK_ constants to a common header file
      [klibc] sys/sysmacros.h: use __static_inline
      [klibc] sys/sysmacros.h: define major, minor, and makedev as macros

      [klibc] ipconfig: Write $UPTIME as uptime
      [klibc] ipconfig: Write $DHCPLEASETIME as dhcp-lease-time
      [klibc] ipconfig: Write $PROTO as configuration protocol
      [klibc] ipconfig: A bit more robust bootp/dhcp option parsing
      [klibc] ipconfig: Write $DOMAINSEARCH as domain-search
      [klibc] ipconfig: Append padding if DHCP packet length < 300 octets

Kees Cook (1):
      [klibc] run-init: add drop_capabilities support

Luck, Tony (1):
      [klibc] ia64: Replace pipe.c with pipe.S

Maciej Żenczykowski (1):
      [klibc] include: [sys/types.h] -> linux/types.h and __aligned_u64

Sam Ravnborg (1):
      [klibc] kbuild: sync with kernel 3.4-rc7

Thorsten Glaser (8):
      [klibc] Align <sys/types.h> with the kernel headers
      [klibc] Fix missing prototypes for ctype inline functions
      [klibc] Use GCC definitions for size_t, ssize_t, ptrdiff_t
      [klibc] Fix m68k support
      [klibc] unbreak powerpc builds
      [klibc] sigsuspend: unbreak s390x
      [klibc] sh4: switch to RT signals
      [klibc] alpha: fix signal handler setup on DEC Alpha

maximilian attems (36):
      [klibc] 1.5.25 released, next version is 1.5.26
      [klibc] include: [sys/socket.h] Fix bind and connect attributes
      [klibc] include: [sched.h] fix POSIX conformance
      [klibc] include: [sched.h] misssing pid_t definition
      [klibc] include: [mntent.h] Add MNTTYPE_SWAP definition
      Merge remote-tracking branch 'origin/stdio' into maks/stdio
      [klibc] f{open,read,write}: Retire the older sources
      [klibc] stdio: Add feof()
      [klibc] stdio: fix ferror()
      [klibc] Next version is 2.0
      [klibc] include: [sys/stat.h] add mkfifo declaration
      [klibc] include: [stdio.h] Add getc_unlocked
      [klibc] include: [stdio.h] Add fileno() declaration
      [klibc] fflush: add missing parenthesis
      [klibc] include: [sys/file.h] define flock(2) there
      [klibc] include: [limits.h] define OPEN_MAX
      [klibc] kbuild: add static to prototypes
      [klibc] Makefile: drop -2.6 suffix to linux source pathes
      Merge branch 'master' into stdio
      [klibc] Fix help target for headers_install path
      [klibc] mips: define O_CLOEXEC
      [klibc] arm: use rt signals
      [klibc] Makefile: help document V=2 switch
      [klibc] klcc: pass down -v
      [klibc] tests: Add simple sscanf check
      [klibc] ipconfig: Use /run/ directory for script file
      [klibc] include: [sys/socket.h] define SOMAXCONN
      [klibc] include: [sys/elfcommon.h] define STN_UNDEF
      [klibc] klcc.1: document -nostdinc
      [klibc] include: [stdio.h] add clearerr() prototype
      [klibc] include: [limits.h] define SSIZE_MAX
      [klibc] Add faccessat() system call
      [klibc] README update arch status
      [klibc] kinit: Fix capabilities alternate read/write io without flush
      [klibc] capabilities: Use fflush() instead of fseek()
      [klibc] include: [limits.h] define MB_LEN_MAX

More information about the klibc mailing list