On Sun, Jun 9, 2013 at 12:03 PM, Ramkumar Ramachandra <artagnon@xxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html