Message ID | Pine.LNX.4.64.1110262117130.25943@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
Hi, patch looks fine for mingw 32-bit. With a small nit new test passes for 64-bit mingw version, too. The cygwin-part looks like the mingw one. 2011/10/26 Joseph S. Myers <joseph@codesourcery.com>: > gcc.dg/tls/thr-cse-1.c tests that there are not two calls to > __emutls_get_address in the output. Normally this just checks for > emutls_get_address.*emutls_get_address, but on some targets where the > compiler output declares the functions called in some way the testcase > has more specific tests. i?86-*-mingw* produces a .def directive for > ___emutls_get_address so also needs such a special case, which this > patch adds (only for i?86-*-mingw* as I don't know what the output > looks like for other Windows targets). Tested with cross to > i686-mingw32. OK to commit? > > 2011-10-26 Joseph Myers <joseph@codesourcery.com> > > * gcc.dg/tls/thr-cse-1.c: For i?86-*-mingw*, check for multiple > calls. > > Index: gcc.dg/tls/thr-cse-1.c > =================================================================== > --- gcc.dg/tls/thr-cse-1.c (revision 180200) > +++ gcc.dg/tls/thr-cse-1.c (working copy) > @@ -15,9 +15,10 @@ > return a; > } > > -/* { dg-final { scan-assembler-not "emutls_get_address.*emutls_get_address.*" { target { ! { "*-wrs-vxworks" "*-*-darwin8" "hppa*-*-hpux*" "spu-*-*" } } } } } */ > +/* { dg-final { scan-assembler-not "emutls_get_address.*emutls_get_address.*" { target { ! { "*-wrs-vxworks" "*-*-darwin8" "hppa*-*-hpux*" "spu-*-*" "i?86-*-mingw*" } } } } } */ > /* { dg-final { scan-assembler-not "call\tL___emutls_get_address.stub.*call\tL___emutls_get_address.stub.*" { target "*-*-darwin8" } } } */ > /* { dg-final { scan-assembler-not "(b,l|bl) __emutls_get_address.*(b,l|bl) __emutls_get_address.*" { target "hppa*-*-hpux*" } } } */ > /* { dg-final { scan-assembler-not "(brsl|brasl)\t__emutls_get_address.*(brsl|brasl)\t__emutls_get_address.*" { target spu-*-* } } } */ > /* { dg-final { scan-assembler-not "tls_lookup.*tls_lookup.*" { target *-wrs-vxworks } } } */ +/* { dg-final { scan-assembler-not "call\t___emutls_get_address.*call\t___emutls_get_address" { target { i?86-*-mingw* i?86-*-cygwin* } } } } */ +/* { dg-final { scan-assembler-not "call\t__emutls_get_address.*call\t__emutls_get_address" { target "x86_64-*-mingw*" } } } */ With this change test should pass for all IA mingw-targets and for cygwin, too. Thanks, Kai
On Wed, 26 Oct 2011, Kai Tietz wrote: > Hi, > > patch looks fine for mingw 32-bit. With a small nit new test passes > for 64-bit mingw version, too. The cygwin-part looks like the mingw > one. I've committed my original patch as what I can test - you may wish to commit followups after testing them on other Windows targets (and indeed more generally look at whatever Windows-specific test failures there are that I haven't fixed).
Index: gcc.dg/tls/thr-cse-1.c =================================================================== --- gcc.dg/tls/thr-cse-1.c (revision 180200) +++ gcc.dg/tls/thr-cse-1.c (working copy) @@ -15,9 +15,10 @@ return a; } -/* { dg-final { scan-assembler-not "emutls_get_address.*emutls_get_address.*" { target { ! { "*-wrs-vxworks" "*-*-darwin8" "hppa*-*-hpux*" "spu-*-*" } } } } } */ +/* { dg-final { scan-assembler-not "emutls_get_address.*emutls_get_address.*" { target { ! { "*-wrs-vxworks" "*-*-darwin8" "hppa*-*-hpux*" "spu-*-*" "i?86-*-mingw*" } } } } } */ /* { dg-final { scan-assembler-not "call\tL___emutls_get_address.stub.*call\tL___emutls_get_address.stub.*" { target "*-*-darwin8" } } } */ /* { dg-final { scan-assembler-not "(b,l|bl) __emutls_get_address.*(b,l|bl) __emutls_get_address.*" { target "hppa*-*-hpux*" } } } */ /* { dg-final { scan-assembler-not "(brsl|brasl)\t__emutls_get_address.*(brsl|brasl)\t__emutls_get_address.*" { target spu-*-* } } } */ /* { dg-final { scan-assembler-not "tls_lookup.*tls_lookup.*" { target *-wrs-vxworks } } } */ +/* { dg-final { scan-assembler-not "call\t___emutls_get_address.*call\t___emutls_get_address" { target "i?86-*-mingw*" } } } */