Actually, I don't think there is anything stopping -DAP_DEBUG from coming through from the httpd config. The change that was made (r357052) just stopped mod_perl from adding that itself when MP_MAINTAINER is specified.
But maybe we do need to filter out -DAP_DEBUG? Or else stop using ap_strchr() and just use strchr() directly? Could you try the latter, since it seems like an easy fix? -- Change the one instance of ap_strchr() in xs/Apache2/Module/Apache2__Module.h to be strchr() instead and then rebuild. Does that make the problem go away? On 9 April 2015 at 18:16, Steve Hay <steve.m....@googlemail.com> wrote: > Can you see where the -DAP_DEBUG comes from, e.g. by grepping > /usr/local/httpd-2.4.12/bin/ap* for AP_DEBUG? > > I think that symbol is not supposed to find its way into the mod_perl > build options, but it's obviously getting picked up somewhere and > slipping through... > > > On 9 April 2015 at 15:05, Jie Gao <j....@sydney.edu.au> wrote: >> Hi Steve >> >> httpd is configured with "--enable-maintainer-mode". >> >> For mod_perl: >> >> /usr/local/bin/perl Makefile.PL MP_APXS=/usr/local/httpd-2.4.12/bin/apxs >> MP_APR_CONFIG=/usr/local/httpd-2.4.12/bin/apr-1-config >> >> and I found the following line in the resultant Makefile: >> >> CCFLAGS = -D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv -fno-strict-aliasing >> -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE >> -D_FILE_OFFSET_BITS=64 -DMOD_PERL -DMP_COMPAT_1X -DLINUX -D_REENTRANT >> -D_GNU_SOURCE -DAP_DEBUG >> >> >> >> Regards, >> >> Jie >> >> * Steve Hay <steve.m....@googlemail.com> wrote: >> >>> Date: Thu, 9 Apr 2015 14:29:44 +0100 >>> From: Steve Hay <steve.m....@googlemail.com> >>> To: Jie Gao <j....@sydney.edu.au> >>> CC: "modperl@perl.apache.org" <modperl@perl.apache.org>, mod_perl Dev >>> <d...@perl.apache.org> >>> Subject: Re: Trunk: APR.so won't load >>> >>> Sorry for the slow reply. >>> >>> I cannot reproduce the problem here on Windows. Your example module >>> loads up fine with all the "use APR" lines uncommented. >>> >>> The build system (and the means by which APR::* should be loadable >>> without mod_perl.so being loaded) is different on Windows, but I did >>> notice this: >>> >>> ap_strchr seems to only be used in xs\Apache2\Module\Apache2__Module.h >>> but when I run Module.c through the preprocessor I find that ap_strchr >>> gets changed to strchr, and the latter is simply imported from the C >>> run-time library. >>> >>> I guess that's down to this code in httpd.h: >>> >>> #ifdef AP_DEBUG >>> >>> #undef strchr >>> # define strchr(s, c) ap_strchr(s,c) >>> #undef strrchr >>> # define strrchr(s, c) ap_strrchr(s,c) >>> #undef strstr >>> # define strstr(s, c) ap_strstr(s,c) >>> >>> #else >>> >>> /** use this instead of strchr */ >>> # define ap_strchr(s, c) strchr(s, c) >>> /** use this instead of strchr */ >>> # define ap_strchr_c(s, c) strchr(s, c) >>> /** use this instead of strrchr */ >>> # define ap_strrchr(s, c) strrchr(s, c) >>> /** use this instead of strrchr */ >>> # define ap_strrchr_c(s, c) strrchr(s, c) >>> /** use this instead of strrstr*/ >>> # define ap_strstr(s, c) strstr(s, c) >>> /** use this instead of strrstr*/ >>> # define ap_strstr_c(s, c) strstr(s, c) >>> >>> #endif >>> >>> so presumably I do not have AP_DEBUG defined for my build (even though >>> it was a debug build). >>> >>> It looks like AP_DEBUG should not be defined, even in maintainer mode, >>> according to an old Changes entry: >>> >>> remove -DAP_HAVE_DESIGNATED_INITIALIZER and -DAP_DEBUG from >>> MP_MAINTAINER mode to avoid collisions [Joe Orton] >>> >>> but do you somehow have AP_DEBUG defined somewhere, which causes the >>> replacement of ap_strchr with strchr to not happen for you? >>> >>> >>> On 27 March 2015 at 09:14, Jie Gao <j....@sydney.edu.au> wrote: >>> > Hi All >>> > >>> > I had some more time looking into this, and here's some info I can >>> > provide. >>> > >>> > -------------------------------------------------------------------------- >>> > >>> > # readelf -a >>> > /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so >>> > ELF Header: >>> > Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 >>> > Class: ELF64 >>> > Data: 2's complement, little endian >>> > Version: 1 (current) >>> > OS/ABI: UNIX - System V >>> > ABI Version: 0 >>> > Type: DYN (Shared object file) >>> > Machine: Advanced Micro Devices X86-64 >>> > Version: 0x1 >>> > Entry point address: 0x1cb0 >>> > Start of program headers: 64 (bytes into file) >>> > Start of section headers: 15480 (bytes into file) >>> > Flags: 0x0 >>> > Size of this header: 64 (bytes) >>> > Size of program headers: 56 (bytes) >>> > Number of program headers: 6 >>> > Size of section headers: 64 (bytes) >>> > Number of section headers: 29 >>> > Section header string table index: 26 >>> > >>> > Section Headers: >>> > [Nr] Name Type Address Offset >>> > Size EntSize Flags Link Info Align >>> > [ 0] NULL 0000000000000000 00000000 >>> > 0000000000000000 0000000000000000 0 0 0 >>> > >>> > [ Lines removed for clarity ] >>> > >>> > Dynamic section at offset 0x36f8 contains 27 entries: >>> > Tag Type Name/Value >>> > 0x0000000000000001 (NEEDED) Shared library: >>> > [libaprutil-1.so.0] >>> > 0x0000000000000001 (NEEDED) Shared library: [libexpat.so.1] >>> > 0x0000000000000001 (NEEDED) Shared library: [libapr-1.so.0] >>> > 0x0000000000000001 (NEEDED) Shared library: [librt.so.1] >>> > 0x0000000000000001 (NEEDED) Shared library: [libcrypt.so.1] >>> > 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] >>> > 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] >>> > 0x000000000000000f (RPATH) Library rpath: >>> > [/usr/local/httpd-2.4.12/lib:/lib/../lib64] >>> > >>> > [ Lines removed for clarity ] >>> > >>> > Relocation section '.rela.plt' at offset 0x1300 contains 61 entries: >>> > Offset Info Type Sym. Value Sym. Name + >>> > Addend >>> > 000000203930 000200000007 R_X86_64_JUMP_SLO 0000000000000000 Perl_mg_get >>> > + 0 >>> > 000000203938 000300000007 R_X86_64_JUMP_SLO 0000000000000000 >>> > Perl_sv_setiv + 0 >>> > 000000203940 000400000007 R_X86_64_JUMP_SLO 0000000000000000 >>> > Perl_sv_bless + 0 >>> > 000000203948 000500000007 R_X86_64_JUMP_SLO 0000000000000000 >>> > apr_strerror + 0 >>> > 000000203950 000600000007 R_X86_64_JUMP_SLO 0000000000000000 >>> > Perl_require_pv + 0 >>> > 000000203958 000700000007 R_X86_64_JUMP_SLO 0000000000000000 Perl_warn + >>> > 0 >>> > 000000203960 000800000007 R_X86_64_JUMP_SLO 0000000000000000 >>> > PerlIO_printf + 0 >>> > 000000203968 000900000007 R_X86_64_JUMP_SLO 0000000000000000 ap_strchr + >>> > 0 >>> > >>> > [ Lines removed for clarity ] >>> > >>> > Symbol table '.dynsym' contains 86 entries: >>> > Num: Value Size Type Bind Vis Ndx Name >>> > 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND >>> > 1: 00000000000018b8 0 SECTION LOCAL DEFAULT 9 >>> > 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND Perl_mg_get >>> > 3: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND Perl_sv_setiv >>> > 4: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND Perl_sv_bless >>> > 5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND apr_strerror >>> > 6: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND Perl_require_pv >>> > 7: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND Perl_warn >>> > 8: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND PerlIO_printf >>> > 9: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND ap_strchr >>> > >>> > >>> > [ Lines removed for clarity ] >>> > >>> > Symbol table '.symtab' contains 143 entries: >>> > Num: Value Size Type Bind Vis Ndx Name >>> > 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND >>> > 1: 0000000000000190 0 SECTION LOCAL DEFAULT 1 >>> > >>> > [ Lines removed for clarity ] >>> > >>> > 69: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND ap_strchr >>> > >>> > >>> > [ Lines removed for clarity ] >>> > >>> > -------------------------------------------------------------------------- >>> > >>> > It seems that ap_strchr is not defined anywhere outside httpd, and not in >>> > any of the shared libs. This seems to create the problem when building >>> > a module with mod_perl or outside the mod_perl source. >>> > >>> > I find a somewhat related change by Stas in the past in the Changes file: >>> > >>> > bug reports generating code: [Stas] >>> > - add (apr|apu)-config linking info >>> > - show the full path to the config file used to get the data for the >>> > report >>> > >>> > The APR and APR::* family of modules can now be used without having >>> > to load mod_perl.so. On *nix, this is done by compiling the needed >>> > functions from the appropriate sources used to build mod_perl.so >>> > into APR.so, and then arranging for APR::* to 'use APR ()'. On Win32, >>> > a static library of needed functions is built, and APR/APR::* >>> > then link into this library [Stas, Joe Schaefer, Randy Kobes] >>> > >>> > >>> > I hope this helps resolve this issue in any way. >>> > >>> > >>> > >>> > >>> > >>> > Regards, >>> > >>> > Jie >>> > >>> > * Jie Gao <j....@sydney.edu.au> wrote: >>> > >>> >> Date: Sun, 1 Mar 2015 17:30:45 +1100 >>> >> From: Jie Gao <j....@sydney.edu.au> >>> >> To: "modperl@perl.apache.org" <modperl@perl.apache.org>, mod_perl Dev >>> >> <d...@perl.apache.org> >>> >> Subject: Trunk: APR.so won't load >>> >> User-Agent: Mutt/1.5.21 (2010-09-15) >>> >> >>> >> I have got the source code from the trunk, "make test" mostly passed >>> >> except for >>> >> a threading issue, but I installed it anyway. >>> >> >>> >> Tried to load a test module, but it fails with the following error: >>> >> >>> >> # Error: Can't load >>> >> '/usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so' >>> >> for module APR: >>> >> /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/auto/APR/APR.so: >>> >> undefined symbol: ap_strchr at >>> >> /usr/local/lib/perl5/5.20.2/x86_64-linux-thread-multi/DynaLoader.pm line >>> >> 193. >>> >> # at >>> >> /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi/APR/Table.pm >>> >> line 23. >>> >> >>> >> The following test module loads OK, but fails if I uncomment any of the >>> >> "use APR::*" lines: >>> >> >>> >> #------------------------------------------------------------------------- >>> >> >>> >> package mytest::mytestmodule; >>> >> >>> >> use 5.010001; >>> >> use strict; >>> >> use warnings; >>> >> use Carp; >>> >> $SIG{__DIE__} = \&Carp::confess; >>> >> >>> >> use mod_perl2; >>> >> use Apache2::Connection(); >>> >> use Apache2::RequestRec(); >>> >> use Apache2::SubRequest(); >>> >> use Apache2::Access(); >>> >> use Apache2::RequestUtil(); >>> >> use Apache2::Response(); >>> >> use Apache2::Log(); >>> >> use Apache2::Util(); >>> >> use Apache2::Const ("-compile", qw(:common :methods :satisfy :auth >>> >> MODE_READBYTES)); >>> >> use Apache2::URI(); >>> >> use Apache2::Filter (); >>> >> #use APR::Const ("-compile", qw(:common SUCCESS BLOCK_READ)); >>> >> use IO::Socket qw(SOCK_STREAM); >>> >> use Data::Dumper; >>> >> use AnyDBM_File (); >>> >> #use APR::Brigade (); >>> >> #use APR::Bucket (); >>> >> #use APR::Base64 (); >>> >> #use APR::Table (); >>> >> #use APR::URI (); >>> >> use URI::Escape::XS qw/uri_escape uri_unescape/; >>> >> #use Apache2::MPM(); >>> >> >>> >> our $VERSION = '1.0.1'; >>> >> >>> >> 1; >>> >> __END__ >>> >> >>> >> #------------------------------------------------------------------------- >>> >> >>> >> -------------8<---------- Start Bug Report ------------8<---------- >>> >> 1. Problem Description: >>> >> >>> >> [DESCRIBE THE PROBLEM HERE] >>> >> >>> >> 2. Used Components and their Configuration: >>> >> >>> >> *** mod_perl version 2.000009 >>> >> >>> >> *** using /usr/local/src/mod_perl-2.0/lib/Apache2/BuildConfig.pm >>> >> >>> >> *** Makefile.PL options: >>> >> MP_APR_CONFIG => /usr/local/httpd-2.4.12/bin/apr-1-config >>> >> MP_APR_LIB => aprext >>> >> MP_APXS => /usr/local/httpd-2.4.12/bin/apxs >>> >> MP_COMPAT_1X => 1 >>> >> MP_GENERATE_XS => 1 >>> >> MP_LIBNAME => mod_perl >>> >> MP_USE_DSO => 1 >>> >> >>> >> >>> >> *** /usr/local/httpd-2.4.12/bin/httpd -V >>> >> Server version: Apache/2.4.12 (Unix) >>> >> Server built: Feb 27 2015 20:05:23 >>> >> Server's Module Magic Number: 20120211:41 >>> >> Server loaded: APR 1.5.1, APR-UTIL 1.5.4 >>> >> Compiled using: APR 1.5.1, APR-UTIL 1.5.4 >>> >> Architecture: 64-bit >>> >> Server MPM: worker >>> >> threaded: yes (fixed thread count) >>> >> forked: yes (variable process count) >>> >> Server compiled with.... >>> >> -D APR_HAS_SENDFILE >>> >> -D APR_HAS_MMAP >>> >> -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) >>> >> -D APR_USE_SYSVSEM_SERIALIZE >>> >> -D APR_USE_PTHREAD_SERIALIZE >>> >> -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT >>> >> -D APR_HAS_OTHER_CHILD >>> >> -D AP_HAVE_RELIABLE_PIPED_LOGS >>> >> -D DYNAMIC_MODULE_LIMIT=256 >>> >> -D HTTPD_ROOT="/usr/local/httpd-2.4.12" >>> >> -D SUEXEC_BIN="/usr/local/httpd-2.4.12/bin/suexec" >>> >> >>> >> >>> >> *** /usr/bin/ldd /usr/local/httpd-2.4.12/bin/httpd >>> >> linux-vdso.so.1 => (0x00007fffcefff000) >>> >> libpcre.so.0 => /lib64/libpcre.so.0 (0x000000327f400000) >>> >> libaprutil-1.so.0 => >>> >> /usr/local/httpd-2.4.12/lib/libaprutil-1.so.0 (0x00007f3ba864c000) >>> >> libexpat.so.1 => /lib64/libexpat.so.1 (0x0000003281c00000) >>> >> libapr-1.so.0 => /usr/local/httpd-2.4.12/lib/libapr-1.so.0 >>> >> (0x00007f3ba8417000) >>> >> librt.so.1 => /lib64/librt.so.1 (0x000000327dc00000) >>> >> libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000036c2400000) >>> >> libpthread.so.0 => /lib64/libpthread.so.0 (0x000000327d400000) >>> >> libc.so.6 => /lib64/libc.so.6 (0x000000327d000000) >>> >> /lib64/ld-linux-x86-64.so.2 (0x000000327cc00000) >>> >> libfreebl3.so => /lib64/libfreebl3.so (0x00000036c2800000) >>> >> libdl.so.2 => /lib64/libdl.so.2 (0x000000327d800000) >>> >> >>> >> >>> >> *** (apr|apu)-config linking info >>> >> >>> >> -L/usr/local/httpd-2.4.12/lib -laprutil-1 -lexpat >>> >> -L/usr/local/httpd-2.4.12/lib -lapr-1 -lrt -lcrypt -lpthread >>> >> >>> >> >>> >> >>> >> *** /usr/local/bin/perl -V >>> >> Summary of my perl5 (revision 5 version 20 subversion 2) configuration: >>> >> >>> >> Platform: >>> >> osname=linux, osvers=2.6.32-504.8.1.el6.x86_64, >>> >> archname=x86_64-linux-thread-multi >>> >> uname='linux xxx.xxx.xxx.xx 2.6.32-504.8.1.el6.x86_64 #1 smp fri dec >>> >> 19 12:09:25 est 2014 x86_64 x86_64 x86_64 gnulinux ' >>> >> config_args='-Dusethreads -Dprefix=/usr/local -des -A ccflags=-fPIC' >>> >> hint=recommended, useposix=true, d_sigaction=define >>> >> useithreads=define, usemultiplicity=define >>> >> use64bitint=define, use64bitall=define, uselongdouble=undef >>> >> usemymalloc=n, bincompat5005=undef >>> >> Compiler: >>> >> cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv >>> >> -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include >>> >> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', >>> >> optimize='-O2', >>> >> cppflags='-D_REENTRANT -D_GNU_SOURCE -fPIC -fwrapv >>> >> -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' >>> >> ccversion='', gccversion='4.4.7 20120313 (Red Hat 4.4.7-11)', >>> >> gccosandvers='' >>> >> intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 >>> >> d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 >>> >> ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', >>> >> lseeksize=8 >>> >> alignbytes=8, prototype=define >>> >> Linker and Libraries: >>> >> ld='cc', ldflags =' -fstack-protector -L/usr/local/lib' >>> >> libpth=/usr/local/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib >>> >> /lib64 /usr/lib64 /usr/local/lib64 >>> >> libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc >>> >> perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc >>> >> libc=libc-2.12.so, so=so, useshrplib=false, libperl=libperl.a >>> >> gnulibc_version='2.12' >>> >> Dynamic Linking: >>> >> dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' >>> >> cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib >>> >> -fstack-protector' >>> >> >>> >> >>> >> Characteristics of this binary (from libperl): >>> >> Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS >>> >> PERL_DONT_CREATE_GVSV >>> >> PERL_HASH_FUNC_ONE_AT_A_TIME_HARD >>> >> PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP >>> >> PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV >>> >> USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS >>> >> USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE >>> >> USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO >>> >> USE_PERL_ATOF USE_REENTRANT_API >>> >> Built under linux >>> >> Compiled at Feb 25 2015 15:58:55 >>> >> %ENV: >>> >> PERL_LWP_USE_HTTP_10="1" >>> >> @INC: >>> >> /usr/local/lib/perl5/site_perl/5.20.2/x86_64-linux-thread-multi >>> >> /usr/local/lib/perl5/site_perl/5.20.2 >>> >> /usr/local/lib/perl5/5.20.2/x86_64-linux-thread-multi >>> >> /usr/local/lib/perl5/5.20.2 >>> >> /usr/local/lib/perl5/site_perl/5.18.2 >>> >> /usr/local/lib/perl5/site_perl/5.18.0 >>> >> /usr/local/lib/perl5/site_perl >>> >> . >>> >> >>> >> *** Packages of interest status: >>> >> >>> >> Apache2 : - >>> >> Apache2::Request : - >>> >> CGI : 3.65 >>> >> ExtUtils::MakeMaker: 6.98 >>> >> LWP : 5.837 >>> >> mod_perl : - >>> >> mod_perl2 : 2.000009 >>> >> >>> >> >>> >> 3. This is the core dump trace: (if you get a core dump): >>> >> >>> >> [CORE TRACE COMES HERE] >>> >> >>> >> This report was generated by bin/mp2bug on Sun Mar 1 06:21:21 2015 GMT. >>> >> >>> >> -------------8<---------- End Bug Report --------------8<---------- >>> >> >>> >> # ls -al /usr/local/httpd-2.4.12/lib/ >>> >> total 4108 >>> >> drwxr-xr-x. 4 root root 4096 Feb 27 20:07 . >>> >> drwxr-xr-x. 15 root root 4096 Feb 27 20:07 .. >>> >> -rw-r--r--. 1 root root 9262 Feb 27 20:07 apr.exp >>> >> drwxr-xr-x. 2 root root 4096 Feb 27 20:07 apr-util-1 >>> >> -rw-r--r--. 1 root root 5272 Feb 27 20:07 aprutil.exp >>> >> -rw-r--r--. 1 root root 1685642 Feb 27 20:07 libapr-1.a >>> >> -rwxr-xr-x. 1 root root 969 Feb 27 20:07 libapr-1.la >>> >> lrwxrwxrwx. 1 root root 17 Feb 27 20:07 libapr-1.so -> >>> >> libapr-1.so.0.5.1 >>> >> lrwxrwxrwx. 1 root root 17 Feb 27 20:07 libapr-1.so.0 -> >>> >> libapr-1.so.0.5.1 >>> >> -rwxr-xr-x. 1 root root 858051 Feb 27 20:07 libapr-1.so.0.5.1 >>> >> -rw-r--r--. 1 root root 1022024 Feb 27 20:07 libaprutil-1.a >>> >> -rwxr-xr-x. 1 root root 1045 Feb 27 20:07 libaprutil-1.la >>> >> lrwxrwxrwx. 1 root root 21 Feb 27 20:07 libaprutil-1.so -> >>> >> libaprutil-1.so.0.5.4 >>> >> lrwxrwxrwx. 1 root root 21 Feb 27 20:07 libaprutil-1.so.0 -> >>> >> libaprutil-1.so.0.5.4 >>> >> -rwxr-xr-x. 1 root root 589222 Feb 27 20:07 libaprutil-1.so.0.5.4 >>> >> drwxr-xr-x. 2 root root 4096 Feb 27 20:07 pkgconfig >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> Regards, >>> >> >>> >> >>> >> Jie. >>> >> >>> >> >>> >>