Index: linux/libc/ChangeLog diff -u linux/libc/ChangeLog:1.190 linux/libc/ChangeLog:1.192 --- linux/libc/ChangeLog:1.190 Wed Aug 27 19:58:16 1997 +++ linux/libc/ChangeLog Thu Sep 18 12:12:50 1997 @@ -1,3 +1,36 @@ +Thu Sep 18 01:46:14 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * version 5.4.39 is released. + + * <_G_config.h>: change version to 5.4.39. + + * elf/libc/jump.params: set version to 5.4.39. + + * release.libc: update. + +Wed Sep 17 19:39:10 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * <_G_config.h> (_G_HAVE_LONG_DOUBLE_IO, _G_HAVE_PRINTF_FP, + _G_HAVE_MMAP, _G_HAVE_FEATURES): New. Defined as 1. + + * (_IO_flockfile, _IO_funlockfile, _IO_ftrylockfile, + _IO_cleanup_region_start, _IO_cleanup_region_end): new. dummy + macros for libstdc++. + +Thu Sep 11 08:49:20 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * (NULL): support newer gcc/egcs. + + * include/Makefile (install): fix a typo. create the dest + dir first. + + * Makefile (install): check if library exists before install. + +Thu Sep 11 08:04:03 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * libio/fileops.c (_IO_file_underflow): treat EAGAIN and + EWOULDBLOCK as EOF. + Wed Aug 27 19:57:10 1997 H.J. Lu (hjl@gnu.ai.mit.edu) * version 5.4.38 is released. Index: linux/libc/Makefile diff -u linux/libc/Makefile:1.23 linux/libc/Makefile:1.24 --- linux/libc/Makefile:1.23 Fri Aug 8 12:12:44 1997 +++ linux/libc/Makefile Thu Sep 18 12:12:50 1997 @@ -109,13 +109,15 @@ $(REALRANLIB) $(TARGET_ELF_LIB_DIR)/$$name ; \ done for l in $(ELF_DEBUG_DIR)/lib*.a $(ELF_PROFILE_DIR)/lib*.a; do \ - if [ x$(NYS_DIR_SUFFIX)x = "xx" ]; then \ - name=`basename $$l`; \ - else \ - name=`basename $$l | sed s/$(NYS_DIR_SUFFIX)//` ; \ - fi; \ - cp $$l $(TARGET_ELF_LIBEXTRA_DIR)/$$name ; \ - $(REALRANLIB) $(TARGET_ELF_LIBEXTRA_DIR)/$$name ; \ + if [ -f $$l ]; then \ + if [ x$(NYS_DIR_SUFFIX)x = "xx" ]; then \ + name=`basename $$l`; \ + else \ + name=`basename $$l | sed s/$(NYS_DIR_SUFFIX)//` ; \ + fi; \ + cp $$l $(TARGET_ELF_LIBEXTRA_DIR)/$$name ; \ + $(REALRANLIB) $(TARGET_ELF_LIBEXTRA_DIR)/$$name ; \ + fi; \ done cp $(ELF_PROFILE_DIR)/*.o $(TARGET_ELF_LIBEXTRA_DIR) cp $(ELF_DEBUG_DIR)/libc$(NYS_DIR_SUFFIX)/mcheck-init.o \ Index: linux/libc/release.libc diff -u linux/libc/release.libc:1.59 linux/libc/release.libc:1.60 --- linux/libc/release.libc:1.59 Wed Aug 27 19:56:10 1997 +++ linux/libc/release.libc Thu Sep 18 11:50:25 1997 @@ -24,20 +24,20 @@ so that the old XFree86 binaries will run fine with the new XFree86 shared librraries compiled with libc 6.x/glibc 2.x. -If you use linux 2.1.x, you need libc 5.4.38 or above to compile libc +If you use linux 2.1.x, you need libc 5.4.39 or above to compile libc yourself. The pre-compiled libc should run fine under linux 2.1.x. Also this library is compiled with -D_REENTRANT so that errno is MT safe. The shared libraries are now compiled with -g1 which can provide minimum information when core dump happens. You can strip -libc.so.5.4.38 if you want. +libc.so.5.4.39 if you want. -Due to the new, improved locale, the Linux C library 5.4.38 is binary +Due to the new, improved locale, the Linux C library 5.4.39 is binary compatible with libc 5.3.12 but not vice versa. The binaries -compiled/linked with libc.so.5.4.38 may not run with libc.so.5.3.12. +compiled/linked with libc.so.5.4.39 may not run with libc.so.5.3.12. You may need to regenerate locale files for the new locale in libc -5.4.38 if you use locales other tha C/POSIX which are the defaults. +5.4.39 if you use locales other tha C/POSIX which are the defaults. The locale sources are at @@ -46,7 +46,7 @@ There are many security bug fixes. Please consult ChangeLog for details. Please let me know if there are more security bugs remains. -This is the beta release of the Linux C library 5.4.38. Please read +This is the beta release of the Linux C library 5.4.39. Please read the ChangeLog for details regarding changes/bug fixes. DISTRIBUTION SITES: @@ -67,11 +67,11 @@ DISTRIBUTION FILES: -1. libc-5.4.38.bin.tar.gz +1. libc-5.4.39.bin.tar.gz REQUIRED. This package contains the header files for libc, shared and static ELF libraries libc and libm, and the static ELF library libbsd.a. -The header files in libc-5.4.38.bin.tar.gz are not complete. You need to +The header files in libc-5.4.39.bin.tar.gz are not complete. You need to install the kernel source tree for the system-dependent header files. The header files are in lib-x.y.z.bin.tar.gz and libc-x.y.z.tar.gz. You @@ -82,11 +82,11 @@ to extract the header files without the binaries files. A separate tar file for the header files may cause unnecessary confusion. -2. libc-5.4.38.tar.gz +2. libc-5.4.39.tar.gz Source tree for libc and header files. -3. libc-5.4.37-5.4.38.diff.gz +3. libc-5.4.38-5.4.39.diff.gz Context diffs against the source tree from the previous libc release. Please make sure the empty libc/regex/rx.h is deleted. @@ -157,7 +157,7 @@ rm -f /usr/include/wcstr.h /usr/include/mbstr.h rm -f /usr/include/ld_so_config.h /usr/include/localeinfo.h rm -rf /usr/include/netinet /usr/include/net /usr/include/pthread -gzip -dc libc-5.4.38.bin.tar.gz | tar xvf - +gzip -dc libc-5.4.39.bin.tar.gz | tar xvf - SOURCE INSTALLATION: @@ -223,4 +223,4 @@ H.J. hjl@gnu.ai.mit.edu -08/27/97 +09/18/97 Index: linux/libc/elf/libc/jump.params diff -u linux/libc/elf/libc/jump.params:1.91 linux/libc/elf/libc/jump.params:1.92 --- linux/libc/elf/libc/jump.params:1.91 Wed Aug 27 12:37:18 1997 +++ linux/libc/elf/libc/jump.params Thu Sep 18 11:50:26 1997 @@ -1 +1 @@ -Version=5.4.38 +Version=5.4.39 Index: linux/libc/libio/fileops.c diff -u linux/libc/libio/fileops.c:1.16 linux/libc/libio/fileops.c:1.17 --- linux/libc/libio/fileops.c:1.16 Thu Jul 10 08:43:51 1997 +++ linux/libc/libio/fileops.c Thu Sep 18 11:50:28 1997 @@ -304,10 +304,28 @@ fp->_IO_buf_end - fp->_IO_buf_base); if (count <= 0) { + /* + * I think EAGAIN and EWOULDBLOCK should be treated as + * EOF. H.J. + */ +#ifdef EAGAIN +#if defined(EWOULDBLOCK) && EWOULDBLOCK != EAGAIN + if (count == 0 || errno == EAGAIN + || errno == EWOULDBLOCK) +#else + if (count == 0 || errno == EAGAIN) +#endif +#else +#ifdef EWOULDBLOCK + if (count == 0 || errno == EWOULDBLOCK) +#else if (count == 0) +#endif +#endif fp->_flags |= _IO_EOF_SEEN; else - fp->_flags |= _IO_ERR_SEEN, count = 0; + fp->_flags |= _IO_ERR_SEEN; + count = 0; } fp->_IO_read_end += count; if (count == 0) Index: linux/include/Makefile diff -u linux/include/Makefile:1.1 linux/include/Makefile:1.3 --- linux/include/Makefile:1.1 Sun Jul 20 12:07:29 1997 +++ linux/include/Makefile Thu Sep 18 12:12:55 1997 @@ -290,12 +290,13 @@ $(RM) -f asm linux install: - @for f in $(files); \ + -@for f in $(files); \ do \ cmp -s $$f $(TARGET_ROOTDIR)/usr/include/$$f; \ if [ $$? != 0 ]; \ then \ echo cp $$f $(TARGET_ROOTDIR)/usr/include/$$f; \ + mkdir -p `dirname $(TARGET_ROOTDIR)/usr/include/$$f`; \ cp $$f $(TARGET_ROOTDIR)/usr/include/$$f; \ - fi \ + fi; \ done Index: linux/include/_G_config.h diff -u linux/include/_G_config.h:1.97 linux/include/_G_config.h:1.98 --- linux/include/_G_config.h:1.97 Wed Aug 27 12:37:15 1997 +++ linux/include/_G_config.h Thu Sep 18 11:50:35 1997 @@ -2,10 +2,10 @@ #ifndef _G_config_h #define _G_config_h -#define _LINUX_C_LIB_VERSION "5.4.38" +#define _LINUX_C_LIB_VERSION "5.4.39" #define _LINUX_C_LIB_VERSION_MAJOR 5 #define _LINUX_C_LIB_VERSION_MINOR 4 -#define _LINUX_C_LIB_VERSION_SUBMINOR 38 +#define _LINUX_C_LIB_VERSION_SUBMINOR 39 #define _G_LIB_VERSION "2.7.2" @@ -86,6 +86,7 @@ #define _G_HAVE_UNISTD 1 #define _G_HAVE_DIRENT 1 #define _G_HAVE_CURSES 1 +#define _G_HAVE_FEATURES 1 #define _G_MATH_H_INLINES 0 #if defined(__GNUG__) && defined(__GNUC__) && (__GNUC__ > 2 || \ (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) @@ -93,5 +94,9 @@ #else #define _G_HAVE_BOOL 0 #endif + +#define _G_HAVE_LONG_DOUBLE_IO 1 +#define _G_HAVE_PRINTF_FP 1 +#define _G_HAVE_MMAP 1 #endif /* !_G_config_h */ Index: linux/include/libio.h diff -u linux/include/libio.h:1.7 linux/include/libio.h:1.8 --- linux/include/libio.h:1.7 Thu Jul 18 00:49:25 1996 +++ linux/include/libio.h Thu Sep 18 11:50:35 1997 @@ -86,11 +86,16 @@ #define EOF (-1) #endif #ifndef NULL -#if !defined(__cplusplus) || defined(__GNUC__) -#define NULL ((void*)0) -#else -#define NULL (0) -#endif +# if defined __GNUG__ && \ + (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)) +# define NULL (__null) +# else +# if !defined(__cplusplus) +# define NULL ((void*)0) +# else +# define NULL (0) +# endif +# endif #endif #define _IOS_INPUT 1 @@ -270,6 +275,13 @@ extern _IO_fpos_t _IO_seekpos __P((_IO_FILE*, _IO_fpos_t, int)); extern void _IO_free_backup_area __P((_IO_FILE*)); + +/* They are used by libstdc++. */ +#define _IO_flockfile(_fp) /**/ +#define _IO_funlockfile(_fp) /**/ +#define _IO_ftrylockfile(_fp) /**/ +#define _IO_cleanup_region_start(_fct, _fp) /**/ +#define _IO_cleanup_region_end(_Doit) /**/ #ifdef __cplusplus }