Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Inofficial git-cvs clone of + some changes
C Assembly Makefile Other
branch: master

Merge pull request #6 from arsv/master

ppoll, syscall for arm/mips and some minor fixes
latest commit 2c8e5ff730
@ensc authored
Failed to load latest commit information.
alpha cvsimport
arm cvsimport
contrib remove a few warnings
dynlinker Support for dynamic PAGE_SIZE
examples forgot to remove two files.
i386 cvsimport
ia64 cvsimport
include mips: SOCK_NONBLOCK is 0200 (O_NONBLOCK is 080)
lib ppoll()
libcompat arm: syscall()
libcruft mkstemp: open file with O_LARGEFILE
libcrypt gcc 4 no longer guarantees that two static arrays declared after each
libdl ... missed to remove useless code...
liblatin1 remove several warnings (Johannes Stezenbach)
libm ceil(3): imported patch with ceil(3) from OpenEmbedded
libpthread gcc is too picky
libregex remove compiler warnings
librpc cvsimport
libshell fix getcwd, ftw, ftw64, dirname (Ilja van Sprundel)
libstdio cvsimport
libugly Merge branch 'origin' into ensc/0.33
mips mips: fix ELFINFO code in stackgap
mipsel remove bizarre optimization flags from mips+mipsel
parisc cvsimport
ppc cvsimport
ppc64 cvsimport
profiling remove warnings from profiling code
s390 cvsimport
s390x cvsimport
sparc cvsimport
sparc64 cvsimport
syscalls.s ppoll()
test tests/sigsetjmp: moved common tests out of specific branches
x32 cvsimport
x86_64 cvsimport
.cvsignore add bin-x32
.gitignore gitignore: initial checkin
AUTHOR don't define EXIT_SUCCESS and EXIT_FAILURE twice in stdlib.h. Thanks,
BUGS update bug notification procedure
CAVEAT files where missing (?)
CHANGES add implementation of hsearch and friends
COPYING oops, old version of the GPL with wrong address of the FSF (and it was
FAQ Massive ARM changes from Enrico Scholz
Makefile fixed ARM uname regexp for QEMU image
PORTING add a few more auxvec elf #defines
README clarify that people can also choose GPL 3 of they want to, support for stack gap (enable in dietfeatures.h)
SECURITY final touch-ups
TODO make gnu grep compile
binshstr.h even more bit twiddling
diet.1 read optimizer cflags for "diet -Os [gcc]" from ~/.diet/[gcc]
diet.c Merge branch 'origin' into ensc/0.33
dietdirent.h Support for dynamic PAGE_SIZE
dietdns.h move ugly internal dns prototype to dietdns.h and rework DNS timeout
dietelfinfo.h Support for dynamic PAGE_SIZE
dietfeatures.h cvsimport
dieticonv.h add UTF-16 (so we can encode SMB file names to Windoze)
dietlibm.h Lots of fixes and patches from Markus Oberhumer.
dietlocale.h HP-PA fixes (Micah Anderson, Hubert Poetzl)
dietpagesize.h Support for dynamic PAGE_SIZE
dietstdio.h use vsyscall for time on x86_64 instead of wrapping gettimeofday (Ni…
dietstring.h several fixes from Enrico Scholz (printf, string routines on big end…
dietuglyweaks.h support clang by adding -fno-integrated-as
dietunaligned.h dietunaligned: initial checkin
dietwarning.h Implemented linker warnings! Woohoo!
dyn_start.c fix TLS setup code
dyn_stop.c Some minor fixes. Massive ARM changes from Enrico Scholz
internal.h change gettimeofday vsyscall to use the vdso
ldso.c support clang by adding -fno-integrated-as
linuxnet.h add eventfd, inotify_init1, epoll_init1, accept4, recvmmsg, sendmmsg
longlong.h update longlong.h from current glibc to make mips compile again
parselib.h use vsyscall for time on x86_64 instead of wrapping gettimeofday (Ni…
syscalls.h make stat and readdir work for x32
t.c add getcontext and setcontext for i386 and x86_64 grep portability fixes (Gunnar Ritter)


  The system library is a challenge to all those using the computer to
  write their own faster and better routines or to bow to the superior
  strength and skill of a true master.

diet libc to statically link programs that don't need all the bloat
from glibc.

malloc, printf and scanf contributed from Olaf Dreesen.

To compile:

	$ make

make should compile the diet libc itself.

When make is done, it will have created dietlibc.a in bin-i386 (or
bin-ppc, bin-alpha, bin-sparc, bin-ppc or bin-arm, depending on your
architecture).  In that directory you will also find a program called
"diet", which you need to copy in a directory in your $PATH:

	# install bin-i386/diet /usr/local/bin

Then you can compile programs by prepending diet to the command line,

	$ diet gcc -s -Os -pipe -o t t.c

diet is cross-compiler friendly and can also be used like this:

	$ diet sparc-linux-gcc -o t t.c

diet will then link against dietlibc.a from bin-sparc, of course.
diet comes with a man page (diet.1), which you can copy to an
appropriate location, too:

	# cp diet.1 /usr/local/man/man1

After you compiled the diet libc successfully, I invite you to check out
the embedded utils (  The embedded utils
are small replacements for common utilities like mv, chown, ls, and even
a small tar that can extract tar files.

The license for the diet libc is the GNU General Public License, version
2 (as included in the file COPYING) or later.
Something went wrong with that request. Please try again.