digitalmars.D - dmd, x64 and Windows
- Trass3r (11/11) Feb 22 2011 While I'm delighted that we finally have a basic D2 x64 compiler I can't...
- Trass3r (2/4) Feb 22 2011 Just count the occurrences of "OPTLINK" preceding the post "Bye, D!":
- Andrej Mitrovic (5/5) Feb 22 2011 I've been trying to compile GDC the last couple of days. I've ran into
- Iain Buclaw (6/11) Feb 22 2011 D2 Ming32 cross-compiler built, but haven't yet tested the quality of th...
- Andrej Mitrovic (15/15) Feb 22 2011 I've tried to build it on native windows. It seems to build fine, and
- Andrej Mitrovic (21/33) Feb 23 2011 I don't understand this.
- Robert Clipsham (14/19) Feb 23 2011 echo $PATH
- Andrej Mitrovic (4/5) Feb 23 2011 Thanks. The opt/Mingw32/usr/bin folder has 586-mingw32msvc-gdc as the
- Robert Clipsham (7/12) Feb 23 2011 ls -s /opt/Mingw32/usr/bin/586-mingw32msvc-gdc /opt/Mingw32/usr/bin/gdc
- Andrej Mitrovic (10/10) Feb 23 2011 Right, installing gdc fixed the missing cc1d issue. But now I have other...
- Robert Clipsham (12/22) Feb 23 2011 Try:
- Andrej Mitrovic (8/13) Feb 23 2011 There is no opt/Mingw32/usr/local folder, there's a
- =?UTF-8?B?IkrDqXLDtG1lIE0uIEJlcmdlciI=?= (8/15) Feb 23 2011 This should be: ln -s ...
- Andrej Mitrovic (4/4) Feb 23 2011 Well now I've tried executing it from the build folder but then I get an...
- =?UTF-8?B?IkrDqXLDtG1lIE0uIEJlcmdlciI=?= (9/13) Feb 23 2011 test.d
- Iain Buclaw (7/19) Feb 27 2011 PPA here:
- Andrej Mitrovic (8/10) Feb 27 2011 Wohoo, binaries!! :]
- Iain Buclaw (8/18) Feb 27 2011 For a list of all files:
- Andrej Mitrovic (14/16) Feb 28 2011 After installing on a fresh Ubuntu 10.10 32bit I get:
- Andrej Mitrovic (5/5) Mar 05 2011 Well I have some good news, I've finally managed to get GDC working
- Mehrdad (5/7) Mar 06 2011 for D2 on Windows (using Msys). I owe it to Ian Buclaw and Daniel
- Andrej Mitrovic (6/6) Mar 07 2011 No problem. Make sure you follow the latest one because there's
- Caligo (2/2) Mar 05 2011 Kind of off-topic, but does anyone know if GDC is still scheduled to be
- Andrej Mitrovic (9/11) Mar 06 2011 Dunno. But this raises an interesting observation. If GDC gets
- Andrej Mitrovic (2/2) Feb 23 2011 Ooh I'm probably missing runtime libs like binutils. Sorry!
- Walter Bright (11/23) Feb 22 2011 To do 64 bits on Windows requires:
- Trass3r (2/14) Feb 23 2011 I do understand that. Hence I wonder even more, wouldn't it make sense t...
- Walter Bright (2/4) Feb 23 2011 Perhaps. I have to do more investigation.
While I'm delighted that we finally have a basic D2 x64 compiler I can't stop wondering how long it will take till I finally get my hands on it on Windows. God knows I'd have switched to gdc long ago if gcc wasn't such a PITA to compile on Windows! Several attempts over the past year failed. What bothers me most is that the bigger part of the delay is due to an antiquated object format, linker and C runtime (that have caused enough despair and rage since the beginning of time.. er, D) ELF is standard on Linux, Mach-O on Mac. And dmd adheres to that. So isn't Windows' de facto standard COFF in combination with MinGW's ld or VC's link the natural choice?
Feb 22 2011
antiquated object format, linker and C runtime (that have caused enough despair and rage since the beginning of time.. er, D)Just count the occurrences of "OPTLINK" preceding the post "Bye, D!": http://h3.gd/devlog/
Feb 22 2011
I've been trying to compile GDC the last couple of days. I've ran into some issues, but I've put them in GDC tickets and it seems from the last comments that Iain Buclaw has managed to create a cross-compiler setup and working. This is all last-minute info so I don't know if we'll have GDC working on Windows just yet.
Feb 22 2011
== Quote from Andrej Mitrovic (andrej.mitrovich gmail.com)'s articleI've been trying to compile GDC the last couple of days. I've ran into some issues, but I've put them in GDC tickets and it seems from the last comments that Iain Buclaw has managed to create a cross-compiler setup and working. This is all last-minute info so I don't know if we'll have GDC working on Windows just yet.D2 Ming32 cross-compiler built, but haven't yet tested the quality of the object files outputted (will no doubt be using WINE). Changeset: https://bitbucket.org/goshawk/gdc/changeset/978bb5bc82cf And briefly documented, as I *will* forget when the morning comes: https://bitbucket.org/goshawk/gdc/wiki/MinGWCrossCompile
Feb 22 2011
I've tried to build it on native windows. It seems to build fine, and after I've issued make install it got installed to build/mingw32. But I'm missing libstdc++.dll. I couldn't figure out where to download the dll from, the MinGW sourceforge website is horrible to browse through. I copied the DLL from an existing 4.5.2 MinGW installation. I tried compiling a simple test project: gdc main.d ld.exe: cannot find -lpthread I've already copied these: * binutils 2.20.51 * mingw-runtime 3.18 * w32api 3.14 But maybe I'm missing more runtime libraries. Probably some lib package that has the libstdc++.dll file as well. Any clues?
Feb 22 2011
On 2/23/11, Iain Buclaw <ibuclaw ubuntu.com> wrote:== Quote from Andrej Mitrovic (andrej.mitrovich gmail.com)'s articleI don't understand this. It takes at least 15 seconds to open the gcc archive with the few thousand source files on windows. And this is trying winrar, 7zip and peazip. Then it takes at least 30 seconds, or more like a minute to extract it. It takes an entire *hour* to build GCC+GDC, and this is with precompiled GMP, MPFR and MPC libraries. This is all done on Msys, of course. I have Ubuntu running in a Virtualbox (with hardware virtualization). It took 2 seconds to open the GCC archive, 4 seconds to extract it, and about 4 minutes to build GMP, MPFR, MPC and then GCC, in that order. I can't tell if this is the fault of MinGW or Msys. (or blame windows, hehe). Anywho, I've succesfully built it on Ubuntu, but since I'm such a linux naab I'm not sure how I'm supossed to install it. I've tried: sudo make DESTDIR="/build/Mingw32" install which apparently installed it in /build/Mingw32, but I can't seem to invoke it: $ gdc "The program 'gdc' is currently not installed. You can install it by typing: sudo apt-get install gdc" What do I have to do to be able to run gdc from within any folder?I've been trying to compile GDC the last couple of days. I've ran into some issues, but I've put them in GDC tickets and it seems from the last comments that Iain Buclaw has managed to create a cross-compiler setup and working. This is all last-minute info so I don't know if we'll have GDC working on Windows just yet.D2 Ming32 cross-compiler built, but haven't yet tested the quality of the object files outputted (will no doubt be using WINE). Changeset: https://bitbucket.org/goshawk/gdc/changeset/978bb5bc82cf And briefly documented, as I *will* forget when the morning comes: https://bitbucket.org/goshawk/gdc/wiki/MinGWCrossCompile
Feb 23 2011
On 23/02/11 21:15, Andrej Mitrovic wrote:which apparently installed it in /build/Mingw32, but I can't seem to invoke it: $ gdc "The program 'gdc' is currently not installed. You can install it by typing: sudo apt-get install gdc" What do I have to do to be able to run gdc from within any folder?echo $PATH The PATH environment variable holds a list of paths where executables are stored, to invoke a command without a path, it must be in the list. export PATH=/build/Mingw32/usr/bin:$PATH gdc should now work (if not, find the correct location of the gdc executable, I don't recall it - I think I got it right above). If it works, and you would like to make the change permenant, add the above line to the end of the .bashrc file in your home directory. As a side note, the "correct" place for custom, non-distribution software is in /opt, so you would install to /opt/mingw32 instead of /build. -- Robert http://octarineparrot.com/
Feb 23 2011
On 2/23/11, Robert Clipsham <robert octarineparrot.com> wrote:snipThanks. The opt/Mingw32/usr/bin folder has 586-mingw32msvc-gdc as the executable name for gdc. Is there a way to link 'gdc' calls to '586-mingw32msvc-gdc' ?
Feb 23 2011
On 23/02/11 21:36, Andrej Mitrovic wrote:On 2/23/11, Robert Clipsham<robert octarineparrot.com> wrote:ls -s /opt/Mingw32/usr/bin/586-mingw32msvc-gdc /opt/Mingw32/usr/bin/gdc Will create a symbolic link from gdc to 586-mingw32msvc-gdc (think of it as an alias or a shortcut). -- Robert http://octarineparrot.com/snipThanks. The opt/Mingw32/usr/bin folder has 586-mingw32msvc-gdc as the executable name for gdc. Is there a way to link 'gdc' calls to '586-mingw32msvc-gdc' ?
Feb 23 2011
Right, installing gdc fixed the missing cc1d issue. But now I have other issues: andrej andrej-VirtualBox:~/Desktop/test$ i586-mingw32msvc-gdc test.d object.d: Error: module object is in file 'object.d' which cannot be read import path[0] = /opt/Mingw32/usr/bin/../lib/gcc/i586-mingw32msvc/4.5.2/../../../../include/d2/4.5.2/i586-mingw32msvc import path[1] = /opt/Mingw32/usr/bin/../lib/gcc/i586-mingw32msvc/4.5.2/../../../../include/d2/4.5.2 andrej andrej-VirtualBox:~/Desktop/test$ The opt/Mingw32/user/include folder is empty. I've used this to install: make DESTDIR="/opt/Mingw32" install
Feb 23 2011
On 23/02/11 21:40, Andrej Mitrovic wrote:Right, installing gdc fixed the missing cc1d issue. But now I have other issues: andrej andrej-VirtualBox:~/Desktop/test$ i586-mingw32msvc-gdc test.d object.d: Error: module object is in file 'object.d' which cannot be read import path[0] = /opt/Mingw32/usr/bin/../lib/gcc/i586-mingw32msvc/4.5.2/../../../../include/d2/4.5.2/i586-mingw32msvc import path[1] = /opt/Mingw32/usr/bin/../lib/gcc/i586-mingw32msvc/4.5.2/../../../../include/d2/4.5.2 andrej andrej-VirtualBox:~/Desktop/test$ The opt/Mingw32/user/include folder is empty. I've used this to install: make DESTDIR="/opt/Mingw32" installTry: gdc -I/opt/Mingw32/usr/local/include/d/4.5.2 test.d Alternatively: find /opt/Mingw32 -name object.d Will give a list of object.d files in your install, try that with the -I instead (I think gdc accepts -I, if not, try gdmd which will convert dmd flags to gdc flags automatically... I can't remember if there's a gdc specific flag or not). -- Robert http://octarineparrot.com/
Feb 23 2011
On 2/23/11, Robert Clipsham <robert octarineparrot.com> wrote:Try: gdc -I/opt/Mingw32/usr/local/include/d/4.5.2 test.dThere is no opt/Mingw32/usr/local folder, there's a opt/Mingw32/usr/include folder but it's empty.Alternatively: find /opt/Mingw32 -name object.dDoesn't show anything.ls -s /opt/Mingw32/usr/bin/i586-mingw32msvc-gdc /opt/Mingw32/usr/bin/gdcandrej andrej-VirtualBox:/$ ls -s /opt/Mingw32/usr/bin/i586-mingw32msvc-gdc /opt/Mingw32/usr/bin/gdc ls: cannot access /opt/Mingw32/usr/bin/gdc: No such file or directory 520 /opt/Mingw32/usr/bin/i586-mingw32msvc-gdc
Feb 23 2011
Andrej Mitrovic wrote:On 2/23/11, Robert Clipsham <robert octarineparrot.com> wrote:dcls -s /opt/Mingw32/usr/bin/i586-mingw32msvc-gdc /opt/Mingw32/usr/bin/g==20 andrej andrej-VirtualBox:/$ ls -s /opt/Mingw32/usr/bin/i586-mingw32msvc-gdc /opt/Mingw32/usr/bin/gdc ls: cannot access /opt/Mingw32/usr/bin/gdc: No such file or directory 520 /opt/Mingw32/usr/bin/i586-mingw32msvc-gdcThis should be: ln -s ... Jerome --=20 mailto:jeberger free.fr http://jeberger.free.fr Jabber: jeberger jabber.fr
Feb 23 2011
Well now I've tried executing it from the build folder but then I get an error: andrej andrej-VirtualBox:~/Desktop/gdcbuild/buildgw/buildgw/gcc$ ./gdc test.d gdc: error trying to exec 'cc1d': execvp: No such file or directory (disregard the double buildgw folder, I've accidentally made two).
Feb 23 2011
Andrej Mitrovic wrote:Well now I've tried executing it from the build folder but then I get a=n error:andrej andrej-VirtualBox:~/Desktop/gdcbuild/buildgw/buildgw/gcc$ ./gdc =test.dgdc: error trying to exec 'cc1d': execvp: No such file or directory =20Do you have a folder named "gcc" in the current folder? Jerome --=20 mailto:jeberger free.fr http://jeberger.free.fr Jabber: jeberger jabber.fr
Feb 23 2011
== Quote from "Jérôme M. Berger" (jeberger free.fr)'s articleThis is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigBAD628AE9E72F8111315C90D Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Andrej Mitrovic wrote:PPA here: https://launchpad.net/~ibuclaw/+archive/ppa/+sourcepub/1528149/+listing-archive-extra std.stdio (and probably many more phobos modules) is not implemented for MinGW, so your pretty much stuck using just druntime for things. If you can work on it, please do. :) Regards.Well now I've tried executing it from the build folder but then I get a=n error:andrej andrej-VirtualBox:~/Desktop/gdcbuild/buildgw/buildgw/gcc$ ./gdc =test.dgdc: error trying to exec 'cc1d': execvp: No such file or directoryDo you have a folder named "gcc" in the current folder? Jerome
Feb 27 2011
On 2/27/11, Iain Buclaw <ibuclaw ubuntu.com> wrote:PPA here: https://launchpad.net/~ibuclaw/+archive/ppa/+sourcepub/1528149/+listing-archive-extraWohoo, binaries!! :] I'm a bit sick right now so I won't have much time to test it these days. I'll get better soon I hope. P.S. now that I've 'installed' it, how do I invoke it (I mean, calling 'gdc' in a terminal doesn't work, so the binary is called something else?)? And where does the package manager install it anyway? Thanks for all the work btw.
Feb 27 2011
== Quote from Andrej Mitrovic (andrej.mitrovich gmail.com)'s articleOn 2/27/11, Iain Buclaw <ibuclaw ubuntu.com> wrote:https://launchpad.net/~ibuclaw/+archive/ppa/+sourcepub/1528149/+listing-archive-extraPPA here:Wohoo, binaries!! :] I'm a bit sick right now so I won't have much time to test it these days. I'll get better soon I hope. P.S. now that I've 'installed' it, how do I invoke it (I mean, calling 'gdc' in a terminal doesn't work, so the binary is called something else?)? And where does the package manager install it anyway? Thanks for all the work btw.For a list of all files: dpkg -L gcc-mingw32 All binaries are prefixed with 'i586-mingw32msvc-*' to separate the cross compiler from the system compiler. It's not much, but should be enough to start some work on getting MinGW working. Regards
Feb 27 2011
On 2/28/11, Iain Buclaw <ibuclaw ubuntu.com> wrote:It's not much, but should be enough to start some work on getting MinGW working.After installing on a fresh Ubuntu 10.10 32bit I get: "Breaks existing package 'mingw32-binutils' that conflict: 'mingw32'. But the '/tmp/gcc-mingw32_4.5.2-0ubuntu1~ppa2_i386.deb' provides it via: 'mingw32'" Trying to compile test.d: void main() { } andrej andrej-VirtualBox:~/Desktop$ i586-mingw32msvc-gdc test.d /usr/lib/gcc/i586-mingw32msvc/4.5.2/../../../../i586-mingw32msvc/bin/ld: crt2.o: No such file: No such file or directory collect2: ld returned 1 exit status andrej andrej-VirtualBox:~/Desktop$ Am I doing something wrong? gcc-mingw32_4.5.2-0ubuntu1~ppa2_i386.deb is the only thing I've installed.
Feb 28 2011
Well I have some good news, I've finally managed to get GDC working for D2 on Windows (using Msys). I owe it to Ian Buclaw and Daniel Green for all the help. You can download an updated guide here: http://dl.dropbox.com/u/9218759/gdcbuild_mingw.txt Sorry again for having hijacked this thread. :)
Mar 05 2011
Well I have some good news, I've finally managed to get GDC workingfor D2 on Windows (using Msys). I owe it to Ian Buclaw and Daniel Green for all the help. You can download an updated guide here: http://dl.dropbox.com/u/9218759/gdcbuild_mingw.txtSorry again for having hijacked this thread. :)OMG, thanks for posting this, Andrej! This is really useful! (Sorry for continuing the thread hijack...)
Mar 06 2011
No problem. Make sure you follow the latest one because there's another patch you have to use to make stdio work (I've posted this on SO already). I've also added some info on where to get GDB and its manuals. Using GDB works great, the symbols get loaded from the executable when compiled with 'GDC -g file.d'. Here's the latest one: https://gist.github.com/857381
Mar 07 2011
Kind of off-topic, but does anyone know if GDC is still scheduled to be included in GCC 4.7?
Mar 05 2011
On 3/6/11, Caligo <iteronvexor gmail.com> wrote:Kind of off-topic, but does anyone know if GDC is still scheduled to be included in GCC 4.7?Dunno. But this raises an interesting observation. If GDC gets included in the GCC mainline, I wonder if the MinGW and TDM-MinGW teams will start getting interest in D. Of course, this doesn't automatically mean they'll jump on the bandwagon and start supporting D. Afaik the MinGW team dropped support for Java (?), so I don't think they feel they should support every language that GCC supports. Still, this might get people more interested in D.
Mar 06 2011
Ooh I'm probably missing runtime libs like binutils. Sorry! I still want to know how to install gdc on the system though.
Feb 23 2011
Trass3r wrote:While I'm delighted that we finally have a basic D2 x64 compiler I can't stop wondering how long it will take till I finally get my hands on it on Windows. God knows I'd have switched to gdc long ago if gcc wasn't such a PITA to compile on Windows! Several attempts over the past year failed. What bothers me most is that the bigger part of the delay is due to an antiquated object format, linker and C runtime (that have caused enough despair and rage since the beginning of time.. er, D) ELF is standard on Linux, Mach-O on Mac. And dmd adheres to that. So isn't Windows' de facto standard COFF in combination with MinGW's ld or VC's link the natural choice?To do 64 bits on Windows requires: 1. 64 bit OMF 2. 64 bit librarian 3. 64 bit generating dmd 4. 64 bit C compiler 5. 64 bit symbolic debug info 6. 64 bit debugger 7. 64 bit C runtime Just one of those won't do it. All are necessary. The reason I did 64 bit linux first is all those things were ready to rock but dmd.
Feb 22 2011
Walter Bright Wrote:To do 64 bits on Windows requires: 1. 64 bit OMF 2. 64 bit librarian 3. 64 bit generating dmd 4. 64 bit C compiler 5. 64 bit symbolic debug info 6. 64 bit debugger 7. 64 bit C runtime Just one of those won't do it. All are necessary. The reason I did 64 bit linux first is all those things were ready to rock but dmd.I do understand that. Hence I wonder even more, wouldn't it make sense to use MinGW's tools which are a direct port of all those unix ones?
Feb 23 2011
Trass3r wrote:Hence I wonder even more, wouldn't it make sense to use MinGW's tools which are a direct port of all those unix ones?Perhaps. I have to do more investigation.
Feb 23 2011