새로운 배포로 인해 이전 바이너리에서 분할 오류가 발생함

새로운 배포로 인해 이전 바이너리에서 분할 오류가 발생함

나는 gcc가 최대 3.4.6(CentOS 4.8)인 시스템에서 잘 실행되는 오래된(~1999) 불행한 상용 그래픽 프로그램을 가지고 있습니다. 그러나 시도한 모든 gcc 4.* 기반 배포판에서 "세그먼트 오류"로 인해 프로그램이 실패했습니다(다른 버전의 CenOS, Sebian 및 SUSE를 시도했습니다).

수많은 새로운 옵션을 갖춘 최신 버전의 소프트웨어(라이센스도 있음)가 있으므로 일상적인 작업에 많은 도움이 됩니다. 그러나 이전 버전에는 그래픽을 x-그래픽으로 내보낼 수 있는 멋진 옵션이 있었지만 새 버전은 PenGL에만 기반을 두고 있습니다. 비록 x-그래픽이 보기 흉하기는 하지만(형용사라서 죄송합니다) 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를 설정하는 부분을 건너뛰세요. 당신은 그것을 사용할 수 있습니다슈루트이것을 더 쉽게 하기 위해 (지도 시간).

관련 정보