This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Build question


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]