Re: Build question

Eli Zaretskii
2009-09-01T19:34:06Z

> 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?