On Fri, Jun 06, 2014 at 10:49:46PM +0200, Stephen Kitt wrote:
> Hi Bill,
> 
> On Fri, 6 Jun 2014 15:02:45 +0200, Bill Allombert <[email protected]> wrote:
> > Hello Stephen,
> > (this might be related to #748353)
> 
> I believe it is...
> 
> > I build a C library (libpari.dll) every day.
> > Since gcc-mingw-w64-i686 4.9.0-2+13, the DLL is depending on
> > libgcc_s_sjlj-1.dll and libwinpthread-1.dll (even though it do not use
> > pthread).
> > 
> > Having to ship libwinpthread-1.dll and libgcc_s_sjlj-1.dll
> > is a usability problem given the target audience.
> 
> I'm working on figuring out some way to provide a package which allows
> building for pthreads or Win32 threads, which would fix your problem (but
> still allow people using std::thread and such things to use mingw-w64 too).
> 
> In the mean time, if you like you can rebuild gcc-mingw-w64 with native Win32
> threads, which will avoid the above dependencies (at least
> libwinpthread-1.dll). You just need to fetch the gcc-mingw-w64 source and
> modify line 137 of debian/rules so that it reads
> 
>       --enable-threads=win32 \
> 
> instead of
> 
>       --enable-threads=posix \
> 
> The resulting set of packages will avoid the pthreads dependency unless you
> use OpenMP with libgomp.
> 
> If you do try this, could you let me know if it also drops the
> libgcc_s_sjlj-1.dll dependency?

I did it but it does not change the dependencies:

$ i686-w64-mingw32-gcc -v
Using built-in specs.
COLLECT_GCC=i686-w64-mingw32-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-w64-mingw32/4.9/lto-wrapper
Target: i686-w64-mingw32
Configured with: ../../src/configure --build=x86_64-linux-gnu --prefix=/usr 
--includedir='/usr/include' --mandir='/usr/share/man' 
--infodir='/usr/share/info' --sysconfdir=/etc --localstatedir=/var 
--libexecdir='/usr/lib/gcc-mingw-w64' --disable-maintainer-mode 
--disable-dependency-tracking
--prefix=/usr --enable-shared --enable-static --disable-multilib 
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext 
--libdir=/usr/lib --enable-libstdcxx-time=yes --with-tune=generic 
--enable-version-specific-runtime-libs --enable-threads=win32 
--enable-fully-dynamic-string
--enable-sjlj-exceptions --enable-libgomp 
--enable-languages=c,c++,fortran,objc,obj-c++ --enable-lto --with-plugin-ld 
--target=i686-w64-mingw32 --with-gxx-include-dir=/usr/include/c++/4.9 
--with-as=/usr/bin/i686-w64-mingw32-as --with-ld=/usr/bin/i686-w64-mingw32-ld
Thread model: win32
gcc version 4.9.0 (GCC)

However the resulting libpari.dll still require both libwinpthread-1.dll and
libgcc_s_sjlj-1.dll.

err:module:import_dll Library libgcc_s_sjlj-1.dll (which is needed by 
L"Z:\\home\\bill\\pari\\Omingw-i686\\libpari.dll") not found
err:module:import_dll Library libpari.dll (which is needed by 
L"Z:\\home\\bill\\pari\\Omingw-i686\\gp-dyn") not found
err:module:LdrInitializeThunk Main exe initialization for 
L"Z:\\home\\bill\\pari\\Omingw-i686\\gp-dyn" failed, status c0000135

I double checked everything.

Cheers,
-- 
Bill. <[email protected]>

Imagine a large red swirl here. 


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to