Actions
Bug #12959
closedwin32ole has a libgcc dll dependency when newer GCC version use
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby -v: ruby 2.4.0dev (2016-11-19 trunk 56831) [x64-mingw32]
Description
win32oleだけが、libgcc_s_seh-1.dllに依存してしまいます。
以下はMinGW-w64 の環境での確認結果です。
tsuyoshi@jupiter MINGW64 ~/ruby24_build
$ find . \( -name "*.dll" -o -name "*.so" \) | while read -r f; do \
echo "Checking: $f"; \
objdump -x $f | egrep "DLL Name: libstd|DLL Name: libgcc"; \
done
<snip>
Checking: ./.ext/x64-mingw32/win32ole.so
DLL Name: libgcc_s_seh-1.dll
<snip>
tsuyoshi@jupiter MINGW64 ~/ruby24_build
他の *.dll, *.soは、libgcc*.dll への依存はありませんでした。
Dependency walkerでみると、win32oleは __emutls_get_address を
必要としているようです。
win32oleのリンク時に -static-libgcc を付ければ良いのですが、
現状ext下の生成時にはオプションが付かないようになっているのを、
(mingwでは?)付けるようにした方が良いのではないでしょうか。
なお、RubyInstallerのgcc 4.7.2では、libgcc*.dll依存にはなりません。
Actions
Like0
Like0