Re: Re: Build failure
Emerson Gomes <[email protected]>
| Newsgroups | gmane.comp.apache.mod-perl |
|---|---|
| Message-ID | <[email protected]> |
Hello,
I reply to this after so many years because I also have been frustrated for not being able to build a static mod_perl for apache - It has been broken for a very long time.
I will sum up below what I did to achieve it with with latest httpd 2.4.46 and mod_perl 2.0.11.
There are 2 broken checks on the Makefile.PL. I removed them (Since I am unsure how to fix it):
sed -i -e '1098,1102d' Apache-Test/lib/Apache/TestRun.pm; \
sed -i '51,56c push @INC, "xs/tables/current24";' lib/ModPerl/MapUtil.pm; \
Also, there's broken test on modperl_sys.c, which I removed as well.
sed-i-e'66d' src/modules/perl/modperl_sys.c; \
I also had to build perl 5.31 with the Configure line below:
./Configure-des-Dusedevel-Duseithreads-Dldopts="-Wl,-Bstatic" -Dstatic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/Peek
Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob
Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV
List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding
PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable
Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece
Unicode/Collate Unicode/Normalize attributes mro re threads threads/shared';
I had to explicitly remove 3 modules ([Devel/PPPort XS/APItest XS/Typemap]) from the -Dstatic_ext, and leave them as dynamic ones, otherwise I would end up with weird linker errors if they end up on libperl.a, like:
undefined symbol: boot_XS__APItest
undefined reference to boot_Devel__PPPort
I also applied 2 fixes on perl coming from Fedora:
https://src.fedoraproject.org/rpms/perl/blob/master/f/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch
https://src.fedoraproject.org/rpms/perl/blob/master/f/perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch
Hope this helps someone in the future, and that someone eventually fix this issue properly :)
BR.,
Emerson
On 29/09/2017 12:14, Ruben Safir wrote:
> On Tue, Jul 12, 2016 at 01:48:43PM +1000, Jie Gao wrote:
>> * Ruben Safir <[email protected]> wrote:
>>
>>> Date: Mon, 11 Jul 2016 23:32:49 -0400
>>> From: Ruben Safir <[email protected]>
>>> To: [email protected]
>>> Subject: Re: Build failure
>>> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
>>> Thunderbird/45.1.1
>>>
>>> On 07/11/2016 11:30 PM, Jie Gao wrote:
>>>> Are you using the right apxs?
>>>>
>>>>
>>> This is a static build from source, I believe. There used to be a
>>> detailed set of examples in the docs, but no more.
>>
>> Please post output of "make bugreport" in mod_perl.
>>
> Hi
>
> I am bringing this back up again because I just fell into the trap
> again, and there is no solution. I have tried every combination of
> compiling mod_perl at this point and it just doesn't function out of the
> packages.
>
> There is nothing called make bugreport.
>
> :(
>
> This is my attempt at a STATIC build
>
> perl5.26.1 Makefile.PL MP_USE_STATIC=1 MP_AP_PREFIX="$HOME/src/httpd-2.4.27" MP_AP_CONFIGURE="--with-mpm=prefork"
>
> config.status: creating build/rules.mk
> config.status: creating build/pkg/pkginfo
> config.status: creating build/config_vars.sh
> config.status: creating include/ap_config_auto.h
> config.status: include/ap_config_auto.h is unchanged
> config.status: executing default commands
> configure: summary of build options:
>
> config.status: creating build/rules.mk
> config.status: creating build/pkg/pkginfo
> config.status: creating build/config_vars.sh
> config.status: creating include/ap_config_auto.h
> config.status: include/ap_config_auto.h is unchanged
> config.status: executing default commands
> configure: summary of build options:
>
> Server Version: 2.4.27
> Install prefix: /usr/local/apache2
> C compiler: gcc
> CFLAGS: -pthread
> LDFLAGS: -L/usr/lib
> LIBS:
> CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE
> C preprocessor: gcc -E
>
> Configuring Apache/2.4.27 mod_perl/2.0.10 Perl/v5.26.1
> Use of uninitialized value $httpd_version in string lt at
> lib/ModPerl/MapUtil.pm line 51.
> Checking if your kit is complete...
> Looks good
> ERROR from evaluation of
> /home/ruben/src/mod_perl-2.0.10/Apache-Reload/Makefile.PL: Use of
> uninitialized value $v in substitution (s///) at
> Apache-Test/lib/Apache/TestRun.pm line 1100.
>
> Searching this error brought me right back to my own email from
> last year.
>
> And this is a completely new OS, Artix (arch with openrc)
> This is a fresh compile of perl5.26.1 (all the binary perls failed to
> work and caused Apache stop working and silently crash).
>
> modperl 2.0.10
> Apache 2.4.27
>
> I see the Debian team has a apache 2.4 mod_perl working. I honestly
> don't know how they did it.
>
>
>
>
>> Regards,
>>
>>
>> Jie
>>
>>>> Regards,
>>>>
>>>>
>>>> Jie
>>>>
>>>> * Ruben Safir <[email protected]> wrote:
>>>>
>>>>> Date: Mon, 11 Jul 2016 23:00:09 -0400
>>>>> From: Ruben Safir <[email protected]>
>>>>> To: Ruben Safir <[email protected]>
>>>>> CC: [email protected]
>>>>> Subject: Re: Build failure
>>>>> User-Agent: Mutt/1.5.21 (2010-09-15)
>>>>>
>>>>> no activity?
>>>>>
>>>>>
>>>>> On Sun, Jul 10, 2016 at 04:43:25AM -0400, Ruben Safir wrote:
>>>>>> I'm trying to build modperl with apache source and it is failing
>>>>>> this is
>>>>>> modperl 2.0.9
>>>>>> apache 2.4.20
>>>>>> Perl 5.24 stock from Manjaro
>>>>>>
>>>>>> % perl Makefile.PL MP_USE_STATIC=1 MP_AP_PREFIX=/home/ruben/src/httpd-2.4.20/ MP_AP_CONFIGURE="--with-mpm=prefork"
>>>>>> ...
>>>>>>
>>>>>> Configuring Apache/2.4.20 mod_perl/2.0.9 Perl/v5.24.0
>>>>>> Use of uninitialized value $httpd_version in string lt at lib/ModPerl/MapUtil.pm line 51.
>>>>>> Checking if your kit is complete...
>>>>>> Looks good
>>>>>> ERROR from evaluation of /home/ruben/src/mod_perl-2.0.9/Apache-Reload/Makefile.PL: Use of uninitialized value $v in substitution (s///) at Apache-Test/lib/Apache/TestRun.pm line 1100.
>>>>>>
>>>>>>
>>>>>> --
>>>>>> So many immigrant groups have swept through our town
>>>>>> that Brooklyn, like Atlantis, reaches mythological
>>>>>> proportions in the mind of the world - RI Safir 1998
>>>>>> http://www.mrbrklyn.com
>>>>>>
>>>>>> DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002
>>>>>> http://www.nylxs.com - Leadership Development in Free Software
>>>>>> http://www2.mrbrklyn.com/resources - Unpublished Archive
>>>>>> http://www.coinhangout.com - coins!
>>>>>> http://www.brooklyn-living.com
>>>>>>
>>>>>> Being so tracked is for FARM ANIMALS and and extermination camps,
>>>>>> but incompatible with living as a free human being. -RI Safir 2013
>>>>> --
>>>>> So many immigrant groups have swept through our town
>>>>> that Brooklyn, like Atlantis, reaches mythological
>>>>> proportions in the mind of the world - RI Safir 1998
>>>>> http://www.mrbrklyn.com
>>>>>
>>>>> DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002
>>>>> http://www.nylxs.com - Leadership Development in Free Software
>>>>> http://www2.mrbrklyn.com/resources - Unpublished Archive
>>>>> http://www.coinhangout.com - coins!
>>>>> http://www.brooklyn-living.com
>>>>>
>>>>> Being so tracked is for FARM ANIMALS and and extermination camps,
>>>>> but incompatible with living as a free human being. -RI Safir 2013
>>>>>
>>>
>>> --
>>> So many immigrant groups have swept through our town
>>> that Brooklyn, like Atlantis, reaches mythological
>>> proportions in the mind of the world - RI Safir 1998
>>> http://www.mrbrklyn.com
>>>
>>> DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002
>>> http://www.nylxs.com - Leadership Development in Free Software
>>> http://www2.mrbrklyn.com/resources - Unpublished Archive
>>> http://www.coinhangout.com - coins!
>>> http://www.brooklyn-living.com
>>>
>>> Being so tracked is for FARM ANIMALS and and extermination camps,
>>> but incompatible with living as a free human being. -RI Safir 2013