From patchwork Sun Apr 3 15:11:51 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tobias Burnus X-Patchwork-Id: 89527 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id D0BF3B6F87 for ; Mon, 4 Apr 2011 01:12:00 +1000 (EST) Received: (qmail 18868 invoked by alias); 3 Apr 2011 15:11:59 -0000 Received: (qmail 18854 invoked by uid 22791); 3 Apr 2011 15:11:58 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, TW_GF X-Spam-Check-By: sourceware.org Received: from mx01.qsc.de (HELO mx01.qsc.de) (213.148.129.14) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 03 Apr 2011 15:11:54 +0000 Received: from [192.168.178.22] (port-92-204-58-2.dynamic.qsc.de [92.204.58.2]) by mx01.qsc.de (Postfix) with ESMTP id 831B43CB13; Sun, 3 Apr 2011 17:11:51 +0200 (CEST) Message-ID: <4D988E37.5010702@net-b.de> Date: Sun, 03 Apr 2011 17:11:51 +0200 From: Tobias Burnus User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.13) Gecko/20101206 SUSE/3.1.7 Thunderbird/3.1.7 MIME-Version: 1.0 To: Janne Blomqvist CC: gcc patches , gfortran Subject: Re: [Patch, libgFortran] Fix MinGW64 compile warning References: <4D8CCC8D.5060206@net-b.de> In-Reply-To: Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Janne Blomqvist wrote: > Since the reason for adding the gfstat_t typedef was that on mingw we > needed to use struct _stati64 instead of struct stat, and that > justification now seems to be gone with this patch, please also remove > gfstat_t and just use struct stat everywhere. How about the attached patch? (Build & regtested on x86-64-linux.) Tobias 2011-04-04 Tobias Burnus * unix.c: Adapt stat DEFINEs since MinGW64 supports LFS. (fallback_access, open_internal4, compare_file_filename, find_file, file_size, inquire_sequential, inquire_direct, inquire_formatted): Use "struct stat" instead of gfstat_t. diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c index edccdd6..d14d2b4 100644 --- a/libgfortran/io/unix.c +++ b/libgfortran/io/unix.c @@ -48,10 +48,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define WIN32_LEAN_AND_MEAN #include +#if !defined(_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64 +#undef lseek #define lseek _lseeki64 +#undef fstat #define fstat _fstati64 +#undef stat #define stat _stati64 -typedef struct _stati64 gfstat_t; +#endif #ifndef HAVE_WORKING_STAT static uint64_t @@ -96,9 +100,6 @@ id_from_fd (const int fd) } #endif - -#else -typedef struct stat gfstat_t; #endif #ifndef PATH_MAX @@ -156,7 +157,7 @@ fallback_access (const char *path, int mode) if (mode == F_OK) { - gfstat_t st; + struct stat st; return stat (path, &st); } @@ -924,7 +925,7 @@ open_internal4 (char *base, int length, gfc_offset offset) static stream * fd_to_stream (int fd) { - gfstat_t statbuf; + struct stat statbuf; unix_stream *s; s = get_mem (sizeof (unix_stream)); @@ -1405,7 +1406,7 @@ int compare_file_filename (gfc_unit *u, const char *name, int len) { char path[PATH_MAX + 1]; - gfstat_t st; + struct stat st; #ifdef HAVE_WORKING_STAT unix_stream *s; #else @@ -1446,7 +1447,7 @@ compare_file_filename (gfc_unit *u, const char *name, int len) #ifdef HAVE_WORKING_STAT -# define FIND_FILE0_DECL gfstat_t *st +# define FIND_FILE0_DECL struct stat *st # define FIND_FILE0_ARGS st #else # define FIND_FILE0_DECL uint64_t id, const char *file, gfc_charlen_type file_len @@ -1505,7 +1506,7 @@ gfc_unit * find_file (const char *file, gfc_charlen_type file_len) { char path[PATH_MAX + 1]; - gfstat_t st[1]; + struct stat st[1]; gfc_unit *u; #if defined(__MINGW32__) && !HAVE_WORKING_STAT uint64_t id = 0ULL; @@ -1656,7 +1657,7 @@ GFC_IO_INT file_size (const char *file, gfc_charlen_type file_len) { char path[PATH_MAX + 1]; - gfstat_t statbuf; + struct stat statbuf; if (unpack_filename (path, file, file_len)) return -1; @@ -1677,7 +1678,7 @@ const char * inquire_sequential (const char *string, int len) { char path[PATH_MAX + 1]; - gfstat_t statbuf; + struct stat statbuf; if (string == NULL || unpack_filename (path, string, len) || stat (path, &statbuf) < 0) @@ -1701,7 +1702,7 @@ const char * inquire_direct (const char *string, int len) { char path[PATH_MAX + 1]; - gfstat_t statbuf; + struct stat statbuf; if (string == NULL || unpack_filename (path, string, len) || stat (path, &statbuf) < 0) @@ -1725,7 +1726,7 @@ const char * inquire_formatted (const char *string, int len) { char path[PATH_MAX + 1]; - gfstat_t statbuf; + struct stat statbuf; if (string == NULL || unpack_filename (path, string, len) || stat (path, &statbuf) < 0)