Hi Guys,

There are so many

#ifndef O_BINARY
#ifdef _O_BINARY
#define O_BINARY _O_BINARY
#define setmode _setmode
#else
#define O_BINARY 0
#endif
#endif

in binutils sources. It should go into sysdep.h.

H.J. is right, so I have applied the attached patch to fix the PR and move the definition of O_BINARY into sysdep.h.

Cheers
  Nick

binutils/ChangeLog
2008-04-28  M Thomas  <[EMAIL PROTECTED]>
            Nick Clifton  <[EMAIL PROTECTED]>

        PR binutils/6449
        * objdump.c (slurp_file): Open the file in binary mode.
        * ar.c: Remove conditional definition of O_BINARY.
        * bin2.c: Likewise.
        * rename.c: Likewise.
        * strings.c: Likewise.
        * sysdep.h: Add conditional definition of O_BINARY.


Index: binutils/ar.c
===================================================================
RCS file: /cvs/src/src/binutils/ar.c,v
retrieving revision 1.55
diff -c -3 -p -r1.55 ar.c
*** binutils/ar.c	28 Mar 2008 06:49:44 -0000	1.55
--- binutils/ar.c	28 Apr 2008 08:04:47 -0000
***************
*** 45,56 ****
  #define EXT_NAME_LEN 6		/* Ditto for *NIX.  */
  #endif
  
- /* We need to open files in binary modes on system where that makes a
-    difference.  */
- #ifndef O_BINARY
- #define O_BINARY 0
- #endif
- 
  /* Kludge declaration from BFD!  This is ugly!  FIXME!  XXX  */
  
  struct ar_hdr *
--- 45,50 ----
Index: binutils/bin2c.c
===================================================================
RCS file: /cvs/src/src/binutils/bin2c.c,v
retrieving revision 1.3
diff -c -3 -p -r1.3 bin2c.c
***************
*** 22,30 ****
  #include "bfd.h"
  #include "bucomm.h"
  
! #if !defined O_BINARY && defined _O_BINARY
    /* For MSC-compatible compilers.  */
- # define O_BINARY _O_BINARY
  # define O_TEXT _O_TEXT
  #endif
  
--- 22,29 ----
  #include "bfd.h"
  #include "bucomm.h"
  
! #if !defined O_TEXT && defined _O_TEXT
    /* For MSC-compatible compilers.  */
  # define O_TEXT _O_TEXT
  #endif
  
Index: binutils/objdump.c
===================================================================
RCS file: /cvs/src/src/binutils/objdump.c,v
retrieving revision 1.139
diff -c -3 -p -r1.139 objdump.c
*** binutils/objdump.c	1 Mar 2008 07:19:06 -0000	1.139
--- binutils/objdump.c	28 Apr 2008 08:04:47 -0000
*************** slurp_file (const char *fn, size_t *size
*** 975,981 ****
  #endif
    const char *map;
    struct stat st;
!   int fd = open (fn, O_RDONLY);
  
    if (fd < 0)
      return NULL;
--- 975,981 ----
  #endif
    const char *map;
    struct stat st;
!   int fd = open (fn, O_RDONLY | O_BINARY);
  
    if (fd < 0)
      return NULL;
Index: binutils/rename.c
===================================================================
RCS file: /cvs/src/src/binutils/rename.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 rename.c
*** binutils/rename.c	5 Jul 2007 16:54:45 -0000	1.12
--- binutils/rename.c	28 Apr 2008 08:04:47 -0000
***************
*** 32,43 ****
  #endif /* HAVE_UTIMES */
  #endif /* ! HAVE_GOOD_UTIME_H */
  
- /* We need to open the file in binary modes on system where that makes
-    a difference.  */
- #ifndef O_BINARY
- #define O_BINARY 0
- #endif
- 
  #if ! defined (_WIN32) || defined (__CYGWIN32__)
  static int simple_copy (const char *, const char *);
  
--- 32,37 ----
Index: binutils/strings.c
===================================================================
RCS file: /cvs/src/src/binutils/strings.c,v
retrieving revision 1.40
diff -c -3 -p -r1.40 strings.c
*** binutils/strings.c	15 Feb 2008 10:20:09 -0000	1.40
--- binutils/strings.c	28 Apr 2008 08:04:48 -0000
***************
*** 69,85 ****
  /* Some platforms need to put stdin into binary mode, to read
      binary files.  */
  #ifdef HAVE_SETMODE
- #ifndef O_BINARY
  #ifdef _O_BINARY
- #define O_BINARY _O_BINARY
  #define setmode _setmode
- #else
- #define O_BINARY 0
- #endif
  #endif
  #if O_BINARY
  #include <io.h>
! #define SET_BINARY(f) do { if (!isatty (f)) setmode (f,O_BINARY); } while (0)
  #endif
  #endif
  
--- 69,80 ----
  /* Some platforms need to put stdin into binary mode, to read
      binary files.  */
  #ifdef HAVE_SETMODE
  #ifdef _O_BINARY
  #define setmode _setmode
  #endif
  #if O_BINARY
  #include <io.h>
! #define SET_BINARY(f) do { if (!isatty (f)) setmode (f, O_BINARY); } while (0)
  #endif
  #endif
  
Index: binutils/sysdep.h
===================================================================
RCS file: /cvs/src/src/binutils/sysdep.h,v
retrieving revision 1.3
diff -c -3 -p -r1.3 sysdep.h
*** binutils/sysdep.h	31 Aug 2007 15:06:11 -0000	1.3
--- binutils/sysdep.h	28 Apr 2008 08:04:48 -0000
***************
*** 36,41 ****
--- 36,49 ----
  #include "fopen-same.h"
  #endif
  
+ #ifndef O_BINARY
+ #ifdef  _O_BINARY
+ #define O_BINARY _O_BINARY
+ #else
+ #define O_BINARY 0
+ #endif
+ #endif
+ 
  #include <errno.h>
  #ifndef errno
  extern int errno;
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to