新しい展開により古いバイナリで分割エラーが発生する

新しい展開により古いバイナリで分割エラーが発生する

私はgccが最大3.4.6(CentOS 4.8)のシステムでうまく動作する古い(〜1999)不幸な商用グラフィックプログラムを持っています。しかし、試したすべてのgcc 4. *ベースのディストリビューションで、「セグメントエラー」のためにプログラムが失敗しました(他のバージョンのCenOS、Sebian、およびSUSEを試しました)。

多数の新しいオプションを備えた最新バージョンのソフトウェア(ライセンスもあります)があるため、日常の作業に多くの役に立ちます。ただし、以前のバージョンにはグラフィックをxグラフィックにエクスポートするための素晴らしいオプションがありましたが、新しいバージョンはPenGLにのみ基づいています。ただし、x-graphicは見苦しいですが(形容詞なので申し訳ありませんが)、DSL回線で作業する方がはるかに高速です。

インストール中に欠けている唯一のライブラリは、libXp.so.6、libXmu.so.6、およびmesa3です。私は問題なく標準のリポジトリを使用してインストールしました。

このエラーを試しましたが、strace必要なすべてのライブラリをロードした後、多くの情報を提供せずにプログラムが停止します。

open("/lib/libuuid.so.1", O_RDONLY)     = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\17\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=15200, ...}) = 0
mmap2(NULL, 17828, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xfffffffff7464000
mmap2(0xf7468000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xfffffffff7468000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7463000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7462000
set_thread_area(0xff8de9b4)             = 0
mprotect(0xf746c000, 4096, PROT_READ)   = 0
mprotect(0x439000, 8192, PROT_READ)     = 0
mprotect(0xf74dc000, 4096, PROT_READ)   = 0
mprotect(0xf763f000, 1032192, PROT_READ|PROT_WRITE) = 0
mprotect(0xf763f000, 1032192, PROT_READ|PROT_EXEC) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault

このプログラムを最新のディストリビューションで動作させる方法を知っている人はいますか?

ps。ソースがありません。提案ソースを使用して、ルーク! !私には効果がありません。

pss気になる方のために - ソフトウェア名はgaussview v2です。

ベストアンサー1

私の提案は、以前のディストリビューション(おなじみの場合はCentOS 4)をインストールすることです。chrootそこからアプリケーションを実行してください。数GBのディスク容量を占めていますが、バイナリを現在のライブラリと連携させる方法を見つけるよりもはるかに安価です。

chrootにCentOSをインストールする手順は提供されていません。これ手動インストール手順良い出発点になるはずです。インストールを起動可能にし、chrootを設定する部分をスキップしてください。あなたはそれを使用することができますシュルートこれをより簡単にするために(地図時間)。

おすすめ記事