On Mon, Jul 15, 2013 at 2:09 PM, Alexey Pavlov wrote: > 2013/7/15 Jon : >> On Mon, 15 Jul 2013 11:02:20 +0400 >> niXman wrote: >> >>> 2013/7/15 Jon: >>> > When I build C apps with mingwbuilds 4.8.1-win32-sjlj, the built >>> > artifacts have a runtime dependency on >>> > `libgcc_s_sjlj-1.dll`. This is not the case when I use the rubenvb >>> > toolchains. >>> >>> Just now I checked with [1] and [2] and found no dependency on >>> `libgcc_s_sjlj-1.dll` >>> What am I doing wrong? >>> >>> >>> [1] >>> http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/64-bit/threads-win32/sjlj/x64-4.8.1-release-win32-sjlj-rev2.7z >>> [2] >>> http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/64-bit/threads-win32/sjlj/x64-4.8.1-release-win32-sjlj-rev1.7z >> >> Sorry, I wasn't clear. It seems that only the built DLLs (not exes) have a >> dependency on `libgcc_s_sjlj-1.dll` when I build with [1] but not [2]. For >> example, the DLLs built for both Lua and UnQLite (and Ruby using different >> build helper) using these build recipes: >> >> Lua: >> https://github.com/jonforums/buildlets/blob/master/build_lua.ps1#L60-L72 >> UnQLite: >> https://github.com/jonforums/buildlets/blob/master/build_unqlite.ps1#L60-L72 >> >> When I use PEStudio [3] v7.19 for static analysis, I see the DLLs are trying >> to import the following symbols from `libgcc_s_sjlj-1.dll`: >> >> ** unqlite.dll ** >> __divdi3 >> __moddi3 >> __udivdi3 >> __umoddi3 >> >> ** lua52.dll ** >> __udivdi3 >> __umoddi3 >> >> I'm still investigating to try to discover if I've misconfigured my >> automated build helpers. >> > > This issue is related to all gcc-4.8.x toolchains. All pre gcc-4.8 > toolchains work ok. > I have this issue too but in other form. > My issue is related to use gcc-4.8.x toolchain for building other > toolchain with the same symptoms. > For example, I need to build GCC-4.8.1 toolchain with dwarf > exceptions. I have GCC-4.8.1 toolchain with sjlj exceptions. After > building new toolchain I have liblto_plugin-0.dll depended on old GCC > libgcc_s_sjlj-1.dll. On dependency walker I see it want __udivdi3 and > __umoddi3 functions from this dll. > I have this issue only when building any toolchain with gcc-4.8.x. If > I use earlier gcc versions (<=4.7.3) then new liblto_plugin-0.dll > doesn't depend on any toolchain dll - only system wide libraries.
I'm thinking you need to do a cross build to avoid it. --host=i686-w64-mingw32-dwarf2 --target=i686-w64-mingw32-dwarf2 --build=i686-w64-mingw32-sjlj You might also need to do a make all-host && make install-host before it works well, then add your prefix/bin to the front of PATH and continue the make. It's a mess. I've been building 2.8.1 in several scenario's recently; not a fun event. -- Earnie -- https://sites.google.com/site/earnieboyd ------------------------------------------------------------------------------ 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=48808831&iu=/4140/ostg.clktrk _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
