Hello World!
I'm new here and not working on the MinGW project. I am using Windows Seven
X86-64 in the present case.
I usually build FriCAS : http://fricas.sourceforge.net/ with help of the
MinGW compiler. FriCAS is Computer Algebra Software. FriCAS is
fundamentally based on top of LISP implementations but for file operations,
for example, it requires a small .so dynamic library coded in C .
Yesterday, I tried to build the new version of FriCAS with the latest
version of SBCL (a LISP implementation). The latest version of SBCL is a 64
bits binary so I decided to switch to mingw-64 instead of my MinGW outdated
32 bits version (gcc-3.4.4 approximatively ;).
===================================================================
But here comes my problem :
In FriCAS there is a function to create a directory :
------------------------------------------------------------------------------------------
/* Make a directory returning 0 for success and -1 for failure */
int
makedir(char *path)
{
#ifdef S_IRWXO
return ( mkdir (path,(S_IRWXU | S_IRWXO | S_IRWXG)) );
#else
return ( mkdir (path) );
#endif
}
-----------------------------------------------------------------------------------------
When the compiler passes, it throws an error from io.h because it is trying
to use the mkdir function with two arguments (Message : "...too many many
arguments...")
The part of io.h from MinGW :
---------------------------------------------------------------------------------------
#ifndef NO_OLDNAMES
#ifndef _UWIN
int __cdecl chdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
char *__cdecl getcwd (char *, int) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
int __cdecl mkdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
char *__cdecl mktemp(char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
int __cdecl rmdir (const char*) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
int __cdecl chmod (const char *, int) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
#endif /* _UWIN */
#endif /* Not NO_OLDNAMES */
------------------------------------------------------------------------------------------
FriCAS is built and run essentially on Linux. When I build it on Windows I
have always used the old 32 bits compiler without problem. Since the MinGW
update that no longer works. Any hint why? What I see is a message about
the Microsoft Compiler. Is the constant S_IRWXO deprecated too?
To resume, can you tell me what happens and what have been deprecated
about these file functions. May be you have some hints to fix it in clean
manner? For information I successfully built FriCAS with a quick and dirty
fix of course but I would be glad to transmit a relatively clean solution
to the FriCAS community.
Hope you understand me.
Regards
--
Grégory Vanuxem
PS / Attached files are for the source code written here (licence issue).
------------------------------------------------------------------------------
Announcing the Oxford Dictionaries API! The API offers world-renowned
dictionary content that is easy and intuitive to access. Sign up for an
account today to start using our lexical data to power your apps and
projects. Get started today and enter our developer competition.
http://sdm.link/oxford
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public