Created attachment 5984 [details] Fix mingw-w64 recently implemented support for large files using _FILE_OFFSET_BITS=64. Binutils uses "struct stat" instead of "#include <sys/stat.h>", which makes it fail to compile with mingw-w64 trunk. The attached patch fixes the issue.
(In reply to comment #0) > Created attachment 5984 [details] > Fix > > mingw-w64 recently implemented support for large files using > _FILE_OFFSET_BITS=64. > > Binutils uses "struct stat" instead of "#include <sys/stat.h>", which makes it > fail to compile with mingw-w64 trunk. > > The attached patch fixes the issue. I think you shouldn't edit bfd/bfd-in2.h since it is auto generated. The bfd-in.h is the file you want to patch, I guess. The patch doesn't seem to solve the problem for me. Do you have the issue bfd/archive.c?
(In reply to comment #1) > (In reply to comment #0) > > Created attachment 5984 [details] > > Fix > > > > mingw-w64 recently implemented support for large files using > > _FILE_OFFSET_BITS=64. > > > > Binutils uses "struct stat" instead of "#include <sys/stat.h>", which makes it > > fail to compile with mingw-w64 trunk. > > > > The attached patch fixes the issue. > > I think you shouldn't edit bfd/bfd-in2.h since it is auto generated. > The bfd-in.h is the file you want to patch, I guess. You are right. I'm attaching a new patch against bfd/bfd-in.h (which is essentially the same). > The patch doesn't seem to solve the problem for me. What is the problem you are experiencing now? What compiler are you trying? > Do you have the issue bfd/archive.c? Sorry, I don't understand :-?
Created attachment 6020 [details] Fix (patch bfd-in.h)
(In reply to comment #2) > (In reply to comment #1) > > (In reply to comment #0) > > > Created attachment 5984 [details] > > > Fix > > > > > > mingw-w64 recently implemented support for large files using > > > _FILE_OFFSET_BITS=64. > > > > > > Binutils uses "struct stat" instead of "#include <sys/stat.h>", which makes it > > > fail to compile with mingw-w64 trunk. > > > > > > The attached patch fixes the issue. > > > > I think you shouldn't edit bfd/bfd-in2.h since it is auto generated. > > The bfd-in.h is the file you want to patch, I guess. > > You are right. I'm attaching a new patch against bfd/bfd-in.h (which is > essentially the same). > > > > The patch doesn't seem to solve the problem for me. > > What is the problem you are experiencing now? What compiler are you trying? I'm using gcc 4.7 (trunk). ../../../binutils/bfd/archive.c: In function 'bfd_ar_hdr_from_filesystem': ../../../binutils/bfd/archive.c:1841:7: error: passing argument 1 of 'time' from incompatible pointer type [-Werror] In file included from j:\cross-gcc\bin\../lib/gcc/i686-w64-mingw32/4.7.0/../../../../i686-w64-mingw32/include/sys/time.h:10:0, from ../../../binutils/bfd/sysdep.h:64, from ../../../binutils/bfd/archive.c:130: j:\cross-gcc\bin\../lib/gcc/i686-w64-mingw32/4.7.0/../../../../i686-w64-mingw32/include/time.h:241:29: note: expected 'time_t *' but argument is of type '__time64_t *' cc1.exe: all warnings being treated as errors > > > > Do you have the issue bfd/archive.c? > > Sorry, I don't understand :-? Sorry, I wanted to ask if you also experienced the compile error in bfd/archive.c or somewhere else?
(In reply to comment #4) > (In reply to comment #2) > > (In reply to comment #1) > > > (In reply to comment #0) > > > > Created attachment 5984 [details] > > > > Fix > > > > > > > > mingw-w64 recently implemented support for large files using > > > > _FILE_OFFSET_BITS=64. > > > > > > > > Binutils uses "struct stat" instead of "#include <sys/stat.h>", which makes it > > > > fail to compile with mingw-w64 trunk. > > > > > > > > The attached patch fixes the issue. > > > > > > I think you shouldn't edit bfd/bfd-in2.h since it is auto generated. > > > The bfd-in.h is the file you want to patch, I guess. > > > > You are right. I'm attaching a new patch against bfd/bfd-in.h (which is > > essentially the same). > > > > > > > The patch doesn't seem to solve the problem for me. > > > > What is the problem you are experiencing now? What compiler are you trying? > > I'm using gcc 4.7 (trunk). > > ../../../binutils/bfd/archive.c: In function 'bfd_ar_hdr_from_filesystem': > ../../../binutils/bfd/archive.c:1841:7: error: passing argument 1 of 'time' > from incompatible pointer type [-Werror] > In file included from > j:\cross-gcc\bin\../lib/gcc/i686-w64-mingw32/4.7.0/../../../../i686-w64-mingw32/include/sys/time.h:10:0, > from ../../../binutils/bfd/sysdep.h:64, > from ../../../binutils/bfd/archive.c:130: > j:\cross-gcc\bin\../lib/gcc/i686-w64-mingw32/4.7.0/../../../../i686-w64-mingw32/include/time.h:241:29: > note: expected 'time_t *' but argument is of type '__time64_t *' > cc1.exe: all warnings being treated as errors I see. I am compiling a cross binutils CVS with gcc 4.6.1 on Linux. No, I am not seeing that problem. > > > > > > > > Do you have the issue bfd/archive.c? > > > > Sorry, I don't understand :-? > > Sorry, I wanted to ask if you also experienced the compile error in > bfd/archive.c or somewhere else? No, I do not have that problem.
(In reply to comment #4) > > What is the problem you are experiencing now? What compiler are you trying? > > I'm using gcc 4.7 (trunk). > > ../../../binutils/bfd/archive.c: In function 'bfd_ar_hdr_from_filesystem': > ../../../binutils/bfd/archive.c:1841:7: error: passing argument 1 of 'time' > from incompatible pointer type [-Werror] > In file included from > j:\cross-gcc\bin\../lib/gcc/i686-w64-mingw32/4.7.0/../../../../i686-w64-mingw32/include/sys/time.h:10:0, > from ../../../binutils/bfd/sysdep.h:64, > from ../../../binutils/bfd/archive.c:130: > j:\cross-gcc\bin\../lib/gcc/i686-w64-mingw32/4.7.0/../../../../i686-w64-mingw32/include/time.h:241:29: > note: expected 'time_t *' but argument is of type '__time64_t *' > cc1.exe: all warnings being treated as errors > > > > > > > > > Do you have the issue bfd/archive.c? > > > > Sorry, I don't understand :-? > > Sorry, I wanted to ask if you also experienced the compile error in > bfd/archive.c or somewhere else? I'm seeing that problem when compiling the 32-bit version. Compiling the 64-bit version works fine. However, you should open a new bug for that. It's unrelated to this.
(In reply to comment #6) > > Sorry, I wanted to ask if you also experienced the compile error in > > bfd/archive.c or somewhere else? > > I'm seeing that problem when compiling the 32-bit version. > > Compiling the 64-bit version works fine. > > However, you should open a new bug for that. It's unrelated to this. Alen, The problem with archive.c is a bug in mingw-w64. I have reported it and attached patches, please see: https://sourceforge.net/tracker/?func=detail&aid=3427267&group_id=202880&atid=983354 Now let's stop using this as a forum :-)
CVSROOT: /cvs/src Module name: src Changes by: nickc@sourceware.org 2011-10-24 11:23:41 Modified files: bfd : ChangeLog bfd-in.h bfd-in2.h Log message: PR binutils/13292 * bfd-in.h: Include <sys/stat.h> rather than forward defining struct stat. * bfd-in2.h: Regenerate. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5500&r2=1.5501 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/bfd-in.h.diff?cvsroot=src&r1=1.158&r2=1.159 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/bfd-in2.h.diff?cvsroot=src&r1=1.549&r2=1.550
Hi Pau, Thanks for the bug report and patch. I have checked your patch in along with the following changelog entry. Cheers Nick bfd/ChangeLog 2011-10-24 Pau Garcia i Quiles <pgquiles@elpauer.org> PR binutils/13292 * bfd-in.h: Include <sys/stat.h> rather than forward defining struct stat. * bfd-in2.h: Regenerate.