This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Build question
- From: Eli Zaretskii <eliz at gnu dot org>
- To: danny dot backx at scarlet dot be
- Cc: tromey at redhat dot com, gdb at sourceware dot org
- Date: Tue, 01 Sep 2009 22:31:55 +0300
- Subject: Re: Build question
- References: <1250803105.11282.96.camel@pavilion> <m3fxbl2jib.fsf@fleche.redhat.com> <83d46pgjkq.fsf@gnu.org> <1250877901.11282.116.camel@pavilion> <83ab1tgh9h.fsf@gnu.org> <1250880746.11282.128.camel@pavilion> <m3r5v425lu.fsf@fleche.redhat.com> <1250931899.11282.142.camel@pavilion> <83skfkfa4n.fsf@gnu.org> <1251095160.16357.352.camel@pavilion> <1251828295.6106.119.camel@pavilion>
- Reply-to: Eli Zaretskii <eliz at gnu dot org>
> From: Danny Backx <danny.backx@scarlet.be>
> Cc: tromey@redhat.com, gdb@sourceware.org
> Date: Tue, 01 Sep 2009 20:04:55 +0200
>
> Getting most things I care about to work is done by simplifying
> include/filenames.h so it unconditionally takes the DOS versions of
> IS_DIR_SEPARATOR() and IS_ABSOLUTE_PATH().
If Unix users will not be too unhappy about that, as Daniel says, I
don't mind. But I still think it's a better idea to have a
user-settable option to control that at runtime.
> Apart from that, HAVE_DOS_BASED_FILE_SYSTEM is used in a number of
> sources (even though filenames.h appears to do much already) :
> ./libiberty/make-relative-prefix.c
> ./libiberty/basename.c
> ./libiberty/lbasename.c
> ./include/filenames.h
> ./bfd/archive.c
> ./gdb/utils.c
> ./gdb/cli/cli-cmds.c
> ./gdb/completer.c
> ./gdb/symtab.c
> ./gdb/source.c
>
> Quick analysis :
>
> The code in bfd/archive.c could probably be cleaned up based on
> IS_DIR_SEPARATOR.
Even better, just use lbasename or even basename.
> The code in gdb/utils.c could just always be compiled in.
Again, if Unix users don't mind losing support for files of the form
"d:foo".
> Same, I think, for gdb/cli/cli-cmds.c.
No, this one needs another macro: FILENAME_PREFIX_LEN, which should be
1 on Posix platforms and 3 on DOS-ish systems. Use the DOS-ish
variant on Posix systems if "d:/foo" is not an important file name.
> One part of gdb/completer.c is file name break characters. Not sure how
> to deal with those.
That one needs to be left as-is on DOS/Windows, but not on Unix. But
this is just for completion, so it's not a grave problem for your
use-case.
> The other #if is no problem.
Again, we need FILENAME_PREFIX_LEN here. See above.
> The stuff in gdb/symtab.c does case independent string compare in the
> DOS case.
I see a need for FILENAME_CMPN here, similar to FILENAME_CMP that we
already have. But using this on Unix is a bad idea, I think: you do
NOT want case-insensitive file comparison there, do you?
> gdb/source.c looks safe too.
FILENAME_PREFIX_LEN again for the first hunk, something like realpath
for the second, I think. Do we care about "d:" on Posix systems?