git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/9] Add missing includes and forward declares

From
Elijah Newren <newren@gmail.com>
Date
Aug 11, 2018, 08:59 UTC
Message-ID
<CABPp-BEADR15gOrH+GBQxKLZR2fCQwhaPWgf3VS--Z0bTNP0rA@mail.gmail.com>
In-Reply-To
<87mutts3sz.fsf@evledraar.gmail.com>
On Sat, Aug 11, 2018 at 1:30 AM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote
Show 18 quoted lines
> On Sat, Aug 11 2018, Elijah Newren wrote:
>
> [CC'd sha1dc maintainers, for context the relevent patch is
> https://public-inbox.org/git/20180811043218.31456-8-newren@gmail.com/T/#u]
>
> >   * Patches 6-8: These patches might need to be submitted to separate
> >     projects elsewhere.  Let me know if so.
>
> Yes, for sha1dc (your 7/9) it's much better if we submit patches to
> upstream and then submit a patch to git.git to update from upstream, as
> my 23e37f8e9d ("sha1dc: update from upstream", 2018-08-02) sitting in
> 'next' does.
>
> When we build that library we define SHA1DC_NO_STANDARD_INCLUDES, so we
> don't use the codepath you patched, so your description of "I was bit
> yet again by compilation errors[...]" doesn't add up in that case. I
> assume you just started adding stdlib.h where you could grep for
> stdint.h.

The part of my story you snipped in the ellipsis is kind of important, though: "...and decided to determine which header files were missing their own necessary #include's and forward declarations." The way I did so was making a simple one-line .c file that included exactly one header, and checked to see if I could compile it (without any special defines), fixed it up as necessary, then repeated that process for every toplevel header.

Most of the stdlib.h additions were for the definition of size_t, sha1dc/sha1.h was no different; without my patch:

In file included from nukeme.c:1:0:
sha1dc/sha1.h:96:43: error: unknown type name ‘size_t’
 void SHA1DCUpdate(SHA1_CTX*, const char*, size_t);

Your point that we use SHA1DC_NO_STANDARD_INCLUDES normally when compiling within git, though, does mean my patch #7 is kind of useless to git.

> When I check out sha1collisiondetection.git stand-alone (which will use
> that path) and compile it, it works fine for me. This is on GCC 8.1.0 on
> Debian, so perhaps that patch isn't needed in that case.

I never said git or its subprojects failed to compile. I said when I added another #include of some header to some existing or new files, I sometimes saw unknown symbol errors. It's happened before, it happened again today, and I got annoyed, so I set out to address it. Sorry if that wasn't clear.

Previous: Ævar Arnfjörð BjarmasonNext: Jeff King
Message 13 of 49 in “Add missing includes and forward declares”
  1. 0/9 Add missing includes and forward declaresElijah Newren, Aug 11, 2018
  2. 5/9 compat/precompose_utf8.h: use more common include guard styleElijah Newren, Aug 11, 2018
  3. 3/9 Move definition of enum branch_track from cache.h to branch.hElijah Newren, Aug 11, 2018
  4. 9/9 Add missing includes and forward declaresElijah Newren, Aug 11, 2018
  5. 1/9 Add missing includes and forward declaresElijah Newren, Aug 11, 2018
  6. Jeff KingAug 11, 2018
  7. 4/9 urlmatch.h: fix include guardElijah Newren, Aug 11, 2018
  8. 2/9 alloc: make allocate_alloc_state and clear_alloc_state more consistentElijah Newren, Aug 11, 2018
  9. 6/9 ewah/ewok.h: add missing includeElijah Newren, Aug 11, 2018
  10. 8/9 xdiff/xdiff.h: add missing includeElijah Newren, Aug 11, 2018
  11. 7/9 sha1dc/sha1.h: add missing includeElijah Newren, Aug 11, 2018
  12. Ævar Arnfjörð BjarmasonAug 11, 2018
  13. Elijah NewrenAug 11, 2018
  14. Jeff KingAug 11, 2018
  15. Junio C HamanoAug 13, 2018
  16. Elijah NewrenAug 14, 2018
  17. Junio C HamanoAug 15, 2018
  18. Elijah NewrenAug 15, 2018
  19. Junio C HamanoAug 15, 2018
  20. Elijah NewrenAug 15, 2018
  21. Junio C HamanoAug 15, 2018
  22. Jeff KingAug 15, 2018
  23. Jonathan NiederAug 15, 2018
  24. Jonathan NiederAug 15, 2018
  25. 0/6 Add missing includes and forward declaresElijah Newren, Aug 11, 2018
  26. 6/6 Add missing includes and forward declaresElijah Newren, Aug 11, 2018
  27. 2/6 alloc: make allocate_alloc_state and clear_alloc_state more consistentElijah Newren, Aug 11, 2018
  28. 4/6 urlmatch.h: fix include guardElijah Newren, Aug 11, 2018
  29. 3/6 Move definition of enum branch_track from cache.h to branch.hElijah Newren, Aug 11, 2018
  30. Ramsay JonesAug 11, 2018
  31. 1/6 Add missing includes and forward declaresElijah Newren, Aug 11, 2018
  32. 5/6 compat/precompose_utf8.h: use more common include guard styleElijah Newren, Aug 11, 2018
  33. 0/6 Add missing includes and forward declaresElijah Newren, Aug 13, 2018
  34. 4/6 urlmatch.h: fix include guardElijah Newren, Aug 13, 2018
  35. Jonathan NiederAug 15, 2018
  36. 3/6 Move definition of enum branch_track from cache.h to branch.hElijah Newren, Aug 13, 2018
  37. Jonathan NiederAug 15, 2018
  38. 5/6 compat/precompose_utf8.h: use more common include guard styleElijah Newren, Aug 13, 2018
  39. Jonathan NiederAug 15, 2018
  40. 2/6 alloc: make allocate_alloc_state and clear_alloc_state more consistentElijah Newren, Aug 13, 2018
  41. Jonathan NiederAug 15, 2018
  42. 6/6 Add missing includes and forward declaresElijah Newren, Aug 13, 2018
  43. Jonathan NiederAug 15, 2018
  44. 1/6 Add missing includes and forward declaresElijah Newren, Aug 13, 2018
  45. Jonathan NiederAug 15, 2018
  46. Elijah NewrenAug 15, 2018
  47. Jonathan NiederAug 15, 2018
  48. Elijah NewrenAug 15, 2018
  49. Elijah NewrenAug 15, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.