D.gnu - MinGW GCC-4.6.1 GDC r9841510e8ba6 32 and 64-bit
- Daniel Green <venix1 gmail.com> Jan 09 2012
- Robert Clipsham <robert octarineparrot.com> Jan 09 2012
- Manu <turkeyman gmail.com> Jan 09 2012
- Daniel Green <venix1 gmail.com> Jan 09 2012
- Artur Skawina <art.08.09 gmail.com> Jan 09 2012
- Iain Buclaw <ibuclaw ubuntu.com> Jan 09 2012
- Manu <turkeyman gmail.com> Jan 09 2012
- Andrej Mitrovic <andrej.mitrovich gmail.com> Jan 09 2012
- Iain Buclaw <ibuclaw ubuntu.com> Jan 09 2012
- Daniel Green <venix1 gmail.com> Jan 09 2012
- =?ISO-8859-1?Q?S=F6nke_Ludwig?= Jan 26 2012
- Daniel Green <venix1 gmail.com> Jan 26 2012
- =?ISO-8859-1?Q?S=F6nke_Ludwig?= Jan 27 2012
- Sönke Ludwig <sludwig_sp niksoftware.com> Jan 27 2012
- Daniel Green <venix1 gmail.com> Jan 27 2012
- "Trass3r" <un known.com> Jan 26 2012
- "Trass3r" <un known.com> Jan 09 2012
Please post all issues in D.gnu or on GDC's site https://bitbucket.org/goshawk/gdc Posted updated binaries for MinGW32 and MinGW64. * Requires TDM GCC 4.6.1 32 or 64-bit edition. * GDC revision 9841510e8ba6. * Contains modified binutils and runtime files for TLS. * 7-zip format: http://7-zip.org * Includes D1 and D2. * -v2(default) targets D2. * -v1 targets D1. 32-bit release https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm-1-gdc-9841510e8ba6-20120109.7z 64-bit release MinGW64 has issues that are being worked out. Downloads at https://bitbucket.org/goshawk/gdc/downloads All patches, source files and build scripts can be found at https://bitbucket.org/venix1/mingw-gdc/ Ran this build through the DMD v2.057 testsuite. The following are the tests the failed and a brief description of why. # MinGW32 failures # Script failure DISABLED_SH_TESTS += test39 # MSVCRT treats long double as double. So real is incorrectly handled. # http://msdn.microsoft.com/en-us/library/9cx8xs15%28v=VS.100%29.aspx DISABLED_TESTS += testmath # inline assembly related DISABLED_TESTS += test22 # Requires -lws2_32 for compiling. DISABLED_TESTS += testsocket Note that phobos has a dependency on ws2_32. So using sockets requires -lgphobos2 -lws2_32 # GDC Failures. Tests fail under linux as well. DISABLED_TESTS += iasm constfold test42 inner ctorpowtests eh bitops testformat DISABLED_TESTS += test4 testcontracts xtest46 sdtor argufilem # Code coverage. DMD code coverage is not implemented in GDC. DISABLED_TESTS += hello-profile cov2 a20 sieve Am I correct in assuming that DMD passes all the tests in the testsuite when it is tagged for release?
Jan 09 2012
On 09/01/2012 19:56, Daniel Green wrote:Am I correct in assuming that DMD passes all the tests in the testsuite when it is tagged for release?
Yes, as well as all druntime and phobos unittests (and regression testing of a few projects that people do of their own accord when a beta is announced). -- Robert http://octarineparrot.com/
Jan 09 2012
--00248c768f26acbbfa04b61f2db5 Content-Type: text/plain; charset=UTF-8 On 9 January 2012 21:56, Daniel Green <venix1 gmail.com> wrote:Please post all issues in D.gnu or on GDC's site https://bitbucket.org/goshawk/**gdc <https://bitbucket.org/goshawk/gdc> Posted updated binaries for MinGW32 and MinGW64. * Requires TDM GCC 4.6.1 32 or 64-bit edition. * GDC revision 9841510e8ba6. * Contains modified binutils and runtime files for TLS. * 7-zip format: http://7-zip.org * Includes D1 and D2. * -v2(default) targets D2. * -v1 targets D1. 32-bit release https://bitbucket.org/goshawk/**gdc/downloads/gcc-4.6.1-tdm-1-** gdc-9841510e8ba6-20120109.7z<https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm-1-gdc-9841510e8ba6-20120109.7z> 64-bit release MinGW64 has issues that are being worked out. Downloads at https://bitbucket.org/goshawk/**gdc/downloads<https://bitbucket.org/goshawk/gdc/downloads> All patches, source files and build scripts can be found at https://bitbucket.org/venix1/**mingw-gdc/<https://bitbucket.org/venix1/mingw-gdc/> Ran this build through the DMD v2.057 testsuite. The following are the tests the failed and a brief description of why. # MinGW32 failures # Script failure DISABLED_SH_TESTS += test39 # MSVCRT treats long double as double. So real is incorrectly handled. # http://msdn.microsoft.com/en-**us/library/9cx8xs15%28v=VS.**100%29.aspx<http://msdn.microsoft.com/en-us/library/9cx8xs15%28v=VS.100%29.aspx> DISABLED_TESTS += testmath # inline assembly related DISABLED_TESTS += test22 # Requires -lws2_32 for compiling. DISABLED_TESTS += testsocket Note that phobos has a dependency on ws2_32. So using sockets requires -lgphobos2 -lws2_32 # GDC Failures. Tests fail under linux as well. DISABLED_TESTS += iasm constfold test42 inner ctorpowtests eh bitops testformat DISABLED_TESTS += test4 testcontracts xtest46 sdtor argufilem # Code coverage. DMD code coverage is not implemented in GDC. DISABLED_TESTS += hello-profile cov2 a20 sieve Am I correct in assuming that DMD passes all the tests in the testsuite when it is tagged for release?
Awww damn it! I was all excited, thought you'd saved me the pain... until I realised this isn't the latest version :( --00248c768f26acbbfa04b61f2db5 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On 9 January 2012 21:56, Daniel Green <span dir= =3D"ltr"><<a href=3D"mailto:venix1 gmail.com">venix1 gmail.com</a>></= span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e= x;border-left:1px #ccc solid;padding-left:1ex"> Please post all issues in D.gnu or on GDC's site <a href=3D"https://bit= bucket.org/goshawk/gdc" target=3D"_blank">https://bitbucket.org/goshawk/<u>= </u>gdc</a><br> <br> Posted updated binaries for MinGW32 and MinGW64.<br> =C2=A0* Requires TDM GCC 4.6.1 32 or 64-bit edition.<br> =C2=A0* GDC revision 9841510e8ba6.<br> =C2=A0* Contains modified binutils and runtime files for TLS.<br> =C2=A0* 7-zip format: =C2=A0<a href=3D"http://7-zip.org" target=3D"_blank">= http://7-zip.org</a><br> =C2=A0* Includes D1 and D2.<br> =C2=A0 * -v2(default) targets D2.<br> =C2=A0 * -v1 targets D1.<br> <br> 32-bit release<br> <br> <a href=3D"https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm-1-gdc-= 9841510e8ba6-20120109.7z" target=3D"_blank">https://bitbucket.org/goshawk/<= u></u>gdc/downloads/gcc-4.6.1-tdm-1-<u></u>gdc-9841510e8ba6-20120109.7z</a>= <br> <br> 64-bit release<br> <br> MinGW64 has issues that are being worked out.<br> <br> <br> Downloads at <a href=3D"https://bitbucket.org/goshawk/gdc/downloads" target= =3D"_blank">https://bitbucket.org/goshawk/<u></u>gdc/downloads</a><br> <br> All patches, source files and build scripts can be found at <a href=3D"http= s://bitbucket.org/venix1/mingw-gdc/" target=3D"_blank">https://bitbucket.or= g/venix1/<u></u>mingw-gdc/</a><br> <br> <br> <br> Ran this build through the DMD v2.057 testsuite.<br> The following are the tests the failed and a brief description of why.<br> <br> # MinGW32 failures<br> # Script failure<br> DISABLED_SH_TESTS +=3D test39<br> <br> # MSVCRT treats long double as double. =C2=A0So real is incorrectly handled= .<br> # <a href=3D"http://msdn.microsoft.com/en-us/library/9cx8xs15%28v=3DVS.100%= 29.aspx" target=3D"_blank">http://msdn.microsoft.com/en-<u></u>us/library/9= cx8xs15%28v=3DVS.<u></u>100%29.aspx</a><br> DISABLED_TESTS +=3D testmath<br> <br> # inline assembly related<br> DISABLED_TESTS +=3D test22<br> <br> # Requires -lws2_32 for compiling.<br> DISABLED_TESTS +=3D testsocket<br> Note that phobos has a dependency on ws2_32. =C2=A0So using sockets require= s -lgphobos2 -lws2_32<br> <br> # GDC Failures. =C2=A0Tests fail under linux as well.<br> DISABLED_TESTS +=3D iasm constfold test42 inner ctorpowtests eh bitops test= format<br> DISABLED_TESTS +=3D test4 testcontracts xtest46 sdtor argufilem<br> <br> # Code coverage. =C2=A0DMD code coverage is not implemented in GDC.<br> DISABLED_TESTS +=3D hello-profile cov2 a20 sieve<br> <br> Am I correct in assuming that DMD passes all the tests in the testsuite whe= n it is tagged for release?<br> </blockquote></div><br><div>Awww damn it! I was all excited, thought you= 9;d saved me the pain... until I realised this isn't the latest version= :(</div><div><br></div> --00248c768f26acbbfa04b61f2db5--
Jan 09 2012
On 1/9/2012 4:35 PM, Manu wrote:Awww damn it! I was all excited, thought you'd saved me the pain... until I realised this isn't the latest version :(
GDC is under active development. It may no longer be the tip, but it's only a few revisions from it.
Jan 09 2012
On 01/10/12 00:43, Iain Buclaw wrote:^Manu got an itchy knees to try out vector support. ;)
BTW, how are vector literals supposed to work in D? Turns out i was right to be worried about ebp - see the vtst() function below... -------------------------------------- alias __vector(int[4]) i4; i4 vadd(i4 a, i4 b) { return a+b;} i4 vtst(i4 a, i4 b) { return a*b+a-b;} i4 vvvv() { i4 a = void; i4 b = void; return vadd(a, b); } -------------------------------------- 00000000 <_D5vect14vaddFNhG4iNhG4iZNhG4i>: 0: 55 push %ebp 1: 66 0f fe c1 paddd %xmm1,%xmm0 5: 89 e5 mov %esp,%ebp 7: 5d pop %ebp 8: c3 ret 00000010 <_D5vect14vtstFNhG4iNhG4iZNhG4i>: 10: 66 0f 6f d0 movdqa %xmm0,%xmm2 14: 66 0f 38 40 c1 pmulld %xmm1,%xmm0 19: 55 push %ebp 1a: 89 e5 mov %esp,%ebp 1c: 5d pop %ebp 1d: 66 0f fe c2 paddd %xmm2,%xmm0 21: 66 0f fa c1 psubd %xmm1,%xmm0 25: c3 ret 00000030 <_D5vect14vvvvFZNhG4i>: 30: 55 push %ebp 31: 66 0f ef c0 pxor %xmm0,%xmm0 35: 89 e5 mov %esp,%ebp 37: 5d pop %ebp 38: c3 ret ----------------------------------------- The "extern(C)" hack works, and result in eg: -------------------------------------------------- 00000010 <vtst>: 10: 66 0f 6f d0 movdqa %xmm0,%xmm2 14: 66 0f 38 40 c1 pmulld %xmm1,%xmm0 19: 66 0f fe c2 paddd %xmm2,%xmm0 1d: 66 0f fa c1 psubd %xmm1,%xmm0 21: c3 ret -------------------------------------------------- but marking large parts of D code that way seems wrong... I'm going to assume the vvvv() transformation is an optimization. :) artur
Jan 09 2012
On 9 January 2012 23:37, Daniel Green <venix1 gmail.com> wrote:On 1/9/2012 4:35 PM, Manu wrote:Awww damn it! I was all excited, thought you'd saved me the pain... until I realised this isn't the latest version :(
GDC is under active development. =A0It may no longer be the tip, but it's=
a few revisions from it.
^Manu got an itchy knees to try out vector support. ;) --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Jan 09 2012
--0021cc022fb67d646204b6214ff7 Content-Type: text/plain; charset=UTF-8 On 10 January 2012 01:37, Daniel Green <venix1 gmail.com> wrote:On 1/9/2012 4:35 PM, Manu wrote:Awww damn it! I was all excited, thought you'd saved me the pain... until I realised this isn't the latest version :(
GDC is under active development. It may no longer be the tip, but it's only a few revisions from it.
I was after the vector support. But it's okay, I successfully managed to build a working MinGW build from windows myself, which usually seems to cause me a massive pain in the arse! :) --0021cc022fb67d646204b6214ff7 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On 10 January 2012 01:37, Daniel Green <span dir= =3D"ltr"><<a href=3D"mailto:venix1 gmail.com">venix1 gmail.com</a>></= span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e= x;border-left:1px #ccc solid;padding-left:1ex"> <div class=3D"im">On 1/9/2012 4:35 PM, Manu wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> Awww damn it! I was all excited, thought you'd saved me the pain...<br> until I realised this isn't the latest version :(<br> </blockquote> <br></div> GDC is under active development. =C2=A0It may no longer be the tip, but it&= #39;s only a few revisions from it.<br></blockquote><div><br></div><div>I w= as after the vector support. But it's okay, I successfully managed to b= uild a working MinGW build from windows myself, which usually seems to caus= e me a massive pain in the arse! :)</div> </div> --0021cc022fb67d646204b6214ff7--
Jan 09 2012
Turns out i was right to be worried about ebp - see the vtst() function below...
On DMD head I get an ICE, yay! Internal error: backend/cod3.c 446
Jan 09 2012
On 10 January 2012 00:46, Artur Skawina <art.08.09 gmail.com> wrote:On 01/10/12 00:43, Iain Buclaw wrote:^Manu got an itchy knees to try out vector support. ;)
BTW, how are vector literals supposed to work in D? Turns out i was right to be worried about ebp - see the vtst() function below... --------------------------------------
Once I've refactored a few things, I will get onto this so that have better control over what functions are forced to have a frame pointer (ie: extern(D) with inline asm are the only ones really needed). -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Jan 09 2012
64-bit is ready. 64-Bit Binary https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm64-1-gdc-9841510e8ba6-20120109.7z Running the testsuite had additional failures. # MinGW64 -m32 failures DISABLED_TESTS += test34 variadic # MinGW64 -m64 failures # ICE DISABLED_TESTS += dhry DISABLED_TESTS += test8 testaa testzip --- # MinGW32 failures # script error DISABLED_SH_TESTS += test39 # MSVCRT treats long double as double. so real is incorrectly handled. # http://msdn.microsoft.com/en-us/library/9cx8xs15%28v=VS.100%29.aspx DISABLED_TESTS += testmath # inline assembly related DISABLED_TESTS += test22 # Requires -lws2_32 for compiling DISABLED_TESTS += testsocket --- # GDC Failures DISABLED_TESTS += iasm constfold test42 inner ctorpowtests eh bitops testformat DISABLED_TESTS += test4 testcontracts xtest46 sdtor argufilem # code coverage DISABLED_TESTS += hello-profile cov2 a20 sieve
Jan 09 2012
Am 10.01.2012 06:02, schrieb Daniel Green:64-bit is ready. 64-Bit Binary https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm64-1-gdc-9841510e8ba6-20120109.7z
Since some time I try to somehow get a working 64-bit DLL compiled. With gdc this works now apart from crashing in the TLS setup code, as soon as the runtime is initialized (no TLS variables are used in the code). Is TLS support and/or a workaround for those crashes something that's on the radar? Regards, Sönke
Jan 26 2012
On 1/26/2012 11:01 AM, Sönke Ludwig wrote:Is TLS support and/or a workaround for those crashes something that's on the radar?
issues have been fixed but I haven't uploaded a new binary. The new compiler can pass most of the testsuite. The current failures are not TLS related. Since you're working with Dll's if you post a test case, I would be happy to test the compiler on it before uploading a new release. TLS is a high priority for MinGW as it is required by D.
Jan 26 2012
Am 27.01.2012 01:32, schrieb Daniel Green:On 1/26/2012 11:01 AM, Sönke Ludwig wrote:Is TLS support and/or a workaround for those crashes something that's on the radar?
issues have been fixed but I haven't uploaded a new binary. The new compiler can pass most of the testsuite. The current failures are not TLS related. Since you're working with Dll's if you post a test case, I would be happy to test the compiler on it before uploading a new release. TLS is a high priority for MinGW as it is required by D.
OK that sounds great, thanks for the info. I will prepare a short test case later today.
Jan 27 2012
== Auszug aus Daniel Green (venix1 gmail.com)'s ArtikelOn 1/26/2012 11:01 AM, Sönke Ludwig wrote:Is TLS support and/or a workaround for those crashes something that's on the radar?
issues have been fixed but I haven't uploaded a new binary. The new compiler can pass most of the testsuite. The current failures are not TLS related. Since you're working with Dll's if you post a test case, I would be happy to test the compiler on it before uploading a new release. TLS is a high priority for MinGW as it is required by D.
I just realized that the crash happens only when loading the DLL at runtime using LoadLibrary and that it is only partially a 32/64 bit problem (test2c crashes for 64-bit but works for 32-bit). The attached .zip contains a test script that runs a few different combinations. The statically linked versions generally seem to work.
Jan 27 2012
All tests pass. However, I see your problem.
In plaindll.d:
version(GNU){ // Workaround for linker error
void* _tlsstart; // First symbol of the TLS section
void* _tlsend;
//int _tls_callbacks_a; // Workaround for GDC/MinGW linker error
}
_tlsstart is the first symbol of the TLS section. _tlsend is the last
symbol of the TLS section. Together they are used by D to identify the
TLS memory region for a given thread. If they do not come from TLS
memory then things will not work right.
The MinGW runtime has equivalent symbols __tls_start and __tls_end.
This is not something likely to change as it's a Windows convention.
The version of MinGW/GDC you have should define _tlsstart and _tlsend
symbols automatically if WinMain, DllMain or _Dmain functions exist in
the current object file.
As of now MinGW/GDC uses alias __tls_start _tlsstart and alias __tls_end
_tlsend to satisfy those requirements where necessary.
It's the same with _tls_callbacks_a. Windows convention specifies __xl_a.
The currently posted MinGW64 binaries have an alignment issue with TLS
memory in 64-bit mode. It's a segfault that will manifest in the
garbage collector.
I'll release updated binaries tonight.
Jan 27 2012
Is TLS support and/or a workaround for those crashes something that's on the radar?
It's a known issue and being worked on I think.
Jan 26 2012
On Tuesday, 10 January 2012 at 01:52:57 UTC, Andrej Mitrovic wrote:Turns out i was right to be worried about ebp - see the vtst() function below...
On DMD head I get an ICE, yay! Internal error: backend/cod3.c 446
Like this?: http://d.puremagic.com/issues/show_bug.cgi?id=7254
Jan 09 2012









Robert Clipsham <robert octarineparrot.com> 