Re: [PATCH] build: get rid of the notion of a git library
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- Jun 9, 2013, 17:13 UTC
- Message-ID
- <CAMP44s1PENiKMy03_mgZ_myiGP5+qpaE2bvo0LN3X3mZhSvT2g@mail.gmail.com>
- In-Reply-To
- <CALkWK0k=39-Cq3vNdrpLPTWa0wgkqLM=7c=cAmL0nvx0MT5mkA@mail.gmail.com>
On Sun, Jun 9, 2013 at 12:03 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote:
Show 15 quoted lines
> 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