From: Joel Brobecker <brobecker@adacore.com>
To: Yao Qi <yao@codesourcery.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 3/7] Import lstat
Date: Tue, 02 Dec 2014 17:01:00 -0000 [thread overview]
Message-ID: <20141202170144.GA9407@adacore.com> (raw)
In-Reply-To: <1416980800-21408-4-git-send-email-yao@codesourcery.com>
> This patch is to import lstat gnulib module.
>
> gdb:
>
> 2014-11-26 Yao Qi <yao@codesourcery.com>
>
> * gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add
> lstat.
> * gnulib/aclocal.m4: Re-generated.
> * gnulib/config.in: Re-generated.
> * gnulib/configure: Re-generated.
> * gnulib/import/Makefile.am: Re-generated.
> * gnulib/import/Makefile.in: Re-generated.
> * gnulib/import/m4/gnulib-cache.m4: Re-generated.
> * gnulib/import/m4/gnulib-comp.m4: Re-generated.
> * gnulib/import/lstat.c: New file.
> * gnulib/import/m4/lstat.m4: New file.
For the record, I think this patch causes a build failure in
remote-sim.c on Windows hosts:
In file included from /[...]/gdb/remote-sim.c:34:0:
/[...]/gdb/../include/gdb/callback.h:93:9: error: duplicate member '_stati64'
int (*lstat) (host_callback *, const char *, struct stat *);
^
What happens it that gnulib's stat.h makes the following defines:
/* Large File Support on native Windows. */
#if 1
# define stat _stati64
#endif
and then:
#if 1
# if ! 0
/* mingw does not support symlinks, therefore it does not have lstat. But
without links, stat does just fine. */
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define lstat stat
# endif
So, the following fields in struct host_callback_struct...
int (*stat) (host_callback *, const char *, struct stat *);
int (*fstat) (host_callback *, int, struct stat *);
int (*lstat) (host_callback *, const char *, struct stat *);
... get translated to...
int (*_stati64) (host_callback *, const char *, struct _stati64 *);
int (*_fstati64) (host_callback *, int, struct _stati64 *);
int (*_stati64) (host_callback *, const char *, struct _stati64 *);
... which causes two fields to have the same name.
I think the only reasonable way out to avoid this sort of issue,
short of reverting the patch, is to do the same as in struct target_ops,
where the names of the fields start with "to_...". I'll work on the
immediate problem, which is to rename those 3 fields, but I think
we'll want to be consistent and rename them all. For instance
"ftruncate" also got translated:
int (*ftruncate64) (host_callback *, int, long);
Same for lseek (->lseek64), rename (->rpl_rename).
No actual harm in those cases, but it shows that those translations
do happen.
--
Joel
next prev parent reply other threads:[~2014-12-02 17:01 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-26 5:46 [PATCH 0/7 V2] Import the rename gnulib module Yao Qi
2014-11-26 5:46 ` [PATCH 2/7] Use readlink unconditionally Yao Qi
2014-11-26 5:46 ` [PATCH 1/7] Import readlink Yao Qi
2014-12-03 10:48 ` Joel Brobecker
2014-12-03 12:08 ` [RFA] configure gdb/gnulib with --disable-largefile if largefile support disabled Joel Brobecker
2014-12-03 17:59 ` Eli Zaretskii
2014-12-04 3:18 ` Joel Brobecker
2014-12-04 6:47 ` Eli Zaretskii
2014-12-13 16:29 ` Joel Brobecker
2014-12-04 2:17 ` Yao Qi
2014-12-13 14:46 ` pushed: " Joel Brobecker
2014-11-26 5:47 ` [PATCH 6/7] Use canonicalize_file_name unconditionally Yao Qi
2014-11-27 7:36 ` Joel Brobecker
2014-11-28 3:07 ` Yao Qi
2014-11-28 3:43 ` Joel Brobecker
2014-11-28 10:43 ` Yao Qi
2014-11-28 14:46 ` Joel Brobecker
2014-11-26 5:47 ` [PATCH 5/7] Import canonicalize-lgpl Yao Qi
2014-11-26 5:47 ` [PATCH 3/7] Import lstat Yao Qi
2014-12-02 17:01 ` Joel Brobecker [this message]
2014-12-03 9:48 ` [pushed] callback.h:struct host_callback_struct compilation error on Windows hosts Joel Brobecker
2014-12-04 1:09 ` Yao Qi
2014-12-04 5:42 ` Joel Brobecker
2014-11-26 5:47 ` [PATCH 4/7] Use lstat unconditionally Yao Qi
2014-11-26 5:47 ` [PATCH 7/7] Import rename module Yao Qi
2014-11-26 15:40 ` [PATCH 0/7 V2] Import the rename gnulib module Eli Zaretskii
2014-11-27 3:48 ` Yao Qi
2014-11-27 7:41 ` Joel Brobecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141202170144.GA9407@adacore.com \
--to=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=yao@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox