From: "ngoto (Naohisa Goto)" Date: 2012-06-13T22:46:46+09:00 Subject: [ruby-dev:45733] [ruby-trunk - Bug #6584][Open] Segmentation fault in DL::TestFunc#test_qsort1 on sparc Solaris10 Issue #6584 has been reported by ngoto (Naohisa Goto). ---------------------------------------- Bug #6584: Segmentation fault in DL::TestFunc#test_qsort1 on sparc Solaris10 https://bugs.ruby-lang.org/issues/6584 Author: ngoto (Naohisa Goto) Status: Open Priority: Normal Assignee: ngoto (Naohisa Goto) Category: test Target version: ruby -v: 2.0.0dev (2012-06-08) [sparc64-solaris2.10] qsort(3)のプロトタイプ宣言は void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *)); ですが、test/dl/test_func.rb の test_qsort1() と test_qsort2() では qsort = Function.new(CFunc.new(@libc['qsort'], TYPE_VOID, 'qsort'), [TYPE_VOIDP, TYPE_INT, TYPE_INT, TYPE_VOIDP]) のように、size_t の変数を TYPE_INT で宣言しています。 このため、sparc Solaris10 の64ビット環境では、Segmentation Fault が発生します。 TYPE_INT を TYPE_SIZE_T に変更すると大丈夫でした。 -- http://bugs.ruby-lang.org/