This repository has been archived by the owner on Sep 5, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 25
/
CHANGES
1464 lines (1398 loc) · 68.1 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
0.35:
fix pic for x32
SECURITY: putenv removes duplicate entries from malicious environments (Daniel Hodson)
SECURITY: fix regex stack corruption (Thorsten Glaser)
printf("%#.0g", 1.0) -> "1." (Christopher Wellons)
rename WANT_DYNAMIC to WANT_CTOR, add WANT_EXCEPTIONS to dietfeatures.h
libc can't call rand() and change the seed, so introduce rand_i (Christopher Wellons)
0.34:
move stpcpy from libcompat to lib as it is now part of POSIX (Enrico Scholz)
add linux/seccomp.h linux/prctl.h linux/audit.h linux/elf-em.h linux/filter.h
SECURITY: make sure all assembler files mark the stack non-executable so
the kernel can map the stack of the whole program as non-executable
support compiling with clang (no cross compiling yet, and the resulting
binary code is significantly larger than with gcc)
implement experimental C11 threads
fix fgets (Andreas Förster)
add eventfd, inotify_init1, epoll_init1, accept4, recvmmsg, sendmmsg
add dup3, fanotify_init, fanotify_mark, signalfd4, timerfd_settime
add timerfd_gettime, setns, memfd_create, getrandom, syncfs
add preadv, pwritev
add getcontext, setcontext, makecontext, swapcontext (i386 and x86_64 only for now)
add implementation of hsearch and friends
add strverscmp (like GNU version but without special treatment for leading zeros)
fix cuserid
SECURITY: fix integer overflow in scandir/scandir64 if your selector
leaves more than 1 billion filenames
fix memory leaks in out of memory error paths in regcomp and librpc
udp and tcp server code (found by the llvm static analyzer)
fix returning more than one match in regexec (Stefan Wagner)
add getentropy, lazy arc4random clone (OpenBSD)
define uintptr_t using __UINTPTR_TYPE__ (32-bit platforms may need a make clean)
move strnlen from libcompat into libc (it's POSIX now)
fix dn_expand argument signedness
add explicit_bzero, timingsafe_bcmp and timingsafe_memcmp (OpenBSD APIs useful for crypto)
i386 switched from mmap to mmap2. glibc has been doing this for ages,
and we now follow suit (without fallback to mmap), because
seccomp-filter can't inspect mmap arguments, so this helps security.
plumbing to get preliminary PIE support for x86_64
don't cause unaligned memory accesses in stackgap for the random from auxvec (Giorgio)
implement malloc case for realpath
use __builtin_mul_overflow in calloc if gcc is recent enough
cleanup s390 syscalls (Christian Seiler)
various TLS and pthread fixes (Christian Seiler)
add sha256 and sha512 support in crypt(3)
promote stpncpy from libcompat to main libc as the sha512 code uses it
add x86_64 memccpy, mempcpy
import Debian bugfixes (Christian Seiler)
setjmp/longjmp for powerpcspe (Roland Stigge)
add softfpu from glibc for powerpcspe (need to pass SOFTFPU=1 to make)
ppc64 little endian port (Christian Seiler)
mips64 little endian port (Christian Seiler)
aarch64 port (Christian Seiler)
parisc fixes (Gerrit Pape, John David Anglin, Helge Deller, Christian Seiler)
fix longjmp on mobile armv7 (Christian Seiler)
alpha fixes (Christian Seiler, Thorsten Glaser)
powerpc fixes (Gerrit Pape, Christian Seiler)
sparc64 fixes (Christian Seiler)
update setjmp/longjmp on s390x to use 64-bit ABI (Christian Seiler)
SECURITY: x32 fixes: one of them could lead to memory corruption because struct stat was declared too short (Christian Seiler)
add really crappy pthread_rwclock implementation for openssl 1.1
move getrandom and getentropy declarations to <sys/random.h> to match glibc 2.25
add secure_getenv
mempcpy -> memcpy in sha256crypt and sha512crypt
prototype for getpagesize was wrong (return was size_t, should be int)
split off stackgap-g.o, don't compile valgrind stuff into stackgap.o,
diet chooses depending on presence of -g
add mlock2
prefer gcc4+ __CAS implementation to our own on ARM, and fix ours (Philip Zander)
move _POSIX_MAPPED_FILES to unistd.h
accept "x" in fopen mode
0.33:
first stab at getting TLS to work in actual threads
use fs: to find current thread on x86_64
add fallocate, posix_fallocate
work around Ubuntu who added -fstack-protector to their gcc, which
added stack protector code to the function from the dietlibc startup
code that sets up the registers and segments used by the stack
protector mechanism.
fix sys/personality.h (Mathias Krause)
update sys/ptrace.h (Nikola Vladov)
fix fork+pthread closing fd 0 (Tim München)
finally add stdout tty detection and turn off linewise buffering if !tty
enlarge dev_t to 32-bit on i386, arm, sparc, s390 (Pascal Terjan)
update sys/stat.h to include nsec and enlarge dev_t
add WANT_VALGRIND_SUPPORT in dietfeatures.h. When #defined, the
startup code will check if the program is running under valgrind,
and if it is, the SIMD optimized string routines will switch back to
a slower version that does not generate valgrind false positives.
add WANT_LLMNR in dietfeatures.h. Now you can do "ping windowsbox"
and it works if that box runs win7 and trusts the LAN; the down side
is that LLMNR does not like the .local prefix, so DNS does zeroconf
lookup for unqualified names now, too.
add WANT_GNU_STARTUP_BLOAT in dietfeatures.h to support
program_invocation_short_name and program_invocation_name
add INT*_MIN, INT*_MAX, UINT*_MAX, etc to stdint.h
remove const from stdsignal prototype to agree with standard
only count %[] conversions in *scanf if they matched at least one char
(Indan Zupancic)
make sure __sc_nr_cpus does not dump core if /proc/cpuinfo is larger
than 2048 bytes (Bela Lubkin)
use vsyscall for time on x86_64 instead of wrapping gettimeofday (Nikola Vladov)
CPU affinity support (Indan Zupancic)
lots of ARM fixes (Enrico Scholz)
make sure strftime does not write more than max bytes when writing \0
(Tobias S. Josefowitz)
change gettimeofday vsyscall to use the vdso
add WANT_HOSTS_GIVEUP_EARLY in dietfeatures.h
various build fixes, add sys/atomic.h and the __CAS function
redo nice with get/setpriority as glibc does (Thierry Vignaud)
add fdopendir
add openat and friends
srand(0) made rand() return a series of 0 instead of random data
(https://banu.com/blog/42/openbsd-bug-in-the-random-function/)
add SO_RCVBUFFORCE and SO_SNDBUFFORCE
first stab at x32 support
0.32:
add mbsinit, mbrlen, mbtowc, wctomb, mbrtowc, wcrtomb, wcwidth
add btowc, wctype, iswctype
add some wide char routines
add statvfs, fstatvfs
add some amd64 asm string routines
add some constants for inotify
several fixes from Enrico Scholz (printf, string routines on big endian)
add some more syscalls
some minor cleanups
shrink some string functions (Kris Katterjohn)
prepare x86_64 for syscall numbers > 255
fix unaligned memcpy if WANT_SMALL_STRING_ROUTINES is not defined
(Enrico Scholz)
fix utmp, add utmpx support (R.L. Horn)
fix the dynamic library for the ARM architecture (Gernot Tenchio)
get ARM port to work with EABI (Tristan Newby)
fix of scanf with negative floats (Andre Oliveira)
use vsyscall to do time(2) on x86-64
implement back references in basic regexes
make regex faster (coalesce n CHAR matches to one STRING match)
stdio speedup
use randomness passed in ELF auxvec instead of /dev/urandom in startup
(strace looks cleaner now)
use ELF auxvec to implement getpagesize
support thread local storage (w00t!!!!)
don't crash in getaddrinfo if hints is NULL (Gernot Tenchio)
add -D_REENTRANT for -pthread in diet
don't segfault in setlocale if locale is NULL (Nikola Vladov)
implement _SC_PHYS_PAGES in sysconf()
add some gcc attributes and restrict keywords to string.h
0.31:
getopt_long and getopt_long_only now refuse ambiguous abbreviations
fix printf %u/%x on 64-bit platforms
fix fd leak in if_nameindex (Florian Westphal)
fix printf %g (well, get closer)
fix sparc64 longjmp (Rene Rebe)
add dn_skipname
add pthread prototypes that are needed to compile libgcc when
compiling a cross compiler gcc
fix ftw64
fixes for some corner cases from Ilja van Sprundel:
- tempnam
- strsignal
- strftime
- sunrpc code
faster qsort
support %j in printf (Gernot Tenchio)
do omit the frame pointer on x86_64
fix pthread_cond_timedwait (Gernot Tenchio)
fix getcwd, ftw, ftw64, dirname (Ilja van Sprundel)
Some fd leaks in error conditions.
fix stackguard to be .quad instead of .long (cause subtle memory
corruption, which in most cases caused DNS lookups to fail on 64-bit
platforms)
fix dynamic build
do the magic required for -fstack-protector in gcc 4.1.1 to actually
work (which includes setting up thread local storage), so far on
i386 and amd64
add ctime_r (for c-icap, Gernot Tenchio)
fix strptime return value (Gernot Tenchio)
fix R_386_32, R_ARM_ABS32, R_X86_64_64 in libdl (Gernot Tenchio)
Olaf: Added DT_GNU_HASH symbol resolver.
fix security bug in librpc. You know, librpc, that stinking Sun code
full of problems? Just adding that code was a bad mistake, I think.
I tried auditing it, but I nearly got a brain tumor when I opened
those files. Thanks to Ilja van Sprundel for finding this bug (with
Google codesearch, no less! :-) )
accept mDNS packets with set recursion desired bit
add const to cfgetispeed and cfgetospeed arguments
fix off-by-one in getdelim (reported by Ilja van Sprundel)
prevent integer overflows in printf (return -1, like Solaris)
fix putenv (Nikola Vladov)
use time_t in struct stat for the time values
support LLMNR in dnsd (no idea if it works, apparently only Vista
supports it)
fix ftell (Jens Laas)
fix getaddrinfo (return more than just the first IP) (Gernot Tenchio)
make sure to declare __dietlibc__ during compilation of the lib
itself, so we can have more portable code in the libc code behind
#ifndef __dietlibc__ (see ftw64 for an example)
fix off-by-one in iconv
add missing brackets in dn_skipname
strptime also fills in tm_wday and tm_yday (Gernot Tenchio)
x86-64 getpriority has bias 20 (Rene Rebe)
fix typo in fstatfs64 (Gernot Tenchio)
fix infinite loop in getaddrinfo (Nikola Vladov)
don't include sys/stat.h in stdio.h and unistd.h (Gernot Tenchio)
work around gcc optimizing away our int overflow check in printf
some work on printf
fix some compiler warnings
support long device major and minor
add WANT_FREE_OVERWRITE in dietfeatures.h (see comment there)
0.30:
put exception handling frames in read-only section on AMD64 and S/390
make sys/stat.h ILP64 compatible
(both Markus Oberhumer)
whoops, strptime was completely broken, and noone noticed :-)
fix DNS resolver to only use shorter timeout for .local queries
remove throw() statements for functions taking function pointer
arguments (qsort, besearch, ftw)
fix embarassing bug in pclose (Juergen Sawinski, Ren? Rebe)
when asking for an IPv6 address and there is an IPv4 address in
/etc/hosts but not an IPv6 address, return NO_DATA without
querying DNS. This is how glibc does it, and it means you can use
e.g. elinks to browse http://localhost/ without being connected to
the internet / a DNS server.
make libcrypt/crypt.c to work when compiled with gcc 4
provide toascii and ustat (Reynir Stefansson)
change size of struct sigaction.sa_flags from long to int on alpha.
beginnings of wide char string routines
fix regex match bug ("@(a|b)" would also match "x@z")
ARM big-endian support (Paul Clifford)
support %s in strftime, so date in embutils does :-)
fix two strptime bugs (Gernot Tenchio)
add strnlen and clearenv (for udev)
#define IOV_MAX in limits.h behind _XOPEN_SOURCE (for opennntpd)
tzfile fix (Nikola Vladov)
lots of fixes from Markus FX Oberhumer:
* better signal handling error detection
* setjmp.S on i386
* getenv on i386
* sys/stat.h -malign-double fix
* update fcntl.h for MIPS to 2.6.13 version
* jmp_buf is 40*8 instead of 58*8 on ppc64.
* This patch fixes the section of the TOC entries on ppc64
* libstdc++ updates for gcc 4
* remove cstddef and cwchar (no longer needed)
* int -> ssize_t for read and write
* sigjmp.c: __mask_was_saved was not set in all cases!
* another round of ILP64 cleanups
add ngettext, dngettext (for glib)
add strdupa and strndupa (for directfb)
add extended attribute, thread, and misc syscalls
Olaf: fixed my libdl code to run with gcc-4.0.x
support optstring starting with '-' extension in getopt_long (Jens L??s)
make sure ftw returns in the directory it was called from
Olaf: fixing a bug in timegm (an off by ONE array access)...
tzfile fix for recent gcc
make resolv.conf more glibcish so openssh 4.3p1 compiles
add linux/* glue to make openssh compile with tun/tap support
fix putenv (Ren? Rebe, Thomas Ogrisegg)
limit search/domain entries in /etc/resolv.conf (Gernot Tenchio)
fix unlockpt (Gernot Tenchio)
Olaf: fixing putenv for the situation that environ is NULL
(situation after a clearenv)
HP-PA fixes (Micah Anderson, Herbert Poetzl)
syscall() for ppc/64
make __kernel_size_t more like the real thing (Rene Rebe)
fix __exec_shell (execv and execvp) (Gernot Tenchio)
fix mmap and provide mmap64 on S/390 (Bastian Blank)
fix telldir, seekdir (Gernot Tenchio)
also add -lc after -lgcc for gcc 4.1 on arm (Enrico Scholz)
update SSP (ProPolice) support (with help from Eduardo Tongson)
fix buffer underflow in strncpy if n==0 and WANT_FULL_POSIX_COMPAT
is defined (it's normally not) (Ilja van Sprundel)
reading from stdin used to flush stdout. Now it only does that
if stdin is a tty.
sparc64 fixes for ioctls, includes and sigaction (Rene Rebe)
0.29:
oops, fix LD_RUN_PATH unsetting (Enrico Scholz)
Markus Oberhumer sent the following diffs:
dl_iterate_phdr for libgcc_eh
proper endian.h recognition for __s390x__
rem and sdiv for sparc
fix stupid dns decoding bug (Gernot Tenchio)
#ifdef powerpc -> #ifdef __powerpc__ (Enrico Scholz)
struct siginfo was wrong for 64-bit platforms
Lots of fixes and patches from Markus Oberhumer.
libstdc++ compatibility
ilp64 compatibility
make diet libc compile with -Werror on 13 platforms
provide time() using gettimeofday for s390x
remove waitpid warnings on ia64, s390/x
provide C++ exception handling support
ppc64 now compiles again
typo in libcompat/syscall.S for WANT_THREAD_SAFE (Bj?rn D?bel)
syscall.h update for all architectures
remove two ppc64 warnings
fix s/390 syscalls > 255
add "diet -L gcc" option to print the lib path
remove new gcc4 signedness warnings
add link.h (probably only useful to compile an ia64 cross-gcc)
understand -m32 on x86_64 as meaning i386
now that gcc 4 is out, finally switch -malign-functions to
-falign-functions in diet
MADV_* for hppa and ia64 (Enrico Scholz)
add _PATH_TMP to paths.h
support syscall on sparc and x86_64 (Herbert Poetzl)
change alignment code in gethostbyname_r (Herbert Poetzl)
avoid bus errors in DNS code
implement gettimeofday vsyscall for x86_64
replace unfinished plug&play DNS hack with zeroconf,
rename dietfeatures.h option to WANT_PLUGPLAY_DNS.
A small dns daemon can be found in contrib/dnsd.c
hack ugly non-thread-safe kludge to communicate proper scope_id
to getaddrinfo
fix bug regarding regular expressions like "(a|)b"
work around gcc 4 bug
make sure diet always leaves -V in front of the gcc command line
sparc64 fixes (Martin)
fix warnings in socketcall functions
0.28:
add tcgetsid (Yuri Kozlov)
add _udivdi3, _divdi3, _umoddi3, _moddi3 for MIPS
These are in libgcc, but libgcc is compiled PIC and we compile the
diet libc non-pic, and that is not compatible on MIPS so ld
complains.
setlocale now accepts setting the locale to "C".
several fixes from Gwenole Beauchesne, AMD64 and otherwise.
fix memory leak in regfree (thanks, Valgrind!).
add support for gcc ProPolice and stack gap (see README.security).
add ftw64 (yuck!)
#include <endian.h> in syscalls.s/environ.S to make sure environ is
actually large enough (Enrico Scholz)
add waitpid wrapper around wait4 for arm-linux (Avinash Bhatia)
make res_mkquery reject invalid domains (label>64, name>255) (Nikola Vladov)
make res_query return TRY_AGAIN instead of NO_DATA if no answer was
received (Nikola Vladov)
fix PT_READ_U in sys/trace.h (John K. Hohm)
Olaf: added mmap64 wrapper (arm,mips,sparc,...)
work around new kernel rt signal semantics (need to set restorer function)
Olaf:
- libdl + gcc 3.4 resulted in a SIGSEGV because local names were
dynamically resolved....
- Also fixed a bug in the symbol resolver
- fixing the mmap64 stuff & arm/dyn_syscalls had no mmap2 (Gerrit Pape)
tzfile parser fix (John K. Hohm)
ppc64 fixes (Gwenole Beauchesne)
add sigisemptyset, sigandset and sigorset (John K. Hohm)
minor additions to make gdb 6.3 happy (John K. Hohm)
ld.so support for gdb (John K. Hohm)
implement nice(2) via setpriority() if there is no nice syscall
support libm.so (John K. Hohm)
hack rpc/xdr.h to work with gcc 4 (Andreas Jochens via Gerrit Pape)
make dyn didn't work for !WANT_FULL_RESOLV_CONF (Sampo Kellomaki)
#undef __i686 in i386/PIC.h (George Sawinski)
fix timegm bug (found by Nikola Vladov)
add sys/swap.h (George Sawinski)
Olaf: dynamic x86_64 support (libdl relocator and dyn_syscalls)
0.27:
change DNS routines to look for ip6.arpa instead of ip6.int
WANT_FREAD_OPTIMIZATION was broken on sockets (Johannes Stezenbach)
Olaf:
- added fix for getgrouplist (Nikola Vladov)
- fix the fd leak on error path (Denis Vlasenko)
- the regparm attribute in typedefinition generats error with gcc-2.95
on non-x86 arch... (reported: Johannes Stezenbach)
PowerPC build fix (Gerrit Pape)
Olaf: added missing settimeofday
add netinet/ether.h and netinet/if_ether.h
add linux/fd.h
add pivot_root, delete_module and init_module prototypes to unistd.h
(protected by _LINUX_SOURCE)
add some BSD legacy declarations to dirent.h (Bryan Henderson)
add strtoull and strtoll as aliases to strtoull and strtoll
use _FILE_OFFSET_BITS consistently (Indan Zupancic)
add support for $DIETHOME in diet, to override the compiled-in path (George)
0.26:
iconv UTF-8 fix (Kuba Winnicki)
Olaf:
- add 'getgrouplist'
- fix type of 'unsetenv'
- add missing realtime syscalls 'clock_*' 'timer_*' and types
ARGH! gcc 3.4 breaks regparm attributes on i386!
grep portability fixes (Gunnar Ritter)
add empty libcrypt.a to help compile code from others (Gunnar Ritter)
add make uninstall
fix pread64, pwrite64
Olaf: MIPS has a special case for the pread/pwrite syscall ...
Use -isystem instead of -I for our system includes (Paul Jarc)
Add MNT_DETACH to sys/mount.h
add pselect
fix for tzfile (Felix J. Ogris)
add res_close to close the DNS UDP sockets
remove ia64/waitpid.S; it was broken and there is a working C version
(Gerrit Pape)
0.25:
fix sprintf
head -1 -> head -n 1
handle negative precision and -0 (Jens L??s)
susv3 renamed IFNAMSIZ to IF_NAMESIZE
make diet accept "gcc-3.3.2" and "diet -v -Os gcc" (Yuri Kozlov)
make libcompat syscall position independent (Peter S. Mazinger)
fix missing pthread stdio external (Gernot Tenchio)
Port parts of glibc test suite (Florian Westphal)
Now we need more manpower to fix the bugs it uncovers ;-)
add linux/if_ether.h and net/ethernet.h for sniffers
faster string routines and a small fix for alloc (Thomas Ogrisegg)
remove C++ comments from header files
add ftrylockfile
C99 fixes and a new printf test from Enrico Scholz
epoll_event needs to be packed on x86_64 (pointed out by Indan Zupancic)
work around make dependency problem breaking mipsel by creating kludge
mipsel/syscalls.h (Samium Gromoff)
Fix i386 unified syscall -EMEDIUMTYPE handling (Juergen Sawinski via
Clifford Wolf)
vsnprintf: fix output when output does not fit (Enrico Scholz)
new dirname with test suite entry (Yuri Kozlov)
fnmatch: add [:charclass:], fix negation (Michael J. Pomraning)
make calloc a weak symbol (Martin Pohlack)
make NULL C++ friendly (Martin Pohlack)
new realpath (Thomas Ogrisegg)
fix stupid glibcism in sys/epoll.h
add pause for Alpha (Kurt Garloff)
ptrace fix (Dallachiesa Michele)
ptread.h cleanups (Martin Pohlack)
fix execvp and execlp (Youn?s)
fix time() for sparc64
0.24:
work around incompatible Linux select() modifying the timeout in
librpc (Patch was sent from Mike Waychison from Sun)
the overflow checking in strtou?ll? was broken in some cases.
Unfortunately, correct overflow checking enlarged the routine by 20%.
(reported by Manuel Novoa III)
two stdio bug fixes (also reported by Manuel Novoa III)
remove several warnings (Johannes Stezenbach)
Olaf: fixing tmpfile (missing parameter) and __dtostr (gcc 2.95)
Olaf: add the pthread-semaphore support.
implemented experimental plug-and-play IPv6 DNS
(see dietfeatures.h, see http://www.fefe.de/ipv6pnpdns.html)
typo in parisc setjmp.S (Michael Mueller)
Olaf: fixing the pthread_join function
add IPv6 link-local%eth0 support to getaddrinfo
Olaf: added missing syscalls (cap{g,s}et) and addmntent
Add s390x and ppc64 support (Marian Jancar, SuSE)
Marian also contributed %m support to printf, and fixes for many bugs
Olaf:
- fixing strtok_r (rewrite)
- making the %m support NON DEFAULT as it is NOT SUSv3 or SUSv2
- make the HUGE_VAL/HUGE_VALF macros arch (endian) independend
- changeing __dtostr so that it returns "inf" for an inf-value not "nan"
- fixing the strrchr bug (reported by Gernot Tenchio)
- fixing the strtoul/strtoull bug (reported by Gernot Tenchio)
- adding the patch to printf (Gernot Tenchio)
- fixing snprintf (Gernot Tenchio)
- fixing memccpy,memcmp,strncmp (reported by Gernot Tenchio)
- fixing strtoXXX (Gernot Tenchio, patch modified)
- fixing the *scanf return behavior (reported by Enrico Scholz)
add printf test
change sys_siglist to char** (removes linker warning)
fix getnameinfo (Arnaldo Carvalho de Melo)
add ar.h (for GNU make)
replace qsort with new quicksort with three-way partitioning
parisc start.S fix (Gerrit Pape)
check fflush return code (Manuel Novoa III)
add el-cheapo strptime and more BSD legacy crap to get more of
e2fsutils, dump and util-linux compiled
0.23:
update sys/soundcard.h
various x86_64 fixes (Gwenole Beauchesne)
fix assert for 64-bit platforms (Gwenole Beauchesne)
remove many warning from test suite (Gwenole Beauchesne)
hopefully fix resolver (again, Gwenole)
fix floorl typo (Norbert Wolff)
add more BSD brokenness to time.h
forward poll.h to sys/poll.h
make DNS socket close-on-exec (Felix J. Ogris)
add cuserid to libcompat (Andreas Krennmair)
add ctermid and ftok to libcompat (those are _really_ ugly)
copy some RPC bugfix cruft from glibc
warning: I don't use rpc or xdr, I don't actually understand or have
a way to test this. Maybe I should remove this cruft from the
diet libc...?
make declaration of writev and readv match susv3
add finite (Andreas Krennmair)
move flock+constants to unistd.h (the Linux man page is wrong on this)
fix assert (Andreas Krennmair)
add modf, libm fixes (Andreas Krennmair)
rename __pure__ to __pure (Laurent Bercot)
utmp x86_64 biarch support (Gwenole Beauchesne)
add fgetpwent (Alvaro Gomes Sobral Barcellos)
add vsyscall support for linux 2.5 on recent CPUs
add a few new 2.5 syscalls, adapt to renamed epoll syscalls
Olaf: fixing the vsyscall support so that the binaries still work on 2.4
remove getline macro, caused problems with GNU sed
make assert equal (void)0 under -DNDEBUG (Enrico Scholz)
make __attribute_malloc__ #define safe (Matthias Andree)
add BSD utimes to libcompat (Andreas Krennmair)
remove gcc 3 #ifdef kludgery from include/string.h; it works with gcc
3.2.2+, don't know if it's gcc or us (Gerrit Pape)
remove _null_auth declaration in librpc/rpc_prot.c (Thayne Harbaugh)
fix regex bug with ^$ not matching "" (Anthony de Boer)
Olaf: removing "<arch>/mmap.*" where no arch-specific impementation is
needed. (added "syscalls.s/mmap.S")
- fixing the vsyscall in the dynamic library... (self made problem)
- removing warning in "res_query.c"
- changing type of stream-mutex to recursive
- sparc/sparc64: shrink of the unified syscall and the special syscalls
(fork/pipe) to use the "unified_syscall_error_handler"
add sendfile64 backwards compatibility glue
add __attribute_dontuse__ to declare a few functions as deprecated
use above to flag a few BSDisms ;-)
include <sys/cdefs.h> in errno.h, fixes __attribute_dontuse__ breakage
endmntent now returns 1 (Florian Westphal)
strtoul return value fixes (Jan Bobrowski)
Olaf: fixing the diet wrapper for sparc and changing the options for mips
a few i386/*.S fixes (Hynek Schlawack)
remove =0 for static variables (Thomas Ogrisegg)
fix strtoul (broke getaddrinfo and ssh)
fix segfault in parser
Olaf: checkin of the new libpthread implementation & added confstr
Make gethostbyname2 case insensitive (Thomas Ogrisegg)
RPC 64-bit cleanliness fixes (Gwenole Beauchesne)
sysctl fix (Thomas Ogrisegg)
make header files C++ compliant (__BEGIN_DECLS and __END_DECLS)
remove more warnings (Yuri Kozlov)
use expect() in a few strategic places
try to add sigcontext and ucontext for x86_64
add ffs, ffsl, ffsll
Olaf: fixing the error string list and sparc bug (Gerrit Pape)
first throw, then attributes (Andreas Jabs)
unbuffered fputc was broken on big endian (big oops, thanks Gerrit Pape)
fix parisc struct stat (Gerrit Pape)
add vasprintf (for elinks)
fnmatch used [^e] instead of [!e] for negation (Heiko Berges)
add sparc and parisc assembly routines (Thomas Ogrisegg)
add swab (Johannes Stezenbach)
make a{4} match exactly and not at least 4 times a (Ingo Oeser)
Olaf: fixed a libdl ref-counter bug (Thomas Walpuski)
All hail to the busybox chiefs! Instead of reporting bugs they find,
they put a #error in their source code. Is Erik seeing the diet
libc as uClibc competition that needs to be squashed even with
unfair methods? People, if you find bugs, tell us!
Fixed fputc and freopen (found in busybox comments)
0.22:
fix i386 libm
fix netinet/ip_icmp.h (Rui Prior)
make strings.h susv3 compliant (Gunnar Ritter)
remove stdio dependence in abort
fix truncate64, ftruncate64 (Luc Van Oostenryck and Yuri Kozlov)
fix and improve erand48() (Luc Van Oostenryck)
fix realpath for non-existant directories (Gergely Nagy and Gerrit Pape)
fix DNS timeout and IPv6 socket reuse
strtoul now accepts "-1" as well (Thomas Ogrisegg)
add i386 strcasecmp and __ltostr (Thomas Ogrisegg)
add killpg prototype (Luc Van Oostenryck)
remove some compiler warnings (Luc Van Oostenryck)
better rand() from Knuth's TAOCP (Luc Van Oostenryck)
fix unified x86_64 unified syscall 64-bit return value issue (Gwenole)
the getdents64 emulation was broken and repairing it opened a can of
worms. So I ripped it out. I also changed the readdir64 emulation
to work if there is no getdents64.
fix ia64 start.S (Thanks to Volker Birk for an account on his ia64 box)
many ia64 fixes (waitpid, nice, fork, vfork, time, utime ...)
More fixes from Gwenole (printf %p only printed the last 32 bits, I
botched the getdents64 #ifdefs, we violated the x86_64 ABI)
change signal() to do as glibc does
remove a few more warnings
add new 2.5 syscall #defines
add epoll_create, epoll_ctl and epoll_wait
the new x86 syscall numbers exceed 255, breaking our %al optimization
I worked around it with conditional assembly in cpp macros. Ugh.
more MIPS fixes (the stoned MIPS ABI for restartable syscalls expects
the instruction before the syscall to be a load immediate)
fix fread() from a pipe (oops, tried to lseek)
#define _POSIX_VDISABLE in termios.h (Laurent Bercot)
two *printf fixes (Gernot Tenchio)
add nan and +-inf handling in __dtostr
add _SC_NGROUPS_MAX support to sysconf (Felix J. Ogris)
make assert() use expect(), slight optimization
add i386 vfork (Thomas Ogrisegg)
fix SA_NODEFER on sparc (Gerrit Pape, Thomas Bader)
fix sin, cos and __dtostr (Gernot Tenchio)
add /dev/epoll ioctl constants to sys/ioctl.h
add linux/eventpoll.h for /dev/epoll
fix lseek64 on 64-bit architectures
Olaf: fix x86_64 start-code (we have reg-args)
fixing some broken macros in sparc32-code (.udiv,.urem)
adding strndup (GNU Extension)
fix glob strncpy (R.L. Horn)
fix regfree (Uwe Ohse)
fix puts in full stdio mode (would omit \n)
fix wrong types on powerpc, broke *stat (Gerrit Pape)
allow more than 64k in i386 memchr (Karsten Scheibler)
make strftime work it WANT_TZFILE_PARSER is not set (Gwenole Beauchesne)
build parisc on parisc64, change libgcc link order on sparc (Gerrit Pape)
0.21:
use gcc's size_t, ptrdiff_t and wchar_t types (Olaf)
use -G 8 on MIPS to reduce code size (Johannes Stezenbach)
add munlock (Jens L??s)
argh, atexit fell victim to bit rot (or maybe Olaf)
add WANT_INET_ADDR_DNS to make gethostbyname not look up IP numbers
but use them to fill in the struct hostent directly.
signal is now a correct signal (Olaf)
read optimizer cflags for diet -Os gcc from ~/.diet/gcc, overriding
the built-in defaults.
add file "SECURITY". I will document design tradeoffs that have
security implications there.
fixed regex LINEEND condition
add .size directive to i386 syscalls
shove a few more bytes off the i386 socket calls
setjmp, longjmp and clone for x86_64 are now implemented but not tested (Olaf)
fix sparc signals
0.20:
calloc was botched
umount and stime for x86_64 (Gwenole Beauchesne)
some malloc fixes for very big numbers (Enrico Scholz, me)
x86_64 unified syscall did not preserve rbx violating ABI (Gwenole)
realpath fix if path did not contain a slash (Gwenole)
add ucontext
add asm/statfs.h to work around people using <linux/fs.h>
0.19:
current gcc cvs makes __thread a keyword (Eric Troan)
be more strict regarding hostile DNS packets (me)
fix ia64 compile problems (Gerrit Pape)
make killpg a function and not a macro (broke bash 2.05b)
fix ia64 start code and unified syscall (me)
add sparc/strlen.S from Thomas Ogrisegg
add more space to ARM __jmp_buf in setjmp.h (Andre)
fix libcompat/syscall.S (did't compile on arm)
add integer overflow fix in xdr_array after bugtraq advisory (me)
fix x86_64 socket calls and mmap (and some more) (Gwenole Beauchesne)
add calloc integer overflow fix after RUS-CERT advisory (me)
add fread and fwrite integer overflow fix (me)
0.18:
add stpcpy (from Thomas Ogrisegg)
check in mktime fix (from Luc Van Oostenryck)
add libm2.s from contrib to i386 (oops, how long has it been sitting
there?)
add truncate64 and ftruncate64 and prototype for truncate (only had ftruncate)
Michal Ludvig (SuSE) ported the diet libc to the x86_64 architecture (the
upcoming AMD Hammer chips!). You can't even buy the chips yet and
the diet libc already supports it! Amazing ;-)
Michal's patch also fixed several of the outstanding warnings. Thanks!
Andre sent a patch to add ARM profiling. He says it does not work
yet, but it's a start.
added getdents64 backwards compatibility and include it in large file
support #defines
perror now checks if the message is NULL like glibc (Thomas Ogrisegg)
ftell did not take ungetc into account (Kevin Ryde through Debian).
Thomas Ogrisegg sent a port to IA64!
sigaddset, sigdelset and setismember segfaulted for signal 0 (Gunnar Ritter)
Enrico Scholz reported several bugs in the header files.
change __malloc__ to __attribute_malloc__
add pa-risc socketcall (but see TODO) (Felix J. Ogris)
fix *rand48 initialization (Kevin Ryde)
fnmatch infinite loop fix (Piotr Esden-Tempski)
make signal() into a sigaction wrapper function
add memrchr (Emil)
remove __attribute__((const)) from getpid() (Yuri Kozlov)
make getserv* also work if proto is NULL (Jens L??s)
now clone on parisc works (Thomas Ogrisegg)
getopt* fix from Thomas Walpuski
add syscall() to libcompat (Thomas Ogrisegg)
fix strncpy and strrchr i386 assembly versions for dynamic linking
(John K. Hohm)
allow short option grouping in getopt* (Ralf Wildenhues)
make the DNS resolver IPv6 transport capable (WANT_IPV6_DNS)
mention -v in diet.1 (Bryan Henderson)
auto-detect gcc 3 on i386 and remove compiler option warnings
putenv tweak (Thomas Ogrisegg)
add missing socket syscalls for PA-RISC and IA64 (Thomas Ogrisegg)
add cpio.h and tar.h (Thomas Ogrisegg)
change opendir/readdir/closedir from malloc to mmap (Thomas Ogrisegg)
cleanups from Florian LaRoche
0.17:
fix several bugs in getservent_r
Gunnar Ritter reported the following:
moved tcgetpgrp and tcsetpgrp to unistd.h
adjusted lstat->lstat64 #define to make it work with function pointers
move __dietlibc__ #define from features.h to diet
Thomas Ogrisegg sent x86 memccpy and strncpy routines and introduced
an dietfeatures.h #define WANT_FULL_POSIX_COMPAT
Thomas also sent me profiling support (so far only on x86, but
profiling/PORTING describes what needs to be done for other
architectures)!
add contrib/dprof.c, also from Thomas.
Andreas Krennmair sent a patch to add the BSD regex interface to
libcompat
Andre noticed that __dtostr never sets first to false. Oops!
Andre has provided a largely untested patch that seems to fix the problem.
Igor Gilitschenski sent a patch for the "%8.7lx" issue.
abort did not flush all stdio streams
fix some nasty regular expression bugs
write a stupid malloc checker (contrib/debug-realloc.c) to help me
debug my regular expressions. Please read contrib/debug-realloc.txt
our i386 memchr,memcmp were broken for the count=0 case
fix DNS domain search
i386 memccpy exchanged esi and edi :-( I should do more checks before
accepting external code...
0.16:
"diet -v" or "diet -Os" segfaulted without further arguments.
Andre found two very embarassing bugs in my four lines of md5 glue.
I need to get more sleep.
Thanks Ogrisegg found that ptrace does not work as documented and
provided a wrapper that emulates the glibc behaviour.
Dirk Engling saved 8 bytes and 4 cycles in the ARM clone()
fix ptrace.h for S/390 and ARM
provide a PORTING document so we don't lose track of which file need
to be touched to port the diet libc to a new platform.
remove a few warnings
provide a prototype for usleep.
make __dtostr work on ARM by using long instead of long long.
Idea by Dirk Engling.
fix an argument counting bug in *scanf (Thomas Ogrisegg)
Forgot an #endif in asm/sigcontext.h (Mike Castle)
Kurt Garloff sent in patches to
fix struct termios on non-x86 architectures
printf("%+05d\n",500) was broken (Raimar Falke told me, Olaf fixed it)
create libcompat.a (and move daemon to it)
add getdelim and getline
*printf now recognize 'z' integer flag (and ignore it)
Dirk Engling provided a strcpy.S for ARM.
Olaf: fixed *scanf familie. It hadn't wored with "long long".
Hans Lermen fixed i386/getenv.S
diet -Os no longer discards -fpic and -fno-pic
fix i386 rand/random to use correct RAND_MAX (thanks, Jaroslav
Macodiseas)
sys/ipc.h now includes sys/types.h
Olaf: started to make the sparc64 port
scandir should not sort if compar() is NULL (reported by Andrea Marrosu)
0.15:
vfork sucks. I reverted to the old behavior where vfork==fork.
fix bsearch (and remove i386 assembly bsearch, needs to be redone).
Thanks Ogrisegg sent a patch to make the PA-RISC unified syscall
thread-safe!
remove vfork and add alarm to dynamic syscalls.
fix diet-dyn to link in dyn_dstop.o and not dyn_stop.o.
The MD5 code generated unaligned accesses when passed an unaligned
pointer on little endian ARM and MIPS.
MIPS unified syscall didn't compile anymore.
Put up new mipsel target to cross compile for little endian mips.
The mips target will again explicitly set endianness to big endian.
Compiling natively on a MIPS box should not touch the endianness.
Duh, when we removed return0, we broke tzset when the time zone parser
was disabled. Uwe Ohse noticed this. Thanks!
Fix gethostbyname to match host names case insensitively in /etc/hosts.
Oops, this was reported 6 weeks ago but I overlooked the email.
Thanks, Denis Rachal!
vsnprintf's zero termination was broken.
Uwe Ohse found a few more bugs:
Remove WANT_BUGGY_GLIBC_STRSEP. The Linux man page is broken, glibc
does it correctly.
Make inet_aton use strtoul instead of strtol
fdopen would close the file descriptor if it could not malloc the
buffer.
strftime updates.
Make _FILE_OFFSET_BITS includes -Wundef clean
Andre found a typo in endian.h for big endian mips
Ryan told me that fmod was not included in libm. Oops.
strstr(whatever,"") returned NULL, not whatever. Found by a new test
suite entry for strstr that I wrote.
Thomas Ogrisegg suggested or sent patches for the following:
add <asm/sigcontext.h> for profiling support.
make strncpy a #define in string.h to save a few bytes.
an i386 assembler getenv implementation (roughly half the size)
add grantpt, ptsname, unlockpt
add a getenv test suite entry.
Andre contributed an ARM assembler md5 implementation and he fixed mmap
on ARM.
add glibc macro names in sys/reboot.h. Mentioned by Laurent G. Bercot
getservent_r did not parse lines without aliases. Thanks, Jaroslav
Macodiseas!
fix MIPS start code (argv[0] was always corrupt)
removed annoying -Wconversion gcc switch
add -v to diet.c and fix MIPS CFLAGS in diet. Thanks, Johannes Stezenbach
Kurt Garloff sent these diffs:
add fdatasync (and make it a pthread cancellation point)
numerous alpha issues, like using .quad instead of .long for
offsets, change strip to -strip in Makefile (so a failing strip does
not abort the make), try to be more friendly to the gcc 2.96 that
SuSE 7.1 AXP ships with.
0.14:
fix brk again (missing __brk, trivial oversight)
a new i386/atol.S that is 4 bytes smaller (and faster, too!). Thanks,
Thomas Ogrisegg!
Thomas also contributed a PA-RISC port including testandset, so
libpthread will work once we implement clone! Great work, Thomas.
made the fake locale more believable.
If you need gettext, use http://www.ca.postgresql.org/~petere/gettext.html
moved _exit into the unified syscall on x86.
Uwe Ohse found many more bugs:
getpass EINTR handling, ttyname, sysconf_cpus with SLASH_PROC_OK,
liblatin1 was more or less completely broken if you gave it chars as
arguments, not ints (signedness). execvp had a buffer overflow in
case a PATH element exceeded PATH_MAX, but it's not a security
problem since setuid programs need to set their path to some known
value anyway.
hasmntopt did not work with foo=bar style options
Uwe also improved ftw's stack usage.
Put movl instead of popl rationale in comment in i386/unified.S since
three people have suggested saving a few bytes with popl now ;)
I discovered __attribute__((malloc)) and started using it. For gcc 3,
it improves the optimizer when functions return malloced pointers.
Steven Rostedt pointed out that my setvbuf was broken with regard to
size==0 and sent a patch to fix it.
Thomas Ogrisegg made setenv smaller.
Olaf: implemented the parisc clone and an atomic testandset, modified the
libpthread to respect the parisc UPgrowing stack. still non functional,
because the unified syscall uses errno :(
tcgetospeed read from the wrong termios field. Thanks, Gunnar Ritter!
Fixed asprintf (relied on vsnprintf(NULL,...) to return length but
don't write anything which was no longer the case. It also
allocated one byte unnecessarily, which Uwe Ohse found.
Fix ttyname (readlink does not \0-terminate, forgot to do that).
0.13:
add readdir64 and automatic mapping if _FILE_OFFSET_BITS == 64
make diet not include the linker safeguard stuff when preprocessing
Olaf: port to S/390!
fix vfork (it was put into dietlibc.a twice)
res_query did not initialize last
diet (not diet-dyn, of course) now adds -static to the gcc command line
fixed fflush on input streams (tic from ncurses exposed this)
duh, there is an alarm system call, too, so we use it and not setitimer
fix comparison in gmtime_r that caused Jan 1 to be converted to Dec 32.
rewrote __dtostr (it also has one more argument now)
Thanks to Erik Troan for bringing these to my attention:
make putenv behave like glibc (putenv("HOME") == unsetenv("HOME"))
fix strncat for the case where n == 0 (security implications?)
fix bsearch (it didn't find the very last element in the array, same
bug in both the C and the i386 assembly version).
fixed FNM_PATHNAME in fnmatch
fix brk (the syscall was documented incorrectly in the Linux man page)
Thanks, Thomas Ogrisegg!
added negated character classes to fnmatch (not required by POSIX)
make the utmp routines open utmp read-only if read-write doesn't work.
remove syscalls.c directory, it is obsolete now with unified syscalls
0.12:
more contributions from Frank Klemm.
iconv can now do UCS-2, too.
Imported several x86 assembly routines from Wouter van Kleunen.
Lots of bug fixes, and several more i386 specific versions of common
routines to make them smaller.
add memmem (a GNU extension that looks useful)
several changes from Michal Ludvig: inttypes.h gets C99 macros,
add pivot_root syscall, %n for *scanf.
add adjtimex (thanks, Laurent BERCOT)
add Frank Klemm's optimized md5
add -Os option to diet (see diet.1).
several IPv6 constants and HZ were missing, thanks Johannes Kloos.
add 32-bit uid/gid syscalls.
add rand48 (thanks, Johannes Kloos)
fixed a lot of bugs in getopt* (thanks, Johannes)
add strxfrm and tweak limits.h. glib-1.3.8 now compiles without changes.
add a few more module syscalls. modutils-2.4.9 now compiles without changes.
fix gethostent alias list termination. Major oops.
add execle and two DNS constants (from Johannes Kloos).
opendir did not close-on-exec (thanks, Laurent Bercot).
DNS will now properly signal errors and set h_errno.
A few more cleanups (thanks, Andreas Jabs and Matthias Andree).
Added an uber-cool linker safeguard feature! Idea by Matthias Andree.
If you enable WANT_SAFEGUARD in dietfeatures.h, diet will include an
external reference to a symbol that is only in the diet libc. So,
when you accidentally link a diet libc compiled object file against
glibc, the linker will barf. This will bloat your object files, but
you can remove all the references with "strip -R .note" from
the binaries in the end (which you should do anyway).
fix ARM unified syscall (select did not work).
add getpwent_r ala glibc and replace getpwent
do the same for getgrent and getspent
remove entlib (new code is smaller)
rewrite getserv* to use parselib (and provide ..._r, too)
add getpwnam_r and getpwuid_r
rewrite getproto* to use parselib (and protive ..._r, too)
Olaf muddled with the dynamic linker. It's a clean-room
implementation in the sense that it once worked for Olaf in a clean
room ;)
add if_nameindex and if_freenameindex.
fixed arm unified syscalls to work with current binutils (; is no
longer a line separator but starts a comment, switched to .macro)
changed all st_[cma]time types to signed long so comparisons against
LONG_MIN will work correctly. (GNU tar does this)
fixed two bugs regarding ungetc.
add getusershell, setusershell, endusershell (for vs_ftpd)
add prctl, dirfd (also for vs_ftpd)
fixed strftime (was completely hosed)
added real make install target
0.11:
fix major oops in DNS routines (only with WANT_FULL_RESOLV_CONF enabled).
fix vsscanf bug (Thanks, David Chappell).
add floor, ceil and memchr prototypes.
add __builtin_expect and expect #defines for gcc versions below 3.0
cleaner errno vs __errno_location handling
add placeholder iconv (iconv_open will always return EINVAL)
try to remove kernel 2.4 header dependency in IPv6 sockaddr_in6
initialization of getaddrinfo.
fix vsnprintf %X (printed lower case)
I wrote a new getopt. It appears to actually work (it is POSIX
compliant, it does not sort argv like the GNU version) and is only
a little over 300 bytes on x86.
Guillaume Cottenceau just wrote me that strncat should be even more
broken than it already is: it should append n bytes AND THEN \0!
I wonder how many programmers have produced off-by-one errors here...
Fix regexec offset return. autoconf now believes that diet libc has
POSIX regular expressions.
Fix fnmatch (a/b/* matched a/b/c/d even if FNM_PATHNAME was set)
Fix regular expression match for x* when there is no x at all.
Fix memory leak in error case in gethostbyname(2|). Thanks, Dietz Pr?pper.
Add %h to vsnprintf.
Add FAQ.
Make %h work for signed numbers and add %hh to vsnprintf.
initgroups ignored the group argument :-(
remove printf references and nested functions from glob.
added an errno in libpthread that will display a prominent linker
warning.
started getting rid of kernel headers. Big task! :-(
add res_mkquery. The diet libc can now compile and link mtr.
Olaf: added a lot of code in libdl (not yet complete), changed the
startup code to make it work with his libdl and ld.so (needs still work
too)
__dns_readstartfiles only took the first domain or search path.
Thanks, Anthony de Boer
Olaf: added clone and a new unified_syscall for PowerPC
also dynlinker is now available (i386 only at this time)
crufted together a stdarg.h implementation from the various gcc headers.
implement getopt_long (ugh, the GNU people need professional help)
fixed word delimiters in regex (they looked for space, i.e. "," did
not work as delimiter)
errno.h now declares sys_errlist and sys_nerr.
added mkdtemp.
Uwe Ohse reported all of the following bugs:
ttyname should return 0 if !isatty.
realpath returns NULL if "." cannot be opened
putenv erroneously accepted (and mishandled) entries without "=".
popen returned 255 instead of 127 if /bin/sh could not be run.
fgetc did not set the internal EOF indicator on EOF.
bsearch contained an assumption about integer arithmetic overflow
behavior.
system did not set SIGCHLD and thus contained a race.
popen did not set close-on-exec and could leak an fd on malloc error.
daemon did not check whether open returns an fd below 3
perror did not save errno.
Olaf: Peter Jones reported some problems with perror; strerror had the
same problem.
Peter also posted a patch to atexit/exit. With some modifications it is
now implemented.
Unbuffered stdio and ungetc can no longer be disabled. I will try to
implement part of it using ELF weak symbols.
Added minimal sysconf (tehe) from David Chappell.
Added overflow handling for strtoul and strtol.
Added WANT_ETC_HOSTS in dietfeatures.h and made gethostbyname/2 use
it before falling back to DNS if enabled.
Added a littie backwards compatibility cruft for gpm (man, do these
sources stink!)
Added openpty.
Squeeze a few bytes off the is* routines, courtesy of Peter Jones.
Fix fseek return value.
Add dirname and basename.
Add a few i386 math routines contributed by Frank Klemm.
Fixed getservent (did not allow _ and - in the aliases).
Thanks, Oden Eriksson
Added a float.h so configure believes we have ANSI header files.
Fix a lot more stdio bugs that Uwe Ohse pointed out.
Olaf: has added a new scanf and printf core that is suitable for all
scanf and printf function implementations
Imported a few more functions and optimizations from Frank Klemm (he
also rewrote dtostr to have more precision)
Olaf: checked in a new sig* function family (based on rt_sig*).
legacy <2.2 signal-handling doesn't work at the moment.
Made rudimentary iconv that can convert back and forth between
iso-8859-1, utf-8 and ucs-4 (for debugging).
Thanks to Markus Kuhn for the excellent utf-8(7)!
0.10:
update getpagesize.
add personality.
add "%*s" and "%*.*s" support to vsnprintf.
add putchar (apparently arm-linux-gcc will substitute printf("\n")
with putchar('\n') behind your back...?!
import include/scsi/ from glibc.