Thread overview
r50 mingw32 doesn't work
Dec 06, 2006
David Friedman
Compiler relocation with MinGW [Re: r50 mingw32 doesn't work]
Dec 11, 2006
David Friedman
December 06, 2006
Hi folks.

I've been trying to compile GDC in mingw32, and while I managed to compile it I can't get it to work properly.

I'm using 0.20-dev revision 50.

./configure --prefix=c:/gdc --enable-threads=win32
--enable-languages=c,d --disable-nls --disable-win32-registry
--disable-shared --disable-bootstrap
&&
make all
&&
make install

I also tried --prefix=/gdc same problem. And the problem is:

object.d: module object cannot read file 'object.d'

I then try adding /c/gdc/include/d/3.4.2 as include path but then I get:

C:\MinGW\bin\ld.exe: crt2.o: No such file: No such file or directory

The crt2.o file is not anywhere to be found. neither in my build or install dirs.

I'm not really sure where to go from here... any help will be much appreciated!

-- 

December 06, 2006
Tomas Lindquist Olsen wrote:
> Hi folks.
> 
> I've been trying to compile GDC in mingw32, and while I managed to
> compile it I can't get it to work properly.
> 
> I'm using 0.20-dev revision 50.
> 
> ./configure --prefix=c:/gdc --enable-threads=win32
> --enable-languages=c,d --disable-nls --disable-win32-registry
> --disable-shared --disable-bootstrap
> &&
> make all
> &&
> make install
> 
> I also tried --prefix=/gdc same problem. And the problem is:
> 
> object.d: module object cannot read file 'object.d'
> 
> I then try adding /c/gdc/include/d/3.4.2 as include path but then I get:
> 
> C:\MinGW\bin\ld.exe: crt2.o: No such file: No such file or directory
> 
> The crt2.o file is not anywhere to be found. neither in my build or
> install dirs.
> 
> I'm not really sure where to go from here... any help will be much
> appreciated!
> 

Currently, using a path starting with "/" will cause the problems you described.  Using c:/gdc and the like is the right thing to do for now, so I'm not sure why you are seeing this problem.  Also, crt2.o should be in C:\MinGW\lib (assuming C:\MinGW is your MinGW install path).  I don't think you could have build GDC without it!

David


December 11, 2006
I think I finally figured out this whole MinGW relocation thing...

If you want gdc (or g++) to work correctly, you have to configure with a prefix that does not get translated by MSYS.  One way to do this is to use a real Win32 path.  For example, "configure --prefix=c:/gdc"

This builds a working compiler that can also be relocated to another directory.  However, it is inconvenient for making packages (via "make install DESTDIR=...").  To build with a prefix that starts with '/', do the following:

Assuming the prefix you want is "/gdc"...

1. Add the following line to C:/msys/1.0/etc/fstab:

	/gdc		/gdc

   Note that a real /gdc directory need not exist.  If it does exist, it
   will not be directly accessible after making this change.

2. Quit all MSYS shells.

3. Start a new MSYS shell.  Verify that the fstab change as taken affect by running "cmd //c echo /gdc".  The output should be "/gdc".

4. You can now configure and build GCC with --prefix=/gdc.  Note that you cannot simply install with "make install" now (unless you revert the fstab change.)  You have to use "make DESTDIR=/some/other/place install"

David

Tomas Lindquist Olsen wrote:
> Hi folks.
> 
> I've been trying to compile GDC in mingw32, and while I managed to
> compile it I can't get it to work properly.
> 
> I'm using 0.20-dev revision 50.
> 
> ./configure --prefix=c:/gdc --enable-threads=win32
> --enable-languages=c,d --disable-nls --disable-win32-registry
> --disable-shared --disable-bootstrap
> &&
> make all
> &&
> make install
> 
> I also tried --prefix=/gdc same problem. And the problem is:
> 
> object.d: module object cannot read file 'object.d'
> 
> I then try adding /c/gdc/include/d/3.4.2 as include path but then I get:
> 
> C:\MinGW\bin\ld.exe: crt2.o: No such file: No such file or directory
> 
> The crt2.o file is not anywhere to be found. neither in my build or
> install dirs.
> 
> I'm not really sure where to go from here... any help will be much
> appreciated!
> 
December 11, 2006
David Friedman wrote:

> I think I finally figured out this whole MinGW relocation thing...
> 
> If you want gdc (or g++) to work correctly, you have to configure with a prefix that does not get translated by MSYS.  One way to do this is to use a real Win32 path.  For example, "configure --prefix=c:/gdc"
> 
> This builds a working compiler that can also be relocated to another directory.  However, it is inconvenient for making packages (via "make install DESTDIR=...").  To build with a prefix that starts with '/', do 

Thanks for the info, I will try this with the gdcwin 3.4.5 build later.
(will do the fake /gdc mount, instead of installing in /mingw like now)

My configure options: http://gdcwin.sourceforge.net/gcc-3.4.5-build.sh
(should be the same as what MinGW is using, plus the D language enabled)

--anders

PS.
Is it possible to get the pl2bat included for the MinGW/Windows build ?
(i.e. to build gdmd.bat, for Windows users not using MSYS/a real shell)

http://www.perl.com/doc/manual/html/win32/bin/pl2bat.pl.html
December 11, 2006
> Thanks for the info, I will try this with the gdcwin 3.4.5 build later.
> (will do the fake /gdc mount, instead of installing in /mingw like now)

Worked like a charm, built with --prefix=/gdc and later the
EXE installed into /mingw (C:\MinGW) without any problems...

I built GDC trunk SVN r20 for mac/win as a dress rehearsal
for the 0.20 release, that hopefully should be relocatable.

Thanks!
--anders

PS.
This time I included both "gdc.exe" and "mingw32-gdc.exe",
similar to "gdc" and "gdc-4.0" for the Mac OS X version.
December 13, 2006
David Friedman wrote:

> I think I finally figured out this whole MinGW relocation thing...
> 
> If you want gdc (or g++) to work correctly, you have to configure with a prefix that does not get translated by MSYS.  One way to do this is to use a real Win32 path.  For example, "configure --prefix=c:/gdc"
> 
> This builds a working compiler that can also be relocated to another directory.  However, it is inconvenient for making packages (via "make install DESTDIR=...").  To build with a prefix that starts with '/', do the following:
> 
> Assuming the prefix you want is "/gdc"...
> 
> 1. Add the following line to C:/msys/1.0/etc/fstab:
> 
> 	/gdc		/gdc
> 
>    Note that a real /gdc directory need not exist.  If it does exist,
> it    will not be directly accessible after making this change.
> 
> 2. Quit all MSYS shells.
> 
> 3. Start a new MSYS shell.  Verify that the fstab change as taken affect by running "cmd //c echo /gdc".  The output should be "/gdc".
> 
> 4. You can now configure and build GCC with --prefix=/gdc.  Note that you cannot simply install with "make install" now (unless you revert the fstab change.)  You have to use "make DESTDIR=/some/other/place install"
> 
> David
> 
> Tomas Lindquist Olsen wrote:
> > Hi folks.
> > 
> > I've been trying to compile GDC in mingw32, and while I managed to compile it I can't get it to work properly.
> > 
> > I'm using 0.20-dev revision 50.
> > 
> > ./configure --prefix=c:/gdc --enable-threads=win32
> > --enable-languages=c,d --disable-nls --disable-win32-registry
> > --disable-shared --disable-bootstrap
> > &&
> > make all
> > &&
> > make install
> > 
> > I also tried --prefix=/gdc same problem. And the problem is:
> > 
> > object.d: module object cannot read file 'object.d'
> > 
> > I then try adding /c/gdc/include/d/3.4.2 as include path but then I get:
> > 
> > C:\MinGW\bin\ld.exe: crt2.o: No such file: No such file or directory
> > 
> > The crt2.o file is not anywhere to be found. neither in my build or install dirs.
> > 
> > I'm not really sure where to go from here... any help will be much appreciated!
> > 

Yup this does the trick, thanx a lot!

gdc-0.20-dev r55 works properly in mingw :D

--