Re: [Mingw-w64-public] Regression in trunk regarding InterlockedCompareExchange

2013-07-13 Thread Erik van Pienbroek
Erik van Pienbroek schreef op do 23-05-2013 om 23:29 [+0200]:
 Hi,
 
 During review of one of our Fedora packages we noticed an unexpected
 change in behavior in recent mingw-w64 trunk snapshots. We noticed that
 several libraries which were built against recent mingw-w64 trunk
 snapshots suddenly started to export the symbols
 _InterlockedCompareExchange and InterlockedCompareExchange@12 in their
 shared libraries. 

Just a heads up that this regression is resolved now in mingw-w64 trunk.
This is probably due to r5949 which was committed today (which changes
the way the Interlocked symbols are implemented in mingw-w4).

In Fedora we've dropped our local patch which was used to temporary
workaround the issue.

Regards,

Erik van Pienbroek
Fedora MinGW SIG




--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Regression in trunk regarding InterlockedCompareExchange

2013-06-17 Thread Jacek Caban
On 06/16/13 11:42, Erik van Pienbroek wrote:
 Erik van Pienbroek schreef op vr 14-06-2013 om 19:28 [+0200]:
 For now I've managed to workaround the regression by partially reverting
 r5713. This change makes intrincs/ilockcxch.c part of libmingwex instead
 of libkernel32 (as it was before r5713). I'm using this patch now in the
 Fedora mingw-w64 toolchain where it will be used until a proper solution
 has come up.
 Unfortunately a similar issue has also started to show up on the x86_64
 target. As of r5898 shared libraries (which are generated without an
 explicit .def file) start to export the symbol __mingw_get_msvcrt_handle
 as can be seen with this minimal testcase:

 $ touch foo.c 
 $ cat foo.c
 $ x86_64-w64-mingw32-gcc -shared foo.c -o foo.dll
 $ x86_64-w64-mingw32-objdump -p foo.dll | grep -A2 '\[Ordinal/Name
 Pointer\] Table'
 [Ordinal/Name Pointer] Table
   [   0] __mingw_get_msvcrt_handle


 In Fedora we've also reversed this specific commit (r5898) for now until
 a proper solution comes up.


I committed a fix for that (r5912). Thanks for the report.

Jacek

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Regression in trunk regarding InterlockedCompareExchange

2013-06-16 Thread Erik van Pienbroek
Erik van Pienbroek schreef op vr 14-06-2013 om 19:28 [+0200]:
 For now I've managed to workaround the regression by partially reverting
 r5713. This change makes intrincs/ilockcxch.c part of libmingwex instead
 of libkernel32 (as it was before r5713). I'm using this patch now in the
 Fedora mingw-w64 toolchain where it will be used until a proper solution
 has come up.

Unfortunately a similar issue has also started to show up on the x86_64
target. As of r5898 shared libraries (which are generated without an
explicit .def file) start to export the symbol __mingw_get_msvcrt_handle
as can be seen with this minimal testcase:

$ touch foo.c 
$ cat foo.c
$ x86_64-w64-mingw32-gcc -shared foo.c -o foo.dll
$ x86_64-w64-mingw32-objdump -p foo.dll | grep -A2 '\[Ordinal/Name
Pointer\] Table'
[Ordinal/Name Pointer] Table
[   0] __mingw_get_msvcrt_handle


In Fedora we've also reversed this specific commit (r5898) for now until
a proper solution comes up.

Regards,

Erik van Pienbroek



--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Regression in trunk regarding InterlockedCompareExchange

2013-06-14 Thread Erik van Pienbroek
Kai Tietz schreef op ma 10-06-2013 om 21:49 [+0200]:
 2013/6/10 Erik van Pienbroek e...@vanpienbroek.nl:
  Any news on this issue?
 
 I will take a look to this this evening.  We will need to remove here
 the alias-code to fix that

For now I've managed to workaround the regression by partially reverting
r5713. This change makes intrincs/ilockcxch.c part of libmingwex instead
of libkernel32 (as it was before r5713). I'm using this patch now in the
Fedora mingw-w64 toolchain where it will be used until a proper solution
has come up.

Regards,

Erik van Pienbroek

--- mingw-w64-crt/Makefile.am.revert_r5713	2013-06-13 17:27:36.0 +0200
+++ mingw-w64-crt/Makefile.am	2013-06-14 17:46:50.774319773 +0200
@@ -154,7 +154,7 @@
   secapi/wmemcpy_s.c
 
 
-src_libmingwex=\
+src_libmingwex=intrincs/ilockcxch.c\
   crt/dllentry.ccrt/dllmain.c \
   \
   complex/cabs.c complex/cabsf.ccomplex/cabsl.c   complex/cacos.ccomplex/cacosf.c   complex/cacosl.c \
@@ -258,7 +258,7 @@
   intrincs/__stosw.cintrincs/_rotl64.cintrincs/_rotr64.c intrincs/bitscanfwd.cintrincs/bitscanrev.c \
   intrincs/bittest.cintrincs/bittestc.c   intrincs/bittestci.c   intrincs/bittestr.c  intrincs/bittestri.c  \
   intrincs/bittests.c   intrincs/bittestsi.c  intrincs/cpuid.c   intrincs/currentfiber.c  intrincs/currentteb.c \
-  intrincs/fiberdata.c  intrincs/ilockadd.c   intrincs/ilockand.cintrincs/ilockand64.cintrincs/ilockcxch.c  \
+  intrincs/fiberdata.c  intrincs/ilockadd.c   intrincs/ilockand.cintrincs/ilockand64.c\
   intrincs/ilockcxch16.cintrincs/ilockcxch64.cintrincs/ilockcxchptr.cintrincs/ilockdec.c  intrincs/ilockdec16.c \
   intrincs/ilockdec64.c intrincs/ilockexch.c  intrincs/ilockexch64.c intrincs/ilockexchadd.c  intrincs/ilockexchadd64.c \
   intrincs/ilockexchptr.c   intrincs/ilockinc.c   intrincs/ilockinc16.c  intrincs/ilockinc64.cintrincs/ilockor.c\
--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Regression in trunk regarding InterlockedCompareExchange

2013-06-10 Thread Erik van Pienbroek
Erik van Pienbroek schreef op za 25-05-2013 om 20:46 [+0200]:
 Here's a really minimal testcase which demonstrates the problem:
 
 $ touch foo.c
 $ i686-w64-mingw32-gcc -shared foo.c -o foo.dll -Wl,--export-all-symbols
 $ i686-w64-mingw32-objdump -p foo.dll
 snip
 [Ordinal/Name Pointer] Table
   [   0] InterlockedCompareExchange@12
   [   1] _InterlockedCompareExchange
 snip
 
 So even when an empty library is built it will export the two
 InterlockedCompareExchange symbols..

Any news on this issue?


--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Regression in trunk regarding InterlockedCompareExchange

2013-06-10 Thread Kai Tietz
2013/6/10 Erik van Pienbroek e...@vanpienbroek.nl:
 Erik van Pienbroek schreef op za 25-05-2013 om 20:46 [+0200]:
 Here's a really minimal testcase which demonstrates the problem:

 $ touch foo.c
 $ i686-w64-mingw32-gcc -shared foo.c -o foo.dll -Wl,--export-all-symbols
 $ i686-w64-mingw32-objdump -p foo.dll
 snip
 [Ordinal/Name Pointer] Table
   [   0] InterlockedCompareExchange@12
   [   1] _InterlockedCompareExchange
 snip

 So even when an empty library is built it will export the two
 InterlockedCompareExchange symbols..

 Any news on this issue?

I will take a look to this this evening.  We will need to remove here
the alias-code to fix that

Kai

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Regression in trunk regarding InterlockedCompareExchange

2013-05-25 Thread Dongsheng Song
On Fri, May 24, 2013 at 5:29 AM, Erik van Pienbroek
e...@vanpienbroek.nl wrote:
 Hi,

 During review of one of our Fedora packages we noticed an unexpected
 change in behavior in recent mingw-w64 trunk snapshots. We noticed that
 several libraries which were built against recent mingw-w64 trunk
 snapshots suddenly started to export the symbols
 _InterlockedCompareExchange and InterlockedCompareExchange@12 in their
 shared libraries.

 Libraries which now show this behavior in Fedora are:
 * libasprintf-0.dll (gettext)
 * libcrypto-10.dll (openssl)
 * libffi-6.dll
 * libgmp-10.dll
 * libgnutls-xssl-0.dll
 * libgnutlsxx-28.dll
 * libintl-8.dll (gettext)
 * libobjc-4.dll (gcc)
 * libpixman-1-0.dll
 * libspice-controller-0.dll (spice)
 * libsqlite3-0.dll
 * libusb-1.0.dll (libusbx)
 * QtUiTools4.dll (qt4)

 The thing all these libraries have in common that they were built
 against recent mingw-w64 snapshots.

 The issue can be illustrated by opening the dll in question in
 dependency walker or by running objdump:

 i686-w64-mingw32-objdump
 -p /usr/i686-w64-mingw32/sys-root/mingw/bin/libsqlite3-0.dll | grep -B1
 Interlocked
 [Ordinal/Name Pointer] Table
 [   0] InterlockedCompareExchange@12
 [   1] _InterlockedCompareExchange

 So far I've only seen this happening for the i686-w64-mingw32 target. I
 can't confirm yet if it also is happening on x86_64-w64-mingw32.


Yes, I can see this happening for the i686-w64-mingw32 target for
compile glib 2.36.2, but x86_64-w64-mingw32 target not take effected.
It's really annoying.

--
Try New Relic Now  We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app,  servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Regression in trunk regarding InterlockedCompareExchange

2013-05-25 Thread Erik van Pienbroek
Erik van Pienbroek schreef op do 23-05-2013 om 23:29 [+0200]:
 Hi,
 
 During review of one of our Fedora packages we noticed an unexpected
 change in behavior in recent mingw-w64 trunk snapshots. We noticed that
 several libraries which were built against recent mingw-w64 trunk
 snapshots suddenly started to export the symbols
 _InterlockedCompareExchange and InterlockedCompareExchange@12 in their
 shared libraries. 

Here's a really minimal testcase which demonstrates the problem:

$ touch foo.c
$ i686-w64-mingw32-gcc -shared foo.c -o foo.dll -Wl,--export-all-symbols
$ i686-w64-mingw32-objdump -p foo.dll
snip
[Ordinal/Name Pointer] Table
[   0] InterlockedCompareExchange@12
[   1] _InterlockedCompareExchange
snip

So even when an empty library is built it will export the two
InterlockedCompareExchange symbols..




--
Try New Relic Now  We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app,  servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public