summaryrefslogtreecommitdiff
path: root/recipes/glibc/glibc-2.3.2/glibc23-libio-compat.patch
diff options
context:
space:
mode:
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.patch144
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;
+ }