From: Manu <ma...@wa...> - 2003-10-26 23:24:17
|
Earnie Boyd wrote: > Add an error here: > #ifdef mkdir > # error You have defined mkdir as a macro > #endif I've tested a variant: <unistd.h> /* * This file is part of the Mingw32 package. * * unistd.h maps (roughly) to io.h */ #ifndef __STRICT_ANSI__ #undef mkdir #include <io.h> #include <process.h> #define mkdir(name, mode) ((_mkdir) (name)) #define __UNISTD_GETOPT__ #include <getopt.h> #undef __UNISTD_GETOPT__ #endif </unistd.h> Danny is right, binutils will require some changes. Once a new MinGW runtime is out, the following should be committed to binutils: <binutils.diff> diff -rup orig/objcopy.c mkdir/objcopy.c --- orig/objcopy.c Tue Oct 21 14:08:12 2003 +++ mkdir/objcopy.c Sun Oct 26 22:52:06 2003 @@ -1428,13 +1428,6 @@ copy_object (bfd *ibfd, bfd *obfd) } } -#undef MKDIR -#if defined (_WIN32) && !defined (__CYGWIN32__) -#define MKDIR(DIR, MODE) mkdir (DIR) -#else -#define MKDIR(DIR, MODE) mkdir (DIR, MODE) -#endif - /* Read each archive element in turn from IBFD, copy the contents to temp file, and keep the temp file handle. */ @@ -1452,7 +1445,7 @@ copy_archive (bfd *ibfd, bfd *obfd, cons char *dir = make_tempname (bfd_get_filename (obfd)); /* Make a temp directory to hold the contents. */ - if (MKDIR (dir, 0700) != 0) + if (mkdir (dir, 0700) != 0) fatal (_("cannot mkdir %s for archive copying (error: %s)"), dir, strerror (errno)); @@ -1481,7 +1474,7 @@ copy_archive (bfd *ibfd, bfd *obfd, cons if (stat (output_name, &buf) >= 0) { output_name = make_tempname (output_name); - if (MKDIR (output_name, 0700) != 0) + if (mkdir (output_name, 0700) != 0) fatal (_("cannot mkdir %s for archive copying (error: %s)"), output_name, strerror (errno)); </binutils.diff> gcc shouldn't require any changes since it uses a m4 macro that test if mkdir takes 2 args or only 1. Manu. |
From: <dan...@ya...> - 2003-10-27 01:14:45
|
--- Manu <ma...@wa...> wrote: > Earnie Boyd wrote: > > > Add an error here: > > #ifdef mkdir > > # error You have defined mkdir as a macro > > #endif > > I've tested a variant: > <unistd.h> > /* > * This file is part of the Mingw32 package. > * > * unistd.h maps (roughly) to io.h > */ > > #ifndef __STRICT_ANSI__ > > #undef mkdir > > #include <io.h> > #include <process.h> > > #define mkdir(name, mode) ((_mkdir) (name)) > > #define __UNISTD_GETOPT__ > #include <getopt.h> > #undef __UNISTD_GETOPT__ > > #endif > </unistd.h> > > > Danny is right, binutils will require some changes. > Once a new MinGW runtime is out, the following should > be committed to binutils: > > <binutils.diff> > diff -rup orig/objcopy.c mkdir/objcopy.c > --- orig/objcopy.c Tue Oct 21 14:08:12 2003 > +++ mkdir/objcopy.c Sun Oct 26 22:52:06 2003 > @@ -1428,13 +1428,6 @@ copy_object (bfd *ibfd, bfd *obfd) > } > } > > -#undef MKDIR > -#if defined (_WIN32) && !defined (__CYGWIN32__) > -#define MKDIR(DIR, MODE) mkdir (DIR) > -#else > -#define MKDIR(DIR, MODE) mkdir (DIR, MODE) > -#endif > - > /* Read each archive element in turn from IBFD, copy the > contents to temp file, and keep the temp file handle. */ > > @@ -1452,7 +1445,7 @@ copy_archive (bfd *ibfd, bfd *obfd, cons > char *dir = make_tempname (bfd_get_filename (obfd)); > > /* Make a temp directory to hold the contents. */ > - if (MKDIR (dir, 0700) != 0) > + if (mkdir (dir, 0700) != 0) > fatal (_("cannot mkdir %s for archive copying (error: %s)"), > dir, strerror (errno)); > > @@ -1481,7 +1474,7 @@ copy_archive (bfd *ibfd, bfd *obfd, cons > if (stat (output_name, &buf) >= 0) > { > output_name = make_tempname (output_name); > - if (MKDIR (output_name, 0700) != 0) > + if (mkdir (output_name, 0700) != 0) > fatal (_("cannot mkdir %s for archive copying (error: %s)"), > output_name, strerror (errno)); > > </binutils.diff> > > gcc shouldn't require any changes since it uses a m4 macro that test > if mkdir takes 2 args or only 1. > The above change to binutils will break compatability with older mingw runtime, so I would be hesitant to submit to binutils list. Why break binutils in the first place The proposed change to unistd.h also breaks breaks building of the gnatlib component of gcc (ada/mkdir.c), even though the m4 macro you mention enables the 2-arg version of mkdir. The fix there is easy. Use (mkdir) rather than mkdir. Why break it in first place? Danny > Manu. > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: The SF.net Donation Program. > Do you like what SourceForge.net is doing for the Open > Source Community? Make a contribution, and help us add new > features and functionality. Click here: http://sourceforge.net/donate/ > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users http://personals.yahoo.com.au - Yahoo! Personals New people, new possibilities. FREE for a limited time. |
From: Earnie B. <ea...@us...> - 2003-10-25 22:18:36
|
Paul Eggert wrote: > "Eli Zaretskii" <el...@el...> writes: > > >>This seems to indicate that some header where you have a prototype of >>mkdir (which on your system takes 1 argument) was seen by the >>compiler _after_ config.h, and thus it was processed as the prototype >>of fixed_mkdir. > > > Yes; the header is <unistd.h>, which apparently includes <io.h>. > > Perhaps we can work around the problem on mingw by defining our own > unistd.h, which looks like this: > > #include "/path/to/mingw's/unistd.h" > #define mkdir(d, m) ((mkdir) (d)) > > That way, we wouldn't have to modify the existing source code or .m4 > files at all. > Well, I've been contemplating modifying MinGW's unistd.h anyway for this. Seems the right thing to do since unistd.h is a convenience MinGW add on for UNIX programs anyway. Manu, since you started this, do you want to do the honors of patching the MinGW unistd.h file? You should use the _mkdir MS version in the body of the definition. Earnie -- http://www.mingw.org Powered by SourceForge <http://sourceforge.net/projects/mingw> |
From: Mikhail T. <ter...@em...> - 2003-10-22 20:42:55
|
Paul, Any plans for creating CVS repository for GNU patch? Regards, Mikhail Paul Eggert wrote: > "manubee" <ma...@wa...> writes: > > >>The CVS seems empty. > > > There is no CVS for GNU patch, yet. |