MESSAGE
DATE | 2020-09-11 |
FROM | Emerson Gomes
|
SUBJECT | Re: [Hangout - NYLXS] Build failure
|
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 -at-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 wrote: >> >>> Date: Mon, 11 Jul 2016 23:32:49 -0400 >>> From: Ruben Safir >>> To: modperl-at-perl.apache.org >>> 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 wrote: >>>> >>>>> Date: Mon, 11 Jul 2016 23:00:09 -0400 >>>>> From: Ruben Safir >>>>> To: Ruben Safir >>>>> CC: modperl-at-perl.apache.org >>>>> 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 _______________________________________________ Hangout mailing list Hangout-at-nylxs.com http://lists.mrbrklyn.com/mailman/listinfo/hangout
|
|