-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Makefile balloons to huge size with seemingly infinite repetition on some Linux systems #9843
Comments
I've seen this happen as well but I've not figured out why or what causes it... |
It's automake that generates the file, so it's probably an issue with it.
|
Though this may not be a curl bug it would still be nice to know what causes it if you are able to bisect it. |
I cloned curl repository and I can't repro the size problem after running configure with the options that LibreOffice uses. Makefile size is 68 KiB.
|
@ilmari-lauhakangas using which automake version? |
automake is 1.16.5 |
The 7.86.0 tarballs were made with 1.16.5 too, more specifically the |
Sorry, this is not true: I was looking at the wrong Makefile! lib/Makefile does grow to 13.2 MiB. |
The 628 number is curious. It seems to be the number of lib source files times two!
|
I tried running autoreconf and configure for a bunch of older tags, down to 7.32.0 or 70812c2. The size of the Makefile kept getting smaller, but is still 6.6 MiB at 7.32.0, with the repetition number being 448. |
Right, because this is probably because of automake. If you would downgrade that, you could potentially figure out which version that introduced this behavior. |
I have a local automake build set up now per https://git.savannah.gnu.org/cgit/automake.git/tree/HACKING Curl doesn't seem to have any env var for aclocal, though, so if I do
I get
Any ideas? |
A broken aclocal install? |
No, I mean I want to point to the built aclocal in automake/bin. Should I hardcode the path in curl source or what do you propose? |
Where/how would such a "hardcode" be done? I don't see the curl source use aclocal anywhere.. |
Yeah, I was getting ahead of myself setting that ACLOCAL var. Anyway, here's what I get without it:
Any ideas? |
Update: I got help from a colleague and realised that I had not done make install. So for latest automake the steps are
and in curl
I have now built automake 1.15 with
and I don't see the size issue! Will look into bisecting next (I have plenty of experience in that). |
git bisect points to this as the bad commit: https://git.savannah.gnu.org/cgit/automake.git/commit/?id=08849db866b44510f6b8fd49e313c91a43a3dfd3
I checked with the preceding commit and it is without the problem. Should I report it to automake or do you want to look into it/comment first? |
Awesome work. Go on and report it, I don't know what more to do with this! |
@ilmari-lauhakangas submitted it to the automake project: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59288 |
Because automake used to delete depdirs at once (.deps) and there was an issue with portability, curl's XC_AMEND_DISTCLEAN greps the Makefiles in an attempt to build a list of all depfiles and delete them individually instead. Since commit 08849db866b44510f6b8fd49e313c91a43a3dfd3, automake switched from deleting directories to individual files. curl's custom logic now finds a lot more results with the grep (the filtering of these results isn't great), which causes a massive bloating of the Makefile in the order of O(n^2). Also remove now-unused XC_AMEND_DISTCLEAN macro group References: curl#9843 References: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59288 Reported-by: Ilmari Lauhakangas Fixes curl#9843 Closes curl#10661
We use curl in LibreOffice development. Recently, a new contributor building LibreOffice on Debian 11 noticed that curl's Makefile in LibreOffice's workdir took 1.5 terabytes of space. This was observed with curl 7.85.0 and persists with 7.86.0.
While I don't see this infinite ballooning myself, my Makefile does get unusually large, 13.2 MiB. I am pasting below the result of printing duplicate lines with counts. This is on Arch Linux.
The text was updated successfully, but these errors were encountered: