Project

General

Profile

Actions

Bug #12959

closed

win32ole has a libgcc dll dependency when newer GCC version use

Added by moritat (Tsuyoshi Morita) about 8 years ago. Updated about 8 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby -v: ruby 2.4.0dev (2016-11-19 trunk 56831) [x64-mingw32]
[ruby-dev:49884]

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

Also available in: Atom PDF

Like0
Like0