Как мне скомпилировать Perl 5.10 с поддержкой потоков под FreeBSD 7.1?

StackOverflow https://stackoverflow.com/questions/814285

Вопрос

Я пытаюсь скомпилировать Perl 5.10 на моем сервере FreeBSD 7.1 (BSD), но когда я запускаю скрипт Configure и отвечаю на вопросы, я получаю следующую ошибку:

...POSTIX threads should be supported by FreeBSD 7.1 ... but your system is missing the shared libc_r.

Погуглив ответ, мы установили gethostnamadr.c, что хорошо, за исключением двух вещей:

<Ол>
  • Я не знаю, куда поместить этот файл и
  • Как это решит мою проблему, если Configure хочет увидеть libc_r?
  • Это было полезно?

    Решение

    Чтобы включить потоки Perl 5.10 во FreeBSD 7. * все, что вам нужно сделать, это применить следующий патч, используя patch . Затем вы можете собрать perl с -Dusethreads или ответить на вопросы файла Configure , чтобы включить многопоточность, и все готово. Я еще не проводил каких-либо значительных тестов или сравнений, но все прекрасно компилируется, включая библиотеки потоков, и все мои программы на Perl работают нормально.

    --- hints/freebsd.sh 2008/10/20 04:59:30 1.1
    +++ hints/freebsd.sh 2008/10/20 22:49:29
    @@ -211,6 +211,14 @@
    exit 1
    ;;
    
    + 7.*)
    + # 7.x doesn't install libc_r by default, and Configure
    + # would fail in the code following
    + #
    + # gethostbyaddr_r() appears to have been implemented in 6.x+
    + ldflags="-pthread $ldflags"
    + ;;
    +
    *)
    if [ ! -r "$lc_r" ]; then
    cat <<EOM >&4 
    

    РЕДАКТИРОВАТЬ: я забыл свою ссылку; проверьте здесь для получения дополнительной информации: http: // www. gossamer-threads.com/lists/perl/porters/232518?nohighlight=1#232518 .

    Другие советы

    В отличие от Спольски, который сказал, что "perl в значительной степени забыт" ... perl очень жив.

    Вы не указали, какую версию FreeBSD вы установили ... Но при условии, что вы установили минимум FreeBSD 7.1, вы не смогли установить библиотеки потоков, или библиотеки потоков не находятся в пути к библиотеке.

    ОБРАТИТЕ ВНИМАНИЕ, что libc является общей библиотекой 'c' и что libc_r является поточно-ориентированной версией этого файла. Некоторые результаты Google за 2005 год показывают, что libc_r устарела.

    Имея это в виду, вероятно, вы находитесь в середине "столкновения ревизий". К сожалению, FreeBSD не предоставляет нативно-ориентированную версию perl, однако они делают пакет perl 5.10 и несколько более поздних версий. Я нашел эту ссылку полезной:

    http://www.nabble.com/How---where-to-get-a-Perl-that-has-threads--td22270858.html

    вы также можете попробовать установить библиотеку p5-fork, которая включена в FreeBSD

    http://www.nabble.com/How---where-to-get-a-Perl-that-has-threads--td22270858.html

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top