没有线程的编译Perl

问题描述 投票:1回答:1

我正在编译Perl 5.30.1,并将与它和Apache 2.4.41一起使用mod_perl 2.0.11。

如果我尝试使用perl MakeFile.pm编译mod_perl,则会得到

Configuring Apache/2.4.41 mod_perl/2.0.11 Perl/v5.30.1
Using Perl 5.030001 w/o ithreads and httpd-2.4.
Failed requirements: Perl built with ithreads (build perl with -Duseithreads)

我们不使用线程,因此感觉最简单的是从Perl编译选项中将其删除...

[我可以看到人们说了如何编译它(我猜是在默认情况下关闭的Perl的旧版本中?)

-Dusethreads

但是我假设默认情况下它现在已启用?在这种情况下,没有它,我该如何编译?

如果我看一下myconfig文件,它会提示

useithreads=undef

我已经尝试过-Dusethreads = no或false之类的事情,但是类似的事情,但是我可能缺少正确的用法。

我也没有反对在mod_perl上启用线程(但是也找不到如何执行),如果没有性能下降(SO上的帖子似乎表明有10%的下降,但不确定)如果仍然有意义)

我采取的步骤(新服务器)是..下载

perl-5.30.1 and mod_perl-2.0.11

然后

CFLAGS='-m64 -mtune=nocona' ./Configure -des -A ccflags=-fPIC -Dprefix=/opt/perl  

perl -v不显示线程。

然后是mod_perl

Perl Makefile.PL

Apache编译为

./configure --enable-proxy --enable-rewrite --enable-headers --enable-ssl --with-apr=/usr/local/apr/

编辑:因此,mod_perl可能需要按原样启用线程,因此在这种情况下,是否有办法在编译选项中将其关闭。

perl mod-perl
1个回答
1
投票

我认为答案似乎是使用该选项编译mod_perl。

perl Makefile.PL MP_NO_THREADS=1

[如果有人想提供一个更完整的答案,关于现在是否不太希望这样做(或其他任何信息),因为Apache 2.4似乎有所变化,我很乐意接受他们的答案。

© www.soinside.com 2019 - 2024. All rights reserved.