D.gnu - MinGW Release. D2.058 x86-64 20120428
- Daniel Green (28/28) Apr 28 2012 ** Fixes, previous unresolved _Dmodule_ref **
- Dmitry Olshansky (15/16) Apr 28 2012 Nice, it works so far :)
- Manu (2/19) Apr 30 2012
- Daniel Green (10/11) Apr 30 2012 It was sort of an intermittent release, to get it out and tested.
- Iain Buclaw (12/24) Apr 30 2012 cific
- Manu (34/59) Apr 30 2012 I seem to be getting a lot of these with the latest build trying to buil...
- Manu (14/18) Apr 30 2012 libsqlite is quite big, perhaps it would be better to have the script
- Manu (4/37) Apr 30 2012 Actually, I just tried -m64 and the _Dmodule_ref errors were all gone...
- Daniel Green (21/42) Apr 30 2012 Build order? binutils isn't smart(purposefully so?) when it comes to
- Iain Buclaw (17/64) Apr 30 2012 nce
- Daniel Green (8/9) May 01 2012 In D2.058, the _Dmodule_ref code was moved to minfo.d. I didn't
- Manu (3/13) May 01 2012 No problem, I only depend on x64 for the time being, so it's no problem ...
** Fixes, previous unresolved _Dmodule_ref ** Please post all issues in D.gnu or on GDC's site https://bitbucket.org/goshawk/gdc Due to the use of a newer runtime than TDM64-GCC it is **recommended** to install a copy specifically for GDC. Features **ALPHA** As in, D2.058 support is still new. * D2.058 * Debug information available using gnu-debuglink. * Removed D1(Did anyone use this featuer?). * Due to current system breaking with repository changes and D1 being discontinued at the end of the year. * binutils with TLS patches * mingw-w64-runtime with TLS and stdio fixes. * GCC 4.6.1 with TLS patches Installation instructions: 1. Download and install TDM MinGW64 2. Extract the downloaded archive into the base of the newly installed TDM install. If you've done this before, you can just do step 2. MinGW64 installer http://tdm-gcc.tdragon.net/ GDC binary https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm64-1-gdc-7e1a98da2769-20120428-D2.058.7z Known issues: * May break TDM64 C++. * Field-less structs will throw a null this exception. When formatted by std.format. runnable/test23.d
Apr 28 2012
On 28.04.2012 21:08, Daniel Green wrote:** Fixes, previous unresolved _Dmodule_ref **Nice, it works so far :) And where as previous version promptly segfaulted on my regex benchmark this one goes through. And the compiled binary performance is not bad either: Small test - searching for all \S+ \S+ (rough "email") in 40Mb of man-like text. dmd: 5.48sec gdc: 3.30sec Cool, surely gone use it side by side with dmd. P.S. Command line options: dmd -O -release -noboundscheck gdc -Ofast -frelease -- Dmitry Olshansky
Apr 28 2012
I guess the etc.c... libs didn't make the cut :( On 28 April 2012 22:35, Dmitry Olshansky <dmitry.olsh gmail.com> wrote:On 28.04.2012 21:08, Daniel Green wrote:** Fixes, previous unresolved _Dmodule_ref **Nice, it works so far :) And where as previous version promptly segfaulted on my regex benchmark this one goes through. And the compiled binary performance is not bad either: Small test - searching for all \S+ \S+ (rough "email") in 40Mb of man-like text. dmd: 5.48sec gdc: 3.30sec Cool, surely gone use it side by side with dmd. P.S. Command line options: dmd -O -release -noboundscheck gdc -Ofast -frelease -- Dmitry Olshansky
Apr 30 2012
On 4/30/2012 6:18 AM, Manu wrote:I guess the etc.c... libs didn't make the cut :(It was sort of an intermittent release, to get it out and tested. To update the lib status, zlib is already part of libgphobos2.a. If you inspect the library you'll see it's object files. If you're having specific zlib errors, you should share them. sqlite.o is easy enough to build and can be put into libgphobos.a. Being public domain helps, I'll add it to the build process. Curl is the only tricky one. It actually has configuration options and probably dependencies. Is there a list of what features D requires curl to support?
Apr 30 2012
On 30 April 2012 16:33, Daniel Green <venix1 gmail.com> wrote:On 4/30/2012 6:18 AM, Manu wrote:uI guess the etc.c... libs didn't make the cut :(It was sort of an intermittent release, to get it out and tested. To update the lib status, zlib is already part of libgphobos2.a. =A0If yo=inspect the library you'll see it's object files. =A0If you're having spe=cificzlib errors, you should share them. sqlite.o is easy enough to build and can be put into libgphobos.a. Being public domain helps, I'll add it to the build process. Curl is the only tricky one. =A0It actually has configuration options and probably dependencies. =A0Is there a list of what features D requires cur=l tosupport?SQLite comes as a single source file if I recall correctly, and could be added to the libphobos build folder under libphobos/sqlite. In future when (or if) shared libraries are supported, can remove the source file and have these as dependencies for building libphobos, which are linked in during compilation of libgphobos.so --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Apr 30 2012
On 30 April 2012 18:40, Iain Buclaw <ibuclaw ubuntu.com> wrote:On 30 April 2012 16:33, Daniel Green <venix1 gmail.com> wrote:I seem to be getting a lot of these with the latest build trying to build a windows project (Daniel: the same repo I referred to in that bug report) c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../lib32/libgphobos2.a(ti_Aint.o): In function `rt.typeinfo.ti_Aint._D2rt8typeinfo7ti_Aint9__modinitFZv': C:\crossdev\gdc64\v2\build\x86_64-w64-mingw32\32\libphobos\libdruntime/../../../../../gcc-4.6.1/libphobos/libdruntime/rt/typeinfo/ti_Aint.d:1: undefined reference to `_Dmodule_ref' C:\crossdev\gdc64\v2\build\x86_64-w64-mingw32\32\libphobos\libdruntime/../../../../../gcc-4.6.1/libphobos/libdruntime/rt/typeinfo/ti_Aint.d:1: undefined reference to `_Dmodule_ref' c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../lib32/libgphobos2.a(conv.o): In function `std.conv._D3std4conv9__modinitFZv': C:\crossdev\gdc64\v2\build\x86_64-w64-mingw32\32\libphobos/../../../../gcc-4.6.1/libphobos/std/conv.d:1: undefined reference to `_Dmodule_ref' C:\crossdev\gdc64\v2\build\x86_64-w64-mingw32\32\libphobos/../../../../gcc-4.6.1/libphobos/std/conv.d:1: undefined reference to `_Dmodule_ref' etc... I also built sqlite, but it's complaining with lots of: C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function `D4demu5tools8sqlitedb8SQLiteDB6AttachMFAxaAxaZE4demu5tools5error9ErrorCode': D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:57: undefined reference to `sqlite3_exec' C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function `D4demu5tools8sqlitedb8SQLiteDB5CloseMFZv': D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:46: undefined reference to `sqlite3_close' C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function `D4demu5tools8sqlitedb8SQLiteDB4OpenMFAxaZE4demu5tools5error9ErrorCode': D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:34: undefined reference to `sqlite3_open' etc... Any ideas? Here's how I built sqlite, in case I did something wrong: gcc -c sqlite3.c -m64 -O3 -> sqlite3.o ar rs libsqlite.a sqlite3.o -> sqlite.aOn 4/30/2012 6:18 AM, Manu wrote:specificI guess the etc.c... libs didn't make the cut :(It was sort of an intermittent release, to get it out and tested. To update the lib status, zlib is already part of libgphobos2.a. If you inspect the library you'll see it's object files. If you're havingzlib errors, you should share them. sqlite.o is easy enough to build and can be put into libgphobos.a. Being public domain helps, I'll add it to the build process. Curl is the only tricky one. It actually has configuration options and probably dependencies. Is there a list of what features D requires curltosupport?SQLite comes as a single source file if I recall correctly, and could be added to the libphobos build folder under libphobos/sqlite. In future when (or if) shared libraries are supported, can remove the source file and have these as dependencies for building libphobos, which are linked in during compilation of libgphobos.so
Apr 30 2012
On 30 April 2012 18:33, Daniel Green <venix1 gmail.com> wrote:sqlite.o is easy enough to build and can be put into libgphobos.a. Being public domain helps, I'll add it to the build process.libsqlite is quite big, perhaps it would be better to have the script create a lib beside phobos instead of in it? DMD supplies this as a separate lib, although theirs is about 1/3rd the size of the one I built for some reason :/ Curl is the only tricky one. It actually has configuration options andprobably dependencies. Is there a list of what features D requires curl to support?I suspect the doc may reveal which features are available: http://dlang.org/phobos/etc_c_curl.html (looks like it covers basically everything) Is there a standard set of features for some 'standard' binary distribution? Most linux '-dev' packages seem to include binary libs for easy access, there must be a standard used there... I had trouble building curl, but I will be using all 3 currently existing etc.c libs in my app.
Apr 30 2012
On 30 April 2012 21:24, Manu <turkeyman gmail.com> wrote:I seem to be getting a lot of these with the latest build trying to build a windows project (Daniel: the same repo I referred to in that bug report) c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../lib32/libgphobos2.a(ti_Aint.o): In function `rt.typeinfo.ti_Aint._D2rt8typeinfo7ti_Aint9__modinitFZv': C:\crossdev\gdc64\v2\build\x86_64-w64-mingw32\32\libphobos\libdruntime/../../../../../gcc-4.6.1/libphobos/libdruntime/rt/typeinfo/ti_Aint.d:1: undefined reference to `_Dmodule_ref' C:\crossdev\gdc64\v2\build\x86_64-w64-mingw32\32\libphobos\libdruntime/../../../../../gcc-4.6.1/libphobos/libdruntime/rt/typeinfo/ti_Aint.d:1: undefined reference to `_Dmodule_ref' c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../lib32/libgphobos2.a(conv.o): In function `std.conv._D3std4conv9__modinitFZv': C:\crossdev\gdc64\v2\build\x86_64-w64-mingw32\32\libphobos/../../../../gcc-4.6.1/libphobos/std/conv.d:1: undefined reference to `_Dmodule_ref' C:\crossdev\gdc64\v2\build\x86_64-w64-mingw32\32\libphobos/../../../../gcc-4.6.1/libphobos/std/conv.d:1: undefined reference to `_Dmodule_ref' etc... I also built sqlite, but it's complaining with lots of: C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function `D4demu5tools8sqlitedb8SQLiteDB6AttachMFAxaAxaZE4demu5tools5error9ErrorCode': D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:57: undefined reference to `sqlite3_exec' C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function `D4demu5tools8sqlitedb8SQLiteDB5CloseMFZv': D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:46: undefined reference to `sqlite3_close' C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function `D4demu5tools8sqlitedb8SQLiteDB4OpenMFAxaZE4demu5tools5error9ErrorCode': D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:34: undefined reference to `sqlite3_open' etc... Any ideas? Here's how I built sqlite, in case I did something wrong: gcc -c sqlite3.c -m64 -O3 -> sqlite3.o ar rs libsqlite.a sqlite3.o -> sqlite.aActually, I just tried -m64 and the _Dmodule_ref errors were all gone... switched back to -m32 and they were back again... User error? What are they about?
Apr 30 2012
On 4/30/2012 2:49 PM, Manu wrote:I also built sqlite, but it's complaining with lots of: C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function `D4demu5tools8sqlitedb8SQLiteDB6AttachMFAxaAxaZE4demu5tools5error9ErrorCode': D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:57: undefined reference to `sqlite3_exec' C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function `D4demu5tools8sqlitedb8SQLiteDB5CloseMFZv': D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:46: undefined reference to `sqlite3_close' C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function `D4demu5tools8sqlitedb8SQLiteDB4OpenMFAxaZE4demu5tools5error9ErrorCode': D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:34: undefined reference to `sqlite3_open' etc... Any ideas?Build order? binutils isn't smart(purposefully so?) when it comes to symbol resolution. The symbol must be declared after it is used. I would check the -v output and see where your library is in relation to the object file.Here's how I built sqlite, in case I did something wrong: gcc -c sqlite3.c -m64 -O3 -> sqlite3.o ar rs libsqlite.a sqlite3.o -> sqlite.aThis would save you the need to add -lsqlite and ensure that phobos symbols are properly resolved as well. As Iain suggested, this may be what GDC will start doing. ar q libgphobos2.a sqlite3.o Here's the size with -O2, -O3 for 32 and 64 bit. -rw-r--r-- 1 venix Administrators 742K Apr 30 23:23 sqlite3-m32-03. -rw-r--r-- 1 venix Administrators 565K Apr 30 23:21 sqlite3-m32.o -rw-r--r-- 1 venix Administrators 755K Apr 30 23:30 sqlite3-m64-03. -rw-r--r-- 1 venix Administrators 579K Apr 30 23:32 sqlite3-m64.oActually, I just tried -m64 and the _Dmodule_ref errors were all gone... switched back to -m32 and they were back again... User error? What are they about?DMD/Windows uses minit for module initialization. GDC uses _Dmodule_ref. In the last release, they reorganized some module initialization code causing GDC/MinGW to not use define/use _Dmodule_ref initialization. Currently, there is an issue with multilib building on MinGW. I had to manually compile and extract libphobos for the release. It's possible I missed something.
Apr 30 2012
On 1 May 2012 05:37, Daniel Green <venix1 gmail.com> wrote:On 4/30/2012 2:49 PM, Manu wrote:orCode':=A0 =A0I also built sqlite, but it's complaining with lots of: =A0 =A0C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function =A0`D4demu5tools8sqlitedb8SQLiteDB6AttachMFAxaAxaZE4demu5tools5error9Err=nce=A0 =A0D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:57: undefined refere=nce=A0 =A0to `sqlite3_exec' =A0 =A0C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function =A0 =A0`D4demu5tools8sqlitedb8SQLiteDB5CloseMFZv': =A0 =A0D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:46: undefined refere=e':=A0 =A0to `sqlite3_close' =A0 =A0C:\Users\MANUEV~1\AppData\Local\Temp\cclkNCic.o: In function =A0`D4demu5tools8sqlitedb8SQLiteDB4OpenMFAxaZE4demu5tools5error9ErrorCod=nce=A0 =A0D:\Projects\SuperEmu/Source/Tools/SQLiteDB.d:34: undefined refere=ymbol=A0 =A0to `sqlite3_open' =A0 =A0etc... =A0 =A0Any ideas?Build order? =A0binutils isn't smart(purposefully so?) when it comes to s=resolution. =A0The symbol must be declared after it is used. =A0I would c=heckthe -v output and see where your library is in relation to the object fil=e.ls=A0 =A0Here's how I built sqlite, in case I did something wrong: =A0 =A0gcc -c sqlite3.c -m64 -O3 =A0-> sqlite3.o =A0 =A0ar rs libsqlite.a sqlite3.o =A0 =A0-> sqlite.aThis would save you the need to add -lsqlite and ensure that phobos symbo=are properly resolved as well. =A0As Iain suggested, this may be what GDC=willstart doing. ar q libgphobos2.a sqlite3.o Here's the size with -O2, -O3 for 32 and 64 bit. -rw-r--r-- 1 venix Administrators 742K Apr 30 23:23 sqlite3-m32-03. -rw-r--r-- 1 venix Administrators 565K Apr 30 23:21 sqlite3-m32.o -rw-r--r-- 1 venix Administrators 755K Apr 30 23:30 sqlite3-m64-03. -rw-r--r-- 1 venix Administrators 579K Apr 30 23:32 sqlite3-m64.of.Actually, I just tried -m64 and the _Dmodule_ref errors were all gone... switched back to -m32 and they were back again... User error? What are they about?DMD/Windows uses minit for module initialization. =A0GDC uses _Dmodule_re==A0In the last release, they reorganized some module initialization code causing GDC/MinGW to not use define/use _Dmodule_ref initialization. Currently, there is an issue with multilib building on MinGW. =A0I had to manually compile and extract libphobos for the release. =A0It's possible =Imissed something.no _Dmodule_ref would probably mean no object_.d was compiled in. --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Apr 30 2012
On 5/1/2012 1:53 AM, Iain Buclaw wrote:no _Dmodule_ref would probably mean no object_.d was compiled in.In D2.058, the _Dmodule_ref code was moved to minfo.d. I didn't properly move the GNU specific stuff on the first build, problem didn't surface until I compiled it with MinGW. They reduced it to OSX, Posix for including _Dmodule_ref. Which is why linux didn't exhibit the same problems. I added it back but there's a chance the 32-bit library wasn't updated properly.
May 01 2012
On 1 May 2012 17:31, Daniel Green <venix1 gmail.com> wrote:On 5/1/2012 1:53 AM, Iain Buclaw wrote:No problem, I only depend on x64 for the time being, so it's no problem to use that :)no _Dmodule_ref would probably mean no object_.d was compiled in.In D2.058, the _Dmodule_ref code was moved to minfo.d. I didn't properly move the GNU specific stuff on the first build, problem didn't surface until I compiled it with MinGW. They reduced it to OSX, Posix for including _Dmodule_ref. Which is why linux didn't exhibit the same problems. I added it back but there's a chance the 32-bit library wasn't updated properly.
May 01 2012