diff options
Diffstat (limited to 'recipes/glibc/glibc-2.3.2/glibc23-libio-compat.patch')
-rw-r--r-- | recipes/glibc/glibc-2.3.2/glibc23-libio-compat.patch | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/recipes/glibc/glibc-2.3.2/glibc23-libio-compat.patch b/recipes/glibc/glibc-2.3.2/glibc23-libio-compat.patch new file mode 100644 index 0000000000..f34a202dc3 --- /dev/null +++ b/recipes/glibc/glibc-2.3.2/glibc23-libio-compat.patch @@ -0,0 +1,144 @@ +--- glibc-2.3.2/libio/libioP.h.orig 2003-10-27 15:48:39.000000000 -0500 ++++ glibc-2.3.2/libio/libioP.h 2003-10-27 16:04:03.000000000 -0500 +@@ -348,6 +348,17 @@ struct _IO_FILE_plus + const struct _IO_jump_t *vtable; + }; + ++#ifdef _IO_USE_OLD_IO_FILE ++/* This structure is used by the compatibility code as if it were an ++ _IO_FILE_plus, but has enough space to initialize the _mode argument ++ of an _IO_FILE_complete. */ ++struct _IO_FILE_complete_plus ++{ ++ struct _IO_FILE_complete file; ++ const struct _IO_jump_t *vtable; ++}; ++#endif ++ + /* Special file type for fopencookie function. */ + struct _IO_cookie_file + { +--- glibc-2.3.2/libio/oldiofdopen.c.orig 2003-10-27 15:57:58.000000000 -0500 ++++ glibc-2.3.2/libio/oldiofdopen.c 2003-10-27 16:11:28.000000000 -0500 +@@ -48,7 +48,7 @@ _IO_old_fdopen (fd, mode) + int posix_mode = 0; + struct locked_FILE + { +- struct _IO_FILE_plus fp; ++ struct _IO_FILE_complete_plus fp; + #ifdef _IO_MTSAFE_IO + _IO_lock_t lock; + #endif +@@ -89,7 +89,7 @@ _IO_old_fdopen (fd, mode) + Open a Stream on a File Descriptor says: + + Although not explicitly required by POSIX.1, a good +- implementation of append ("a") mode would cause the ++ implementation of append ("a") model would cause the + O_APPEND flag to be set. + + (Historical implementations [such as Solaris2] do a one-time +@@ -112,24 +112,24 @@ _IO_old_fdopen (fd, mode) + if (new_f == NULL) + return NULL; + #ifdef _IO_MTSAFE_IO +- new_f->fp.file._lock = &new_f->lock; ++ new_f->fp.file._file._lock = &new_f->lock; + #endif +- _IO_old_init (&new_f->fp.file, 0); +- _IO_JUMPS (&new_f->fp) = &_IO_old_file_jumps; +- _IO_old_file_init (&new_f->fp); ++ _IO_old_init (&new_f->fp.file._file, 0); ++ _IO_JUMPS ((struct _IO_FILE_plus *) &new_f->fp) = &_IO_old_file_jumps; ++ _IO_old_file_init ((struct _IO_FILE_plus *) &new_f->fp); + #if !_IO_UNIFIED_JUMPTABLES + new_f->fp.vtable = NULL; + #endif +- if (_IO_old_file_attach (&new_f->fp.file, fd) == NULL) ++ if (_IO_old_file_attach (&new_f->fp.file._file, fd) == NULL) + { +- INTUSE(_IO_un_link) (&new_f->fp); ++ INTUSE(_IO_un_link) ((struct _IO_FILE_plus *) &new_f->fp); + free (new_f); + return NULL; + } +- new_f->fp.file._flags &= ~_IO_DELETE_DONT_CLOSE; ++ new_f->fp.file._file._flags &= ~_IO_DELETE_DONT_CLOSE; + +- new_f->fp.file._IO_file_flags = +- _IO_mask_flags (&new_f->fp.file, read_write, ++ new_f->fp.file._file._IO_file_flags = ++ _IO_mask_flags (&new_f->fp.file._file, read_write, + _IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING); + + return (_IO_FILE *) &new_f->fp; +--- glibc-2.3.2/libio/oldiofopen.c.orig 2003-10-27 15:57:55.000000000 -0500 ++++ glibc-2.3.2/libio/oldiofopen.c 2003-10-27 16:11:26.000000000 -0500 +@@ -42,7 +42,7 @@ _IO_old_fopen (filename, mode) + { + struct locked_FILE + { +- struct _IO_FILE_plus fp; ++ struct _IO_FILE_complete_plus fp; + #ifdef _IO_MTSAFE_IO + _IO_lock_t lock; + #endif +@@ -51,17 +51,17 @@ _IO_old_fopen (filename, mode) + if (new_f == NULL) + return NULL; + #ifdef _IO_MTSAFE_IO +- new_f->fp.file._lock = &new_f->lock; ++ new_f->fp.file._file._lock = &new_f->lock; + #endif +- _IO_old_init (&new_f->fp.file, 0); +- _IO_JUMPS (&new_f->fp) = &_IO_old_file_jumps; +- _IO_old_file_init (&new_f->fp); ++ _IO_old_init (&new_f->fp.file._file, 0); ++ _IO_JUMPS ((struct _IO_FILE_plus *) &new_f->fp) = &_IO_old_file_jumps; ++ _IO_old_file_init ((struct _IO_FILE_plus *) &new_f->fp); + #if !_IO_UNIFIED_JUMPTABLES + new_f->fp.vtable = NULL; + #endif + if (_IO_old_file_fopen ((_IO_FILE *) &new_f->fp, filename, mode) != NULL) + return (_IO_FILE *) &new_f->fp; +- INTUSE(_IO_un_link) (&new_f->fp); ++ INTUSE(_IO_un_link) ((struct _IO_FILE_plus *) &new_f->fp); + free (new_f); + return NULL; + } +--- glibc-2.3.2/libio/oldiopopen.c.orig 2003-10-27 14:11:13.000000000 -0500 ++++ glibc-2.3.2/libio/oldiopopen.c 2003-10-27 16:24:10.000000000 -0500 +@@ -100,7 +100,7 @@ extern int _IO_dup2 __P ((int fd, int fd + + struct _IO_proc_file + { +- struct _IO_FILE_plus file; ++ struct _IO_FILE_complete_plus file; + /* Following fields must match those in class procbuf (procbuf.h) */ + _IO_pid_t pid; + struct _IO_proc_file *next; +@@ -219,18 +219,18 @@ _IO_old_popen (command, mode) + if (new_f == NULL) + return NULL; + #ifdef _IO_MTSAFE_IO +- new_f->fpx.file.file._lock = &new_f->lock; ++ new_f->fpx.file.file._file._lock = &new_f->lock; + #endif +- fp = &new_f->fpx.file.file; +- INTUSE(_IO_init) (fp, 0); +- _IO_JUMPS (&new_f->fpx.file) = &_IO_old_proc_jumps; +- _IO_old_file_init (&new_f->fpx.file); ++ fp = &new_f->fpx.file.file._file; ++ _IO_old_init (fp, 0); ++ _IO_JUMPS ((struct _IO_FILE_plus *) &new_f->fpx.file) = &_IO_old_proc_jumps; ++ _IO_old_file_init ((struct _IO_FILE_plus *) &new_f->fpx.file); + #if !_IO_UNIFIED_JUMPTABLES + new_f->fpx.file.vtable = NULL; + #endif + if (_IO_old_proc_open (fp, command, mode) != NULL) + return fp; +- INTUSE(_IO_un_link) (&new_f->fpx.file); ++ INTUSE(_IO_un_link) ((struct _IO_FILE_plus *) &new_f->fpx.file); + free (new_f); + return NULL; + } |