Когда я искал эту ошибку в Google. Это дало мне два варианта:
а) вспышка с последним изображением b) Замените скрипт LED_IGNAING.SH со скриптом, приведенным в GoogleGroups и блогах.
Итак, я попробовал 2-й вариант сначала и сработал. Я понятия не имею, какова цель LED_IGNING.SH
Актуальный LED_IGN.SH IS:
> #!/bin/sh
> # tary, 16:46 2013-4-22
>
> x=$(/bin/ps -ef | /bin/grep "[l]ed_acc") if [ ! -n "$x" -a -x
> /usr/bin/led_acc ]; then /usr/bin/led_acc & fi
Новый LED_IGN.SH:
> #!/bin/sh -e
> ### BEGIN INIT INFO
> # Provides: led_aging.sh
> # Required-Start: $local_fs
> # Required-Stop: $local_fs
> # Default-Start: 2 3 4 5
> # Default-Stop: 0 1 6
> # Short-Description: Start LED aging
> # Description: Starts LED aging (whatever that is)
> ### END INIT INFO
> x=$(/bin/ps -ef | /bin/grep "[l]ed_acc") if [ ! -n "$x" -a -x
> /usr/bin/led_acc ]; then /usr/bin/led_acc & fi
На самом деле вы не выполняете кросс-компиляцию; для кросс-компиляции вам необходимо сообщить ./ configure
о вашей целевой архитектуре:
./configure --prefix=/usr/local --host=arm-linux-gnueabi
Затем вы должны получить файлы Makefile, которые используют arm-linux-gnueabi-gcc
, и в результате получится двоичный файл squid
, который подходит для вашего устройства ARM. (Если, конечно, у вас есть все необходимые библиотеки.)
Вы можете вручную отредактировать файл configure.ac, найти раздел atomic и заменить строку
AC_RUN_IFELSE([AC_LANG_PROGRAM([[
на
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
Затем вам нужно запустить bootstrap.sh, чтобы воссоздать сценарий configure.
Это должно позволить вам конфигурировать, но компиляция/привязка может быть неудачной, потому что ваш инструментарий может не поддерживать вызовы __sync_xxx. В моей ситуации libatomic.so не содержал этих вызовов. Тогда мне пришлось прибегнуть к ручному редактированию скрипта configure, чтобы всегда отвечать "нет" на проверку атомности:
squid_cv_gnu_atomics=yes
to
squid_cv_gnu_atomics=no