Possible fix for mingw32 directory relocation problems

Doug Evans dje@google.com
Tue Jan 17 09:56:00 GMT 2012


On Mon, Jan 16, 2012 at 7:03 AM, Pierre Muller
<pierre.muller@ics-cnrs.unistra.fr> 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mingw-config.patch
Type: application/octet-stream
Size: 3884 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20120117/9e0de771/attachment.obj>


More information about the Gdb-patches mailing list