diff options
-rw-r--r-- | gold/ChangeLog | 7 | ||||
-rw-r--r-- | gold/descriptors.cc | 5 | ||||
-rw-r--r-- | gold/script.cc | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 0ae3429..74f72b8 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,10 @@ +2009-10-09 Andrew Pinski <andrew_pinski@playstation.sony.com> + Ian Lance Taylor <iant@google.com> + + * descriptor.cc: Include <cstdio> and "binary-io.h". + (Descriptors::open): Open the files in binary mode always. + * script.cc (Lex::get_token): Treat \r as whitespace. + 2009-10-09 Ian Lance Taylor <iant@google.com> * testsuite/retain_symbols_file_test.sh: Don't test for __tcf_0. diff --git a/gold/descriptors.cc b/gold/descriptors.cc index 3d059e2..f4a02d0 100644 --- a/gold/descriptors.cc +++ b/gold/descriptors.cc @@ -23,6 +23,7 @@ #include "gold.h" #include <cerrno> +#include <cstdio> #include <cstring> #include <fcntl.h> #include <unistd.h> @@ -31,6 +32,7 @@ #include "options.h" #include "gold-threads.h" #include "descriptors.h" +#include "binary-io.h" // Very old systems may not define FD_CLOEXEC. #ifndef FD_CLOEXEC @@ -98,6 +100,9 @@ Descriptors::open(int descriptor, const char* name, int flags, int mode) // require callers to pass it. flags |= O_CLOEXEC; + // Always open the file as a binary file. + flags |= O_BINARY; + int new_descriptor = ::open(name, flags, mode); if (new_descriptor < 0 && errno != ENFILE diff --git a/gold/script.cc b/gold/script.cc index 05a39e7..d381f55 100644 --- a/gold/script.cc +++ b/gold/script.cc @@ -743,7 +743,7 @@ Lex::get_token(const char** pp) } // Skip whitespace quickly. - while (*p == ' ' || *p == '\t') + while (*p == ' ' || *p == '\t' || *p == '\r') ++p; if (*p == '\n') |