]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
lto.c (O_BINARY): Define.
authorAndy Hutchinson <hutchinsonandy@gcc.gnu.org>
Mon, 11 Jan 2010 23:15:32 +0000 (23:15 +0000)
committerAndy Hutchinson <hutchinsonandy@gcc.gnu.org>
Mon, 11 Jan 2010 23:15:32 +0000 (23:15 +0000)
2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

   * lto.c (O_BINARY): Define.
   (lto_read_section_data): Open file in binary mode.
   * lto-elf.c (O_BINARY): Define.
   (lto_elf_file_open): Open file in binary mode.

From-SVN: r155820

gcc/lto/ChangeLog
gcc/lto/lto-elf.c
gcc/lto/lto.c

index 5e52527a29f4384fcc4cde1e8537586b18e6beae..a726d32f5bb181341cb6a82e65f365b2640bd804 100644 (file)
@@ -1,3 +1,10 @@
+2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
+
+       * lto.c (O_BINARY): Define.
+       (lto_read_section_data): Open file in binary mode.
+       * lto-elf.c (O_BINARY): Define.
+       (lto_elf_file_open): Open file in binary mode. 
+
 2010-01-08  Richard Guenther  <rguenther@suse.de>
 
        PR lto/42528
index 0311ddefb230e1efd304685c4f3a3a05850be5d7..b70648d46800e49089ff4d0dedd639c2379d8de2 100644 (file)
@@ -29,6 +29,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "ggc.h"
 #include "lto-streamer.h"
 
+/* Handle opening elf files on hosts, such as Windows, that may use 
+   text file handling that will break binary access.  */
+
+#ifndef O_BINARY
+# define O_BINARY 0
+#endif
+
 
 /* Initialize FILE, an LTO file object for FILENAME.  */
 static void
@@ -580,7 +587,8 @@ lto_elf_file_open (const char *filename, bool writable)
   elf_file->fd = -1;
 
   /* Open the file.  */
-  elf_file->fd = open (fname, writable ? O_WRONLY|O_CREAT : O_RDONLY, 0666);
+  elf_file->fd = open (fname, writable ? O_WRONLY|O_CREAT|O_BINARY 
+                                      : O_RDONLY|O_BINARY, 0666);
   if (elf_file->fd == -1)
     {
       error ("could not open file %s", fname);
index 1608e56e1584bfdad295256326c0402000637a54..de53a09f87dac70b2a9b2090afea2db09f76783a 100644 (file)
@@ -50,6 +50,14 @@ along with GCC; see the file COPYING3.  If not see
 #include <sys/mman.h>
 #endif
 
+/* Handle opening elf files on hosts, such as Windows, that may use 
+   text file handling that will break binary access.  */
+
+#ifndef O_BINARY
+# define O_BINARY 0
+#endif
+
+
 DEF_VEC_P(bitmap);
 DEF_VEC_ALLOC_P(bitmap,heap);
 
@@ -421,7 +429,7 @@ lto_read_section_data (struct lto_file_decl_data *file_data,
   if (fd == -1)
     {
       fd_name = xstrdup (file_data->file_name);
-      fd = open (file_data->file_name, O_RDONLY);
+      fd = open (file_data->file_name, O_RDONLY|O_BINARY);
       if (fd == -1)
        return NULL;
     }