новые дистрибутивы вызывают деградацию сегмента старого двоичного кода

У меня пожилая (~ 1999) и, к сожалению, коммерческая графическая программа, которая отлично работает на системах с gcc до 3.4.6 (CentOS 4.8). Однако во всех дистрибутивах, основанных на gcc 4. *, которые я пробовал, программа не работает с «Ошибка сегментации» (я пробовал разные версии CenOS, Sebian и SUSE).

Есть более новые версии этого программного обеспечения (у нас даже есть лицензия) с множеством новых опций, поэтому для ежедневной работы мы хорошо обслуживаем. Однако у старого есть такая хорошая возможность экспортировать графику как x-графику, тогда как более новые версии – только PpenGL. Даже если 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

One Solution collect form web for “новые дистрибутивы вызывают деградацию сегмента старого двоичного кода”

Моим советом было бы установить более старый дистрибутив (CentOS 4, если это то, к чему вы привыкли) в chroot и запустить приложение там. Он будет использовать несколько ГБ дискового пространства, но это, вероятно, будет намного менее трудоемким, чем поиск способа сделать двоичную работу с текущими библиотеками.

У меня нет процедуры предложить вам установить CentOS в chroot. Инструкции по ручной установке должны быть хорошей отправной точкой – пропустите часть, чтобы сделать установку загрузочной и вместо нее установить chroot. Вы можете использовать schroot, чтобы сделать это проще ( учебник ).

  • Как получить REAL gcc (не тот, который хэшируется для clang) в MacOS?
  • Установка пика - выбранный вами CPU не поддерживает набор инструкций x86-64
  • Установите последнюю версию gcc на Pygoscelis Papua (Gentoo)
  • gcc ошибка установки пакета psycopg2 для python3 на Centos 7.3
  • Как установить без подключения к Интернету?
  • Выберите версию gcc для компиляции модулей vmware
  • Ошибка каббала: невозможно выполнить скомпилированные программы
  • Как gcc знает, где установлен boost
  • Могу ли я прочитать, какие CCFLAGS использовались для создания двоичного файла?
  • Отключение параметров упрощения безопасности для среды `nix-shell`
  • StanfordCPPLib Стэнфорда в Linux
  • Linux и Unix - лучшая ОС в мире.