Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Attempt to build perl-Quota 1.7.2 on RHEL8 Beta:
- [root@5210r ~]# rpm -ql libtirpc-devel |grep rpc.h
- /usr/include/tirpc/rpc/rpc.h
- [root@5210r Quota-1.7.2]# LC_ALL=C make clean
- [root@5210r Quota-1.7.2]# LC_ALL=C perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="-I/usr/include/tirpc/ -L/lib64 -lrpcsvc"
- Using hints/linux.h for myconfig.h
- Checking if your kit is complete...
- Looks good
- Warning (mostly harmless): No library found for -lrpcsvc
- Generating a Unix-style Makefile
- Writing Makefile for Quota
- Writing MYMETA.yml and MYMETA.json
- [root@5210r Quota-1.7.2]# LC_ALL=C make
- cp Quota.pm blib/lib/Quota.pm
- AutoSplitting blib/lib/Quota.pm (blib/lib/auto/Quota)
- Running Mkbootstrap for Quota ()
- chmod 644 "Quota.bs"
- "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Quota.bs blib/arch/auto/Quota/Quota.bs 644
- "/usr/bin/perl" "/usr/share/perl5/vendor_perl/ExtUtils/xsubpp" -typemap '/usr/share/perl5/ExtUtils/typemap' Quota.xs > Quota.xsc
- mv Quota.xsc Quota.c
- rm -f myconfig.h
- ln -s hints/linux.h myconfig.h
- gcc -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/tirpc/ -L/lib64 -lrpcsvc -DVERSION=\"1.7.2\" -DXS_VERSION=\"1.7.2\" -fPIC "-I/usr/lib64/perl5/CORE" Quota.c
- Quota.xs: In function 'callaurpc':
- Quota.xs:77:1: warning: type of 'prognum' defaults to 'int' [-Wimplicit-int]
- callaurpc(host, prognum, versnum, procnum, inproc, in, outproc, out)
- ^~~~~~~~~
- Quota.xs:77:1: warning: type of 'versnum' defaults to 'int' [-Wimplicit-int]
- Quota.xs:77:1: warning: type of 'procnum' defaults to 'int' [-Wimplicit-int]
- Quota.xs: In function 'XS_Quota_query':
- Quota.xs:349:12: warning: implicit declaration of function 'quotactl'; did you mean 'ioctl'? [-Wimplicit-function-declaration]
- err = quotactl(QCMD(Q_XGETQUOTA, ((kind == 2) ? XQM_PRJQUOTA : ((kind == 1) ? XQM_GRPQUOTA : XQM_USRQUOTA))), dev+5, uid, CADR &xfs_dqblk);
- ^~~~~~~~
- ioctl
- gcc -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/tirpc/ -L/lib64 -lrpcsvc -DVERSION=\"1.7.2\" -DXS_VERSION=\"1.7.2\" -fPIC "-I/usr/lib64/perl5/CORE" stdio_wrap.c
- gcc -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/tirpc/ -L/lib64 -lrpcsvc -DVERSION=\"1.7.2\" -DXS_VERSION=\"1.7.2\" -fPIC "-I/usr/lib64/perl5/CORE" linuxapi.c
- linuxapi.c: In function 'linuxquota_get_api':
- linuxapi.c:146:13: warning: implicit declaration of function 'quotactl'; did you mean 'SYS_quotactl'? [-Wimplicit-function-declaration]
- if (quotactl(QCMD(Q_V2_GETSTATS, 0), NULL, 0, (void *)&v2_stats) >= 0) {
- ^~~~~~~~
- SYS_quotactl
- rm -f blib/arch/auto/Quota/Quota.so
- gcc -lpthread -shared -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/usr/local/lib -fstack-protector-strong Quota.o stdio_wrap.o linuxapi.o -o blib/arch/auto/Quota/Quota.so \
- -lperl \
- chmod 755 blib/arch/auto/Quota/Quota.so
- Manifying 1 pod document
- [root@5210r Quota-1.7.2]# LC_ALL=C make install
- "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Quota.bs blib/arch/auto/Quota/Quota.bs 644
- Manifying 1 pod document
- Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
- Installing /usr/lib64/perl5/vendor_perl/auto/Quota/Quota.so
- Appending installation info to /usr/lib64/perl5/perllocal.pod
- #
- ### Test:
- #
- [root@5210r ~]# LC_ALL=C /usr/sausalito/constructor/base/user/50_addAdmin.pl
- Can't load '/usr/lib64/perl5/vendor_perl/auto/Quota/Quota.so' for module Quota: /usr/lib64/perl5/vendor_perl/auto/Quota/Quota.so: undefined symbol: __rpc_createerr at /usr/lib64/perl5/DynaLoader.pm line 193.
- at /usr/sausalito/constructor/base/user/50_addAdmin.pl line 10.
- Compilation failed in require at /usr/sausalito/constructor/base/user/50_addAdmin.pl line 10.
- BEGIN failed--compilation aborted at /usr/sausalito/constructor/base/user/50_addAdmin.pl line 10.
- #
- ### 'ldd' of resulting Quota.so:
- #
- [root@5210r ~]# LC_ALL=C ldd /usr/lib64/perl5/vendor_perl/auto/Quota/Quota.so
- linux-vdso.so.1 (0x00007ffc653d6000)
- libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1642d79000)
- libperl.so.5.26 => /lib64/libperl.so.5.26 (0x00007f164296a000)
- libc.so.6 => /lib64/libc.so.6 (0x00007f16425a6000)
- /lib64/ld-linux-x86-64.so.2 (0x00007f16431a0000)
- libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f164238f000)
- libdl.so.2 => /lib64/libdl.so.2 (0x00007f164218b000)
- libm.so.6 => /lib64/libm.so.6 (0x00007f1641e09000)
- libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f1641be0000)
- libutil.so.1 => /lib64/libutil.so.1 (0x00007f16419dc000)
- #
- ### Fix:
- #
- After running "perl Makefile.PL" edit the resulting Makefile and change the "MakeMaker const_config section" to this:
- # --- MakeMaker const_config section:
- # These definitions are from config.sh (via /usr/lib64/perl5/Config.pm).
- # They may have been overridden via Makefile.PL or on the command line.
- AR = ar
- CC = gcc
- CCCDLFLAGS = -fPIC
- CCDLFLAGS = -Wl,--enable-new-dtags -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -ltirpc
- DLEXT = so
- DLSRC = dl_dlopen.xs
- EXE_EXT =
- FULL_AR = /usr/bin/ar
- LD = gcc
- LDDLFLAGS = -lpthread -shared -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/lib64 -ltirpc
- LDFLAGS = -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong -ltirpc -L/lib64
- LIBC = libc-2.28.so
- LIB_EXT = .a
- OBJ_EXT = .o
- OSNAME = linux
- OSVERS = 4.14.0-49.el7a.noaead.x86_64
- RANLIB = :
- SITELIBEXP = /usr/local/share/perl5
- SITEARCHEXP = /usr/local/lib64/perl5
- SO = so
- VENDORARCHEXP = /usr/lib64/perl5/vendor_perl
- VENDORLIBEXP = /usr/share/perl5/vendor_perl
- That will then build just fine. This can perhaps be set on the command line during configure, but that didn't seem to work well enough for me.
- #
- ### 'ldd'-ouput from correctly built Quota.so:
- #
- [root@5210r ~]# LC_ALL=C ldd /usr/lib64/perl5/vendor_perl/auto/Quota/Quota.so
- linux-vdso.so.1 (0x00007fff78d59000)
- libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6b1d951000)
- libtirpc.so.3 => /lib64/libtirpc.so.3 (0x00007f6b1d71e000)
- libperl.so.5.26 => /lib64/libperl.so.5.26 (0x00007f6b1d30f000)
- libc.so.6 => /lib64/libc.so.6 (0x00007f6b1cf4b000)
- /lib64/ld-linux-x86-64.so.2 (0x00007f6b1dd78000)
- libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f6b1ccfb000)
- libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f6b1ca0b000)
- libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f6b1c7ef000)
- libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f6b1c5eb000)
- libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f6b1c3d4000)
- libdl.so.2 => /lib64/libdl.so.2 (0x00007f6b1c1d0000)
- libm.so.6 => /lib64/libm.so.6 (0x00007f6b1be4e000)
- libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f6b1bc25000)
- libutil.so.1 => /lib64/libutil.so.1 (0x00007f6b1ba21000)
- libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f6b1b811000)
- libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f6b1b339000)
- libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f6b1b135000)
- libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f6b1af0b000)
- libz.so.1 => /lib64/libz.so.1 (0x00007f6b1acf4000)
- libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f6b1aa74000)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement