# This list of files suggests *candidates* of unnecessary compilation. I # don't know for sure that they aren't used after compilation, but I suspect # so given my build.log and this rather innefficient shell/perl script combo. $ cat get_files_of_interest.pl #!/usr/bin/env perl use strict; use warnings; while ( ) { # store each input line into $_ >--if ( s/.* -o (\S+).*/$1/ ) { # if a substition made, then >-->--# $_ was a compile line with "-o ...." in it. i.e. >-->--# we're looking for the object file lines >-->--# Now, only print the line if the output of above was >-->--# at least two directories deep. i.e. if it at least >-->--# has a form like dir/dir/file.so or dir/dir/file.o >-->--# this will not match lines like "-o dir/file.o" or >-->--# "-o file.o" >-->--print if s|.*/(\w+/\w+/\w+\.s?o)|$1|; >--} } $ for i in $(./get_files_of_interest.pl < build.log | sort -u); do COUNT=$(\grep -c "$i" build.log) [[ "1" == "$COUNT" ]] && find . -path "*/$i" done | sort > unused_object_files.txt Begin files: ======================================== ./bean/unxlngx6/slo/officebean_version.o ./bridges/unxlngx6/slo/java_uno_version.o ./connectivity/unxlngx6/slo/hsqldb_version.o ./connectivity/unxlngx6/slo/mozab_dflt_version.o ./connectivity/unxlngx6/slo/mozabdrv_dflt_version.o ./desktop/unxlngx6/obj/copyright_ascii_ooo.o ./desktop/unxlngx6/obj/copyright_ascii_sun.o ./desktop/unxlngx6/slo/dp_activepackages.o ./desktop/unxlngx6/slo/dp_commandenvironments.o ./desktop/unxlngx6/slo/dp_configurationbackenddb.o ./desktop/unxlngx6/slo/dp_configuration.o ./desktop/unxlngx6/slo/dp_executablebackenddb.o ./desktop/unxlngx6/slo/dp_executable.o ./desktop/unxlngx6/slo/dp_extbackenddb.o ./desktop/unxlngx6/slo/dp_extensionmanager.o ./desktop/unxlngx6/slo/dp_informationprovider.o ./desktop/unxlngx6/slo/dp_managerfac.o ./desktop/unxlngx6/slo/dp_manager.o ./desktop/unxlngx6/slo/dp_package.o ./desktop/unxlngx6/slo/dp_properties.o ./javaunohelper/unxlngx6/slo/juh_version.o ./javaunohelper/unxlngx6/slo/juhx_version.o ./jurt/unxlngx6/slo/jpipe_version.o ./sal/unxlngx6/obj/alloc_arena.o ./sal/unxlngx6/obj/alloc_cache.o ./sal/unxlngx6/obj/alloc_fini.o ./sal/unxlngx6/obj/alloc_global.o ./sal/unxlngx6/obj/bootstrap.o ./sal/unxlngx6/obj/byteseq.o ./sal/unxlngx6/obj/cipher.o ./sal/unxlngx6/obj/cmdargs.o ./sal/unxlngx6/obj/conditn.o ./sal/unxlngx6/obj/context.o ./sal/unxlngx6/obj/convertbig5hkscs.o ./sal/unxlngx6/obj/converter.o ./sal/unxlngx6/obj/converteuctw.o ./sal/unxlngx6/obj/convertgb18030.o ./sal/unxlngx6/obj/convertiso2022cn.o ./sal/unxlngx6/obj/convertiso2022jp.o ./sal/unxlngx6/obj/convertiso2022kr.o ./sal/unxlngx6/obj/convertsinglebytetobmpunicode.o ./sal/unxlngx6/obj/crc.o ./sal/unxlngx6/obj/debugbase.o ./sal/unxlngx6/obj/diagnose.o ./sal/unxlngx6/obj/digest.o ./sal/unxlngx6/obj/file_error_transl.o ./sal/unxlngx6/obj/file_misc.o ./sal/unxlngx6/obj/file_path_helper.o ./sal/unxlngx6/obj/filepath.o ./sal/unxlngx6/obj/file_stat.o ./sal/unxlngx6/obj/file_url.o ./sal/unxlngx6/obj/file_volume.o ./sal/unxlngx6/obj/hash.o ./sal/unxlngx6/obj/interlck.o ./sal/unxlngx6/obj/loadmodulerelative.o ./sal/unxlngx6/obj/locale.o ./sal/unxlngx6/obj/logfile.o ./sal/unxlngx6/obj/math.o ./sal/unxlngx6/obj/memory.o ./sal/unxlngx6/obj/module.o ./sal/unxlngx6/obj/mutex.o ./sal/unxlngx6/obj/nlsupport.o ./sal/unxlngx6/obj/pipe.o ./sal/unxlngx6/obj/printtrace.o ./sal/unxlngx6/obj/process_impl.o ./sal/unxlngx6/obj/process.o ./sal/unxlngx6/obj/profile.o ./sal/unxlngx6/obj/random.o ./sal/unxlngx6/obj/readwrite_helper.o ./sal/unxlngx6/obj/rtl_process.o ./sal/unxlngx6/obj/salinit.o ./sal/unxlngx6/obj/security.o ./sal/unxlngx6/obj/semaphor.o ./sal/unxlngx6/obj/signal.o ./sal/unxlngx6/obj/socket.o ./sal/unxlngx6/obj/strbuf.o ./sal/unxlngx6/obj/strimp.o ./sal/unxlngx6/obj/string.o ./sal/unxlngx6/obj/system.o ./sal/unxlngx6/obj/tables.o ./sal/unxlngx6/obj/tcvtbyte.o ./sal/unxlngx6/obj/tcvtmb.o ./sal/unxlngx6/obj/tcvtutf7.o ./sal/unxlngx6/obj/tcvtutf8.o ./sal/unxlngx6/obj/tempfile.o ./sal/unxlngx6/obj/tenchelp.o ./sal/unxlngx6/obj/tencinfo.o ./sal/unxlngx6/obj/textcvt.o ./sal/unxlngx6/obj/textenc.o ./sal/unxlngx6/obj/thread.o ./sal/unxlngx6/obj/time.o ./sal/unxlngx6/obj/tres.o ./sal/unxlngx6/obj/unichars.o ./sal/unxlngx6/obj/unload.o ./sal/unxlngx6/obj/uri.o ./sal/unxlngx6/obj/ustrbuf.o ./sal/unxlngx6/obj/ustring.o ./sal/unxlngx6/obj/utility.o ./sal/unxlngx6/obj/util.o ./sal/unxlngx6/obj/uuid.o ./sal/unxlngx6/obj/uunxapi.o ./setup_native/unxlngx6/slo/ulfconv.o ./soltools/unxlngx6/obj/gen_info.o ./soltools/unxlngx6/obj/gi_list.o ./soltools/unxlngx6/obj/gi_parse.o ./soltools/unxlngx6/obj/simstr.o ./soltools/unxlngx6/obj/st_gilrw.o ./soltools/unxlngx6/slo/gen_info.o ./soltools/unxlngx6/slo/gi_list.o ./soltools/unxlngx6/slo/gi_parse.o ./soltools/unxlngx6/slo/simstr.o ./soltools/unxlngx6/slo/st_gilrw.o