From: Felipe Contreras Date: Sun, 09 Jun 2013 17:13:41 GMT Subject: Re: [PATCH] build: get rid of the notion of a git library Message-ID: In-Reply-To: On Sun, Jun 9, 2013 at 12:03 PM, Ramkumar Ramachandra wrote: > John Keeping wrote: >> Calling across from one builtin/*.c file to another is just as wrong as >> calling into a builtin/*.c file from a top-level file but the build >> system happens not to enforce the former. > > So libgit.a is a collection of everything that is shared between > builtins? Does that correspond to reality? > > $ ls *.h | sed 's/.h$/.c/' | xargs file > > An example violation: builtin/log.c uses functions defined in > builtin/shortlog.c. > > What is the point of all this separation, if no external scripts are > ever going to use libgit.a? And all the functions should be static, which doesn't seem to be the case: 00000000000003c0 T add_files_to_cache 0000000000000530 T interactive_add 0000000000000410 T run_add_interactive 0000000000001920 T textconv_object 00000000000005b0 T fmt_merge_msg 0000000000000090 T fmt_merge_msg_config 0000000000000c00 T init_db 0000000000000b40 T set_git_dir_init 0000000000000360 T overlay_tree_on_cache 0000000000000500 T report_path_error 00000000000011a0 T copy_note_for_rewrite 0000000000001210 T finish_copy_notes_for_rewrite 0000000000001060 T init_copy_notes_for_rewrite 0000000000000000 T prune_packed_objects 0000000000000510 T shortlog_add_commit 00000000000006b0 T shortlog_init 0000000000000780 T shortlog_output 0000000000000000 T stripspace -- Felipe Contreras