Hi, Michael Hanke's shared libraries work (#2132) got put into a separate branch today, so I've had a lovely evening porting it over to our local RHEL5 RPM (which is basically the Fedora RPM plus Globus support and other goodies enabled). Unfortunately, there were a handful of issues that didn't make the porting clean. The difference in on-disk size is, as expected, significant. For reference, the "big mother" unstripped tarball at UW is 448MB and the UW RPM is 184MB. Recall these include all externals as static libs, while the rest of the RPMs below link to them (so this isn't an "apples" comparison). First, the PROPER build with static linking of condor libraries: [brian@brian-test condor]$ ll ~/rpmbuild/RPMS/x86_64/condor-*7.6.1-0.7.pre.x86_64.rpm -h -rw-r--r-- 1 brian brian 38M May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-7.6.1-0.7.pre.x86_64.rpm -rw-r--r-- 1 brian brian 236K May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-classads-7.6.1-0.7.pre.x86_64.rpm -rw-r--r-- 1 brian brian 299K May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-classads-devel-7.6.1-0.7.pre.x86_64.rpm -rw-r--r-- 1 brian brian 157M May 17 09:39 /home/brian/rpmbuild/RPMS/x86_64/condor-debuginfo-7.6.1-0.7.pre.x86_64.rpm -rw-r--r-- 1 brian brian 775K May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-kbdd-7.6.1-0.7.pre.x86_64.rpm -rw-r--r-- 1 brian brian 2.0M May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-qmf-7.6.1-0.7.pre.x86_64.rpm -rw-r--r-- 1 brian brian 1.6M May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-vm-gahp-7.6.1-0.7.pre.x86_64.rpm Now, with the shared library patches: [brian@brian-test condor]$ ll ~/rpmbuild/RPMS/x86_64/condor-*7.6.1-0.9.pre.x86_64.rpm -h -rw-r--r-- 1 brian brian 4.7M May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-7.6.1-0.9.pre.x86_64.rpm -rw-r--r-- 1 brian brian 236K May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-classads-7.6.1-0.9.pre.x86_64.rpm -rw-r--r-- 1 brian brian 77K May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-classads-devel-7.6.1-0.9.pre.x86_64.rpm -rw-r--r-- 1 brian brian 22M May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-debuginfo-7.6.1-0.9.pre.x86_64.rpm -rw-r--r-- 1 brian brian 28K May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-kbdd-7.6.1-0.9.pre.x86_64.rpm -rw-r--r-- 1 brian brian 413K May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-qmf-7.6.1-0.9.pre.x86_64.rpm -rw-r--r-- 1 brian brian 143K May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-vm-gahp-7.6.1-0.9.pre.x86_64.rpm 4.7MB ain't shabby! Shared libraries being shared libraries, you can now peruse all the linked baggage of the svelte 73KB condor_q. See below. Dynamic libraries have all the advantages of dynamic libraries and all the disadvantages of dynamic libraries. No need to revisit them here ... but I thought the data point about binary size was interesting enough to share! Brian [brian@brian-test condor]$ ldd /usr/bin/condor_q linux-vdso.so.1 => (0x00007fffda7c4000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003feb200000) libconversion.so => /usr/lib64/libconversion.so (0x00007f722b2ad000) libanalysis.so => /usr/lib64/libanalysis.so (0x00007f722b06d000) libqmgmt.so => /usr/lib64/libqmgmt.so (0x00007f722ae62000) libprocd_client.so => /usr/lib64/libprocd_client.so (0x00007f722ac58000) libdaemon_client.so => /usr/lib64/libdaemon_client.so (0x00007f722aa15000) libprocapi.so => /usr/lib64/libprocapi.so (0x00007f722a80b000) libcedar.so => /usr/lib64/libcedar.so (0x00007f722a59e000) libprivsep.so => /usr/lib64/libprivsep.so (0x00007f722a399000) libclassads.so => /usr/lib64/libclassads.so (0x00007f722a111000) libsysapi.so => /usr/lib64/libsysapi.so (0x00007f7229e60000) libccb.so => /usr/lib64/libccb.so (0x00007f7229c42000) libutils.so => /usr/lib64/libutils.so (0x00007f7229880000) libvomsapi.so.0 => /usr/lib64/libvomsapi.so.0 (0x0000003a2b000000) libglobus_gss_assist.so.3 => /usr/lib64/libglobus_gss_assist.so.3 (0x000000384ce00000) libglobus_gssapi_gsi.so.4 => /usr/lib64/libglobus_gssapi_gsi.so.4 (0x000000384d200000) libglobus_gsi_proxy_core.so.0 => /usr/lib64/libglobus_gsi_proxy_core.so.0 (0x000000384ba00000) libglobus_gsi_credential.so.1 => /usr/lib64/libglobus_gsi_credential.so.1 (0x000000384de00000) libglobus_gsi_callback.so.0 => /usr/lib64/libglobus_gsi_callback.so.0 (0x000000384c600000) libglobus_gsi_sysconfig.so.1 => /usr/lib64/libglobus_gsi_sysconfig.so.1 (0x000000384b600000) libglobus_oldgaa.so.0 => /usr/lib64/libglobus_oldgaa.so.0 (0x000000384d600000) libglobus_gsi_cert_utils.so.0 => /usr/lib64/libglobus_gsi_cert_utils.so.0 (0x000000384be00000) libglobus_openssl.so.0 => /usr/lib64/libglobus_openssl.so.0 (0x000000384ca00000) libglobus_openssl_error.so.0 => /usr/lib64/libglobus_openssl_error.so.0 (0x000000384c200000) libglobus_proxy_ssl.so.1 => /usr/lib64/libglobus_proxy_ssl.so.1 (0x0000003ff2e00000) libglobus_callout.so.0 => /usr/lib64/libglobus_callout.so.0 (0x000000384da00000) libglobus_common.so.0 => /usr/lib64/libglobus_common.so.0 (0x000000384b200000) libltdl.so.3 => /usr/lib64/libltdl.so.3 (0x0000003feda00000) libexpat.so.0 => /lib64/libexpat.so.0 (0x0000003d68200000) libpcre.so.0 => /lib64/libpcre.so.0 (0x0000003ff0200000) libssl.so.6 => /lib64/libssl.so.6 (0x00000031f0c00000) libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003fede00000) libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000003feee00000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003fee600000) libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x0000003fef600000) libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x0000003feea00000) libdaemon_core.so => /usr/lib64/libdaemon_core.so (0x00007f7229629000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003a2ac00000) libm.so.6 => /lib64/libm.so.6 (0x0000003feae00000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003a2a800000) libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003feb600000) libc.so.6 => /lib64/libc.so.6 (0x0000003feaa00000) /lib64/ld-linux-x86-64.so.2 (0x0000003fea600000) libz.so.1 => /usr/lib64/libz.so.1 (0x0000003feba00000) libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00000031ef400000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003fee200000) libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003fece00000) libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003fec200000) libsepol.so.1 => /lib64/libsepol.so.1 (0x0000003fec600000) [brian@brian-test condor]$ ldd /usr/sbin/condor_shadow linux-vdso.so.1 => (0x00007fffb8bff000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003feb200000) libqmgmt.so => /usr/lib64/libqmgmt.so (0x00007f7035a14000) libprocd_client.so => /usr/lib64/libprocd_client.so (0x00007f7035809000) libdaemon_core.so => /usr/lib64/libdaemon_core.so (0x00007f70355ba000) libdaemon_client.so => /usr/lib64/libdaemon_client.so (0x00007f7035378000) libprocapi.so => /usr/lib64/libprocapi.so (0x00007f703516d000) libcedar.so => /usr/lib64/libcedar.so (0x00007f7034f00000) libprivsep.so => /usr/lib64/libprivsep.so (0x00007f7034cfc000) libclassads.so => /usr/lib64/libclassads.so (0x00007f7034a73000) libsysapi.so => /usr/lib64/libsysapi.so (0x00007f70347c2000) libccb.so => /usr/lib64/libccb.so (0x00007f70345a5000) libutils.so => /usr/lib64/libutils.so (0x00007f70341e2000) libvomsapi.so.0 => /usr/lib64/libvomsapi.so.0 (0x0000003a2b000000) libglobus_gss_assist.so.3 => /usr/lib64/libglobus_gss_assist.so.3 (0x000000384ce00000) libglobus_gssapi_gsi.so.4 => /usr/lib64/libglobus_gssapi_gsi.so.4 (0x000000384d200000) libglobus_gsi_proxy_core.so.0 => /usr/lib64/libglobus_gsi_proxy_core.so.0 (0x000000384ba00000) libglobus_gsi_credential.so.1 => /usr/lib64/libglobus_gsi_credential.so.1 (0x000000384de00000) libglobus_gsi_callback.so.0 => /usr/lib64/libglobus_gsi_callback.so.0 (0x000000384c600000) libglobus_gsi_sysconfig.so.1 => /usr/lib64/libglobus_gsi_sysconfig.so.1 (0x000000384b600000) libglobus_oldgaa.so.0 => /usr/lib64/libglobus_oldgaa.so.0 (0x000000384d600000) libglobus_gsi_cert_utils.so.0 => /usr/lib64/libglobus_gsi_cert_utils.so.0 (0x000000384be00000) libglobus_openssl.so.0 => /usr/lib64/libglobus_openssl.so.0 (0x000000384ca00000) libglobus_openssl_error.so.0 => /usr/lib64/libglobus_openssl_error.so.0 (0x000000384c200000) libglobus_proxy_ssl.so.1 => /usr/lib64/libglobus_proxy_ssl.so.1 (0x0000003ff2e00000) libglobus_callout.so.0 => /usr/lib64/libglobus_callout.so.0 (0x000000384da00000) libglobus_common.so.0 => /usr/lib64/libglobus_common.so.0 (0x000000384b200000) libltdl.so.3 => /usr/lib64/libltdl.so.3 (0x0000003feda00000) libexpat.so.0 => /lib64/libexpat.so.0 (0x0000003d68200000) libpcre.so.0 => /lib64/libpcre.so.0 (0x0000003ff0200000) libssl.so.6 => /lib64/libssl.so.6 (0x00000031f0c00000) libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003fede00000) libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000003feee00000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003fee600000) libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x0000003fef600000) libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x0000003feea00000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003a2ac00000) libm.so.6 => /lib64/libm.so.6 (0x0000003feae00000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003a2a800000) libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003feb600000) libc.so.6 => /lib64/libc.so.6 (0x0000003feaa00000) /lib64/ld-linux-x86-64.so.2 (0x0000003fea600000) libz.so.1 => /usr/lib64/libz.so.1 (0x0000003feba00000) libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00000031ef400000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003fee200000) libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003fece00000) libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003fec200000) libsepol.so.1 => /lib64/libsepol.so.1 (0x0000003fec600000)
Attachment:
smime.p7s
Description: S/MIME cryptographic signature