Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Hullo List,

In tracking down another issue, I've run across a number of object files that we appear to build but not use. Example:

g++ -o sal/unxlngx6/obj/bootstrap.o [...]

A few lines later in the build, we build this, with a few extra g++ arguments. This is the version that actually gets used elsewhere in the build:

g++ -o sal/unxlngx6/slo/bootstrap.o [...] \
 -fpic \
 -DSHAREDLIB \
 -D_DLL_

Question: what's the point of building the first one (if any)?

If it's not supposed to be built, I'll leave "fixing" the build system to some other interested party as I'm not particularly keen on diving in when I'm thick into another problem. For reference, based on my build.log and the attached (inefficient) shell script, I believe this list of 112 object files are all good _candidates_ for the "built but unused" category

Thanks,

Kevin
# 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 ( <STDIN> ) {  # 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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.