blob: f17bfbe93488a9c5154e4d7ebcf43213a3d5103e [file] [log] [blame]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <sys/stat.h>
#include "crtdll_stat.h"
/* Define _stat32() function via crtdll.dll _stat() function */
_CRTIMP int __cdecl __crtdll_stat(const char *name, struct __crtdll_stat *crtdll_stat);
int __cdecl _stat32(const char *name, struct _stat32 *stat)
{
struct __crtdll_stat crtdll_stat;
int ret = __crtdll_stat(name, &crtdll_stat);
if (ret == 0)
copy_stat_members(stat, &crtdll_stat);
return ret;
}
int (__cdecl *__MINGW_IMP_SYMBOL(_stat32))(const char *name, struct _stat32 *stat) = _stat32;
#undef _stat
int __attribute__ ((alias ("_stat32"))) __cdecl _stat(const char *name, struct _stat32 *stat);
extern int __attribute__ ((alias (__MINGW64_STRINGIFY(__MINGW_IMP_SYMBOL(_stat32))))) (__cdecl *__MINGW_IMP_SYMBOL(_stat))(const char *name, struct _stat32 *stat);
/*
* Function stat() (without leading underline) is provided by mingw-w64
* emulation due to trailing stash issue, so alias is not defined here.
* Emulation calls _stat32() function, which resolve to the correct one.
*/