On Mon, Jan 16, 2012 at 7:03 AM, Pierre Muller wrote: >  After some debugging, > we finally managed to find out that > mingw32 specific directory relocations are related > to msys -> mingw32 argument conversions. Thanks for the detective work! > http://sourceware.org/ml/gdb-patches/2012-01/msg00537.html > > This is explained in: > > http://www.mingw.org/wiki/Posix_path_conversion > > This page also allows to understand why > using mingw32 style paths for prefix at configure > level works and avoid the troubles encountered. > > This conversion concerns defines passed by command line arguments > to gcc, which are specific to main.o > compilation, as found in gdb/Makefile.in > 1520- > 1521:# main.o needs an explicit build rule to get TARGET_SYSTEM_ROOT and > BINDIR. > 1522-main.o: $(srcdir)/main.c > 1523:   $(COMPILE) $(TARGET_SYSTEM_ROOT_DEFINE) -DBINDIR=\"$(bindir)\" > $(srcdir)/main.c > 1524-   $(POSTCOMPILE) > 1525- > >  But this leads to a conversion: >  -DBINDIR="/usr/local/bin\" > gets transformed into '-D' 'BINDIR="E:/msys/mingw32/msys/1.0/local/bin"' > >  While other pates used in relocate_gdb_directory calls > are macros defined inside gdb/config.h > > config.h:#define DEBUGDIR "/usr/local/lib/debug" > config.h:#define GDB_DATADIR "/usr/local/share/gdb" > config.h:#define JIT_READER_DIR "/usr/local/lib/gdb" > > Those are of course not affected by msys command-line argument conversion. > >  The first question is: > Why do we need to pass BINDIR (and TARGET_SYSTEM_ROOT_DEFINE) > at the command line instead of inside config.h as for other > directories? We don't need to pass them on the command line. >  If the answer to the first question is "we don't", > then I need help about how to convert those > Makefile.in variables into new entries of generated config.h file. Possible patch is attached. Can you try it? I don't know that it will fix things, but based on what you've said it seems reasonable to try. There is an open issue that the current --with-sysroot relocatability computation is different than what GDB_AC_WITH_DIR does. We should fix that regardless. I've left that as a separate issue. [We should resolve it before checkin, but at this point I'm willing to just experiment until we know what the right fix is.] >  I don't have enough knowledge about autoconf scripts to > handle this... >  An extra bonus of this change would be that it would > render the special rule for main.o compilation unnecessary.