кросс-компилятор linux не работает в разных версиях debian

#linux #bash #hidden-files

Вопрос:

Кросс — компилятор, который работал без проблем в Linux 2.6.26-2-686 i686 теперь не работает в Linux 4.19.0-13-amd64 x86_64

В каталоге установки перечислены файлы, а также «скрытые» файлы, начинающиеся с точки.

 schoutem@DHU007:~/x-tools/arm-hc2-linux-gnueabi/bin$ ll
total 37352
-r-xr-xr-x  1 schoutem schoutem   666783 2010-09-21 17:43 .arm-hc2-linux-gnueabi-addr2line
-r-xr-xr-x 31 schoutem schoutem      395 2010-09-21 19:55 arm-hc2-linux-gnueabi-addr2line
-r-xr-xr-x  1 schoutem schoutem     1022 2010-09-21 19:31 .arm-hc2-linux-gnueabi-addr2name.awk
-r-xr-xr-x 31 schoutem schoutem      395 2010-09-21 19:55 arm-hc2-linux-gnueabi-addr2name.awk
-r-xr-xr-x  2 schoutem schoutem   696445 2010-09-21 17:43 .arm-hc2-linux-gnueabi-ar
-r-xr-xr-x 31 schoutem schoutem      395 2010-09-21 19:55 arm-hc2-linux-gnueabi-ar
-r-xr-xr-x  2 schoutem schoutem  1159523 2010-09-21 17:43 .arm-hc2-linux-gnueabi-as
-r-xr-xr-x 31 schoutem schoutem      395 2010-09-21 19:55 arm-hc2-linux-gnueabi-as
-r-xr-xr-x  2 schoutem schoutem   259750 2010-09-21 19:30 .arm-hc2-linux-gnueabi-c  
-r-xr-xr-x 31 schoutem schoutem      395 2010-09-21 19:55 arm-hc2-linux-gnueabi-c  
lrwxrwxrwx  1 schoutem schoutem       25 2011-06-07 16:04 arm-hc2-linux-gnueabi-cc -> arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x  1 schoutem schoutem   665484 2010-09-21 17:43 .arm-hc2-linux-gnueabi-c  filt
-r-xr-xr-x 31 schoutem schoutem      395 2010-09-21 19:55 arm-hc2-linux-gnueabi-c  filt
-r-xr-xr-x  1 schoutem schoutem   258018 2010-09-21 19:30 .arm-hc2-linux-gnueabi-cpp
-r-xr-xr-x 31 schoutem schoutem      395 2010-09-21 19:55 arm-hc2-linux-gnueabi-cpp
-r-xr-xr-x  1 schoutem schoutem     2771 2010-09-21 17:39 .arm-hc2-linux-gnueabi-ct-ng.config
-r-xr-xr-x 31 schoutem schoutem      395 2010-09-21 19:55 arm-hc2-linux-gnueabi-ct-ng.config
-r-xr-xr-x  2 schoutem schoutem   259750 2010-09-21 19:30 .arm-hc2-linux-gnueabi-g  
-r-xr-xr-x 31 schoutem schoutem      395 2010-09-21 19:55 arm-hc2-linux-gnueabi-g  
-r-xr-xr-x  2 schoutem schoutem   256131 2010-09-21 19:30 .arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x 31 schoutem schoutem      395 2010-09-21 19:55 arm-hc2-linux-gnueabi-gcc
 

В новой установке файлы, начинающиеся с точки, скрыты и не обнаруживаются системой при вызове компилятора.

 root@shu006:/opt/arm-hc2-linux-gnueabi/bin# ll
total 124
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-addr2line
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-addr2name.awk
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-ar
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-as
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-c  
lrwxrwxrwx  1 schoutem schoutem  25 Jun  7  2011 arm-hc2-linux-gnueabi-cc -> arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-c  filt
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-cpp
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-ct-ng.config
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-g  
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-gcc-4.3.2
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-gccbug
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-gcj
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-gcov
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-gdb
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-gdbtui
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-gfortran
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-gprof
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-jcf-dump
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-ld
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-nm
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-objcopy
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-objdump
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-populate
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-ranlib
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-readelf
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-run
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-size
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-sstrip
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-strings
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21  2010 arm-hc2-linux-gnueabi-strip
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
root@shu006:/opt/arm-hc2-linux-gnueabi/bin# arm-hc2-linux-gnueabi-gcc --version
/opt/arm-hc2-linux-gnueabi/bin/arm-hc2-linux-gnueabi-gcc: 15: exec: /opt/arm-hc2-linux-gnueabi/bin/.arm-hc2-linux-gnueabi-gcc: not found
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
root@shu006:/opt/arm-hc2-linux-gnueabi/bin# ll -A
total 37228
-r-xr-xr-x  1 schoutem schoutem   666783 Sep 21  2010 .arm-hc2-linux-gnueabi-addr2line
-r-xr-xr-x 31 schoutem schoutem      395 Sep 21  2010 arm-hc2-linux-gnueabi-addr2line
-r-xr-xr-x  1 schoutem schoutem     1022 Sep 21  2010 .arm-hc2-linux-gnueabi-addr2name.awk
-r-xr-xr-x 31 schoutem schoutem      395 Sep 21  2010 arm-hc2-linux-gnueabi-addr2name.awk
-r-xr-xr-x  2 schoutem schoutem   696445 Sep 21  2010 .arm-hc2-linux-gnueabi-ar
-r-xr-xr-x 31 schoutem schoutem      395 Sep 21  2010 arm-hc2-linux-gnueabi-ar
-r-xr-xr-x  2 schoutem schoutem  1159523 Sep 21  2010 .arm-hc2-linux-gnueabi-as
-r-xr-xr-x 31 schoutem schoutem      395 Sep 21  2010 arm-hc2-linux-gnueabi-as
-r-xr-xr-x  2 schoutem schoutem   259750 Sep 21  2010 .arm-hc2-linux-gnueabi-c  
-r-xr-xr-x 31 schoutem schoutem      395 Sep 21  2010 arm-hc2-linux-gnueabi-c  
lrwxrwxrwx  1 schoutem schoutem       25 Jun  7  2011 arm-hc2-linux-gnueabi-cc -> arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x  1 schoutem schoutem   665484 Sep 21  2010 .arm-hc2-linux-gnueabi-c  filt
-r-xr-xr-x 31 schoutem schoutem      395 Sep 21  2010 arm-hc2-linux-gnueabi-c  filt
-r-xr-xr-x  1 schoutem schoutem   258018 Sep 21  2010 .arm-hc2-linux-gnueabi-cpp
-r-xr-xr-x 31 schoutem schoutem      395 Sep 21  2010 arm-hc2-linux-gnueabi-cpp
-r-xr-xr-x  1 schoutem schoutem     2771 Sep 21  2010 .arm-hc2-linux-gnueabi-ct-ng.config
-r-xr-xr-x 31 schoutem schoutem      395 Sep 21  2010 arm-hc2-linux-gnueabi-ct-ng.config
-r-xr-xr-x  2 schoutem schoutem   259750 Sep 21  2010 .arm-hc2-linux-gnueabi-g  
-r-xr-xr-x 31 schoutem schoutem      395 Sep 21  2010 arm-hc2-linux-gnueabi-g  
-r-xr-xr-x  2 schoutem schoutem   256131 Sep 21  2010 .arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x 31 schoutem schoutem      395 Sep 21  2010 arm-hc2-linux-gnueabi-gcc
 

Сам компилятор является сценарием, вызывающим скрытый файл :

 root@shu006:/opt/arm-hc2-linux-gnueabi/bin# cat arm-hc2-linux-gnueabi-gcc
#!/bin/sh

canonicalizedname=$(readlink -nm "${0}")
dirname="$(dirname "${canonicalizedname}")"
basename="$(basename "${canonicalizedname}")"

ld_lib_path="$(dirname "${dirname}")/lib"

case ":${LD_LIBRARY_PATH}:" in
    *":${ld_lib_path}:"*)   ;;
    *)  LD_LIBRARY_PATH="${ld_lib_path}${LD_LIBRARY_PATH: :${LD_LIBRARY_PATH}}";;
esac

export LD_LIBRARY_PATH
exec "${dirname}/.${basename}" "$@"
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
 

Как я могу заставить свой кросс-компилятор снова работать при новой установке?

Спасибо,

Комментарии:

1. Очень странно. Файл находится там. Скрыт он или нет, не имеет значения (по определению, файлы dot тоже были скрыты раньше. Старая установка, вероятно, просто использовала другой ll псевдоним, который уже включал флаг -a или -A ). Что произойдет, если вы побежите /opt/arm-hc2-linux-gnueabi/bin/.arm-hc2-linux-gnueabi-gcc прямо из своей оболочки?

2. В любом случае, вы можете спросить об этом unix.stackexchange.com . Кроме того, этот вопрос кажется несколько похожим. Особенно, этот ответ имеет смысл, так как вы переключились с i686 (32-разрядная версия) на x86_64 (64-разрядная версия).