Skip to content

Makefile balloons to huge size with seemingly infinite repetition on some Linux systems #9843

Closed
@ilmari-lauhakangas

Description

@ilmari-lauhakangas

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.

$ sort workdir/UnpackedTarball/curl/lib/Makefile | uniq -cd
415 
3         }
16 #
2 #                                  _   _ ____  _
2 #                             / __| | | | |_) | |
2 #                             \___|\___/|_| \_\_____|
2 #                            | (__| |_| |  _ <| |___
2 ###########################################################################
2 #***************************************************************************
2         $(am__define_uniq_tagged_files); \
2         $(am__mv) $$depbase.Tpo $$depbase.Po
2 #       $(AM_V_CC)source='$<' object='$@' libtool=no \
2             $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
2           $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
2 # are also available at https://curl.se/docs/copyright.html.
2     case $$flg in \
3         cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
2         cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
2 # copies of the Software, and permit persons to whom the Software is
2 # Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
317 #       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
3         done
2         done; \
2           echo rm -f $${locs}; \
3           else \
2   else \
2         esac; \
3     esac; \
2     false; \
2             fi; \
3           fi; \
3142         fi
2   fi; \
2               find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
2 # furnished to do so, under the terms of the COPYING file.
628         if test $$xm_dep_cnt -eq 0 && test -d ./$(DEPDIR); then \
628         if test $$xm_dep_cnt -eq 0 && test -d vauth/$(DEPDIR); then \
628         if test $$xm_dep_cnt -eq 0 && test -d vquic/$(DEPDIR); then \
628         if test $$xm_dep_cnt -eq 0 && test -d vssh/$(DEPDIR); then \
628         if test $$xm_dep_cnt -eq 0 && test -d vtls/$(DEPDIR); then \
2             install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
2 # KIND, either express or implied.
2         @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
2         locs=`for p in $$list; do echo $$p; done | \
2 #  Project                     ___| | | |  _ \| |
2           rm -f $${locs}; \
628         -rm -f ./$(DEPDIR)/libcurl_la-altsvc.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-amigaos.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-asyn-ares.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-asyn-thread.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-base64.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-bufref.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-c-hyper.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-conncache.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-connect.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-content_encoding.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-cookie.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_addrinfo.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_des.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_endian.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_fnmatch.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_gethostname.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_get_line.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_gssapi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_memrchr.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_multibyte.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_ntlm_core.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_ntlm_wb.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_path.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_range.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_rtmp.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_sasl.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_sspi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-curl_threads.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-dict.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-doh.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-dynbuf.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-easygetopt.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-easyoptions.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-easy.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-escape.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-fileinfo.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-file.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-fopen.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-formdata.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-ftplistparser.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-ftp.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-getenv.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-getinfo.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-gopher.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-h2h3.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-hash.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-headers.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-hmac.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-hostasyn.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-hostip4.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-hostip6.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-hostip.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-hostsyn.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-hsts.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-http2.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-http_aws_sigv4.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-http_chunks.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-http_digest.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-http_negotiate.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-http_ntlm.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-http.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-http_proxy.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-idn_win32.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-if2ip.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-imap.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-inet_ntop.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-inet_pton.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-krb5.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-ldap.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-llist.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-md4.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-md5.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-memdebug.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-mime.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-mprintf.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-mqtt.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-multi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-netrc.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-nonblock.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-noproxy.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-openldap.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-parsedate.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-pingpong.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-pop3.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-progress.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-psl.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-rand.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-rename.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-rtsp.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-select.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-sendf.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-setopt.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-sha256.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-share.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-slist.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-smb.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-smtp.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-socketpair.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-socks_gssapi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-socks.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-socks_sspi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-speedcheck.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-splay.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-strcase.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-strdup.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-strerror.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-strtok.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-strtoofft.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-system_win32.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-telnet.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-tftp.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-timediff.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-timeval.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-transfer.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-urlapi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-url.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-version.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-version_win32.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-warnless.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-wildcard.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurl_la-ws.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-altsvc.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-amigaos.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-asyn-ares.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-asyn-thread.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-base64.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-bufref.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-c-hyper.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-conncache.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-connect.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-content_encoding.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-cookie.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_addrinfo.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_des.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_endian.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_fnmatch.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_gethostname.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_get_line.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_gssapi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_memrchr.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_multibyte.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_ntlm_core.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_ntlm_wb.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_path.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_range.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_rtmp.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_sasl.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_sspi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-curl_threads.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-dict.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-doh.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-dynbuf.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-easygetopt.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-easyoptions.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-easy.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-escape.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-fileinfo.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-file.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-fopen.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-formdata.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-ftplistparser.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-ftp.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-getenv.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-getinfo.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-gopher.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-h2h3.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-hash.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-headers.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-hmac.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-hostasyn.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-hostip4.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-hostip6.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-hostip.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-hostsyn.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-hsts.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-http2.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-http_aws_sigv4.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-http_chunks.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-http_digest.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-http_negotiate.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-http_ntlm.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-http.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-http_proxy.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-idn_win32.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-if2ip.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-imap.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-inet_ntop.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-inet_pton.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-krb5.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-ldap.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-llist.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-md4.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-md5.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-memdebug.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-mime.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-mprintf.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-mqtt.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-multi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-netrc.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-nonblock.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-noproxy.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-openldap.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-parsedate.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-pingpong.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-pop3.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-progress.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-psl.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-rand.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-rename.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-rtsp.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-select.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-sendf.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-setopt.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-sha256.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-share.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-slist.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-smb.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-smtp.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-socketpair.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-socks_gssapi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-socks.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-socks_sspi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-speedcheck.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-splay.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-strcase.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-strdup.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-strerror.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-strtok.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-strtoofft.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-system_win32.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-telnet.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-tftp.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-timediff.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-timeval.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-transfer.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-urlapi.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-url.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-version.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-version_win32.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-warnless.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-wildcard.Plo # am--include-marker
628         -rm -f ./$(DEPDIR)/libcurlu_la-ws.Plo # am--include-marker
2         -rm -f Makefile
628         -rm -f vauth/$(DEPDIR)/libcurl_la-cleartext.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-cram.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-digest.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-digest_sspi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-gsasl.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-krb5_gssapi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-krb5_sspi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-ntlm.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-ntlm_sspi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-oauth2.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-spnego_gssapi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-spnego_sspi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurl_la-vauth.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-cleartext.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-cram.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-digest.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-digest_sspi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-gsasl.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-krb5_gssapi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-krb5_sspi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-ntlm.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-ntlm_sspi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-oauth2.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-spnego_gssapi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-spnego_sspi.Plo # am--include-marker
628         -rm -f vauth/$(DEPDIR)/libcurlu_la-vauth.Plo # am--include-marker
628         -rm -f vquic/$(DEPDIR)/libcurl_la-msh3.Plo # am--include-marker
628         -rm -f vquic/$(DEPDIR)/libcurl_la-ngtcp2.Plo # am--include-marker
628         -rm -f vquic/$(DEPDIR)/libcurl_la-quiche.Plo # am--include-marker
628         -rm -f vquic/$(DEPDIR)/libcurl_la-vquic.Plo # am--include-marker
628         -rm -f vquic/$(DEPDIR)/libcurlu_la-msh3.Plo # am--include-marker
628         -rm -f vquic/$(DEPDIR)/libcurlu_la-ngtcp2.Plo # am--include-marker
628         -rm -f vquic/$(DEPDIR)/libcurlu_la-quiche.Plo # am--include-marker
628         -rm -f vquic/$(DEPDIR)/libcurlu_la-vquic.Plo # am--include-marker
628         -rm -f vssh/$(DEPDIR)/libcurl_la-libssh2.Plo # am--include-marker
628         -rm -f vssh/$(DEPDIR)/libcurl_la-libssh.Plo # am--include-marker
628         -rm -f vssh/$(DEPDIR)/libcurl_la-wolfssh.Plo # am--include-marker
628         -rm -f vssh/$(DEPDIR)/libcurlu_la-libssh2.Plo # am--include-marker
628         -rm -f vssh/$(DEPDIR)/libcurlu_la-libssh.Plo # am--include-marker
628         -rm -f vssh/$(DEPDIR)/libcurlu_la-wolfssh.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-bearssl.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-gskit.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-gtls.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-hostcheck.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-keylog.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-mbedtls.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-mbedtls_threadlock.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-nss.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-openssl.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-rustls.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-schannel.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-schannel_verify.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-sectransp.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-vtls.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-wolfssl.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurl_la-x509asn1.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-bearssl.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-gskit.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-gtls.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-hostcheck.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-keylog.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-mbedtls.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-mbedtls_threadlock.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-nss.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-openssl.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-rustls.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-schannel.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-schannel_verify.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-sectransp.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-vtls.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-wolfssl.Plo # am--include-marker
628         -rm -f vtls/$(DEPDIR)/libcurlu_la-x509asn1.Plo # am--include-marker
628           rm -rf ./$(DEPDIR); \
628           rm -rf vauth/$(DEPDIR); \
628           rm -rf vquic/$(DEPDIR); \
628           rm -rf vssh/$(DEPDIR); \
628           rm -rf vtls/$(DEPDIR); \
2               sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
2               sort -u`; \
2 # SPDX-License-Identifier: curl
2         test -z "$$locs" || { \
2 # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
2 # This software is licensed as described in the file COPYING, which
2     true; \
26         vauth/$(DEPDIR)/$(am__dirstamp)
8         vquic/$(DEPDIR)/$(am__dirstamp)
6         vssh/$(DEPDIR)/$(am__dirstamp)
32         vtls/$(DEPDIR)/$(am__dirstamp)
628         @xm_dep_cnt=`ls ./$(DEPDIR) | wc -l 2>/dev/null`; \
628         @xm_dep_cnt=`ls vauth/$(DEPDIR) | wc -l 2>/dev/null`; \
628         @xm_dep_cnt=`ls vquic/$(DEPDIR) | wc -l 2>/dev/null`; \
628         @xm_dep_cnt=`ls vssh/$(DEPDIR) | wc -l 2>/dev/null`; \
628         @xm_dep_cnt=`ls vtls/$(DEPDIR) | wc -l 2>/dev/null`; \
2 # You may opt to use, copy, modify, merge, publish, distribute and/or sell
2 # you should have received as part of this distribution. The terms

Activity

bagder

bagder commented on Nov 2, 2022

@bagder
Member

I've seen this happen as well but I've not figured out why or what causes it...

dfandrich

dfandrich commented on Nov 2, 2022

@dfandrich
Contributor
jay

jay commented on Nov 3, 2022

@jay
Member

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.

ilmari-lauhakangas

ilmari-lauhakangas commented on Nov 3, 2022

@ilmari-lauhakangas
Author

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.

git checkout cd95ee9f771361acf241629d2fe5507e308082a2 # 7.86.0 release
autoreconf -fi
./configure \
  --without-gnutls --without-mbedtls \
  --enable-ftp --enable-http --enable-ipv6 \
  --without-libidn2 --without-libpsl --without-librtmp \
  --without-libssh2 --without-nghttp2 \
  --without-libssh --without-brotli \
  --without-ngtcp2 --without-quiche \
  --without-zstd --without-hyper --without-libgsasl --without-gssapi \
  --disable-mqtt --disable-ares \
  --disable-dict --disable-file --disable-gopher --disable-imap \
  --disable-ldap --disable-ldaps --disable-manual --disable-pop3 \
  --disable-rtsp --disable-smb --disable-smtp --disable-telnet  \
  --disable-tftp  \
  --with-nss --with-nss-deprecated \
  --with-openssl \
  --without-ca-bundle --without-ca-path
bagder

bagder commented on Nov 3, 2022

@bagder
Member

@ilmari-lauhakangas using which automake version?

ilmari-lauhakangas

ilmari-lauhakangas commented on Nov 3, 2022

@ilmari-lauhakangas
Author

@ilmari-lauhakangas using which automake version?

automake is 1.16.5

bagder

bagder commented on Nov 3, 2022

@bagder
Member

The 7.86.0 tarballs were made with 1.16.5 too, more specifically the 1.16.5-1.3 package in debian (unstable).

ilmari-lauhakangas

ilmari-lauhakangas commented on Nov 3, 2022

@ilmari-lauhakangas
Author

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.

Sorry, this is not true: I was looking at the wrong Makefile! lib/Makefile does grow to 13.2 MiB.

bagder

bagder commented on Nov 3, 2022

@bagder
Member

The 628 number is curious. It seems to be the number of lib source files times two!

$ cd [curl-src]/lib
$ find . -name "*.[ch]" | wc -l
314
ilmari-lauhakangas

ilmari-lauhakangas commented on Nov 3, 2022

@ilmari-lauhakangas
Author

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.

bagder

bagder commented on Nov 3, 2022

@bagder
Member

Right, because this is probably because of automake. If you would downgrade that, you could potentially figure out which version that introduced this behavior.

ilmari-lauhakangas

ilmari-lauhakangas commented on Nov 3, 2022

@ilmari-lauhakangas
Author

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

am=/home/user/automake
env PERL5LIB=$am/lib AUTOMAKE="$am/bin/automake" ACLOCAL="$am/bin/aclocal" autoreconf -fi

I get

aclocal: error: couldn't open directory '/tmp/amdev/share/aclocal-1.16': No such file or directory

Any ideas?

bagder

bagder commented on Nov 14, 2022

@bagder
Member

A broken aclocal install?

ilmari-lauhakangas

ilmari-lauhakangas commented on Nov 14, 2022

@ilmari-lauhakangas
Author

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?

bagder

bagder commented on Nov 14, 2022

@bagder
Member

Where/how would such a "hardcode" be done? I don't see the curl source use aclocal anywhere..

ilmari-lauhakangas

ilmari-lauhakangas commented on Nov 14, 2022

@ilmari-lauhakangas
Author

Yeah, I was getting ahead of myself setting that ACLOCAL var. Anyway, here's what I get without it:

$ env PERL5LIB=$am/lib AUTOMAKE="$am/bin/automake" autoreconf -fi
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: Remember to add 'LT_INIT' to configure.ac.
configure.ac:129: error: version mismatch.  This is Automake 1.16i,
configure.ac:129: but the definition used by this AM_INIT_AUTOMAKE
configure.ac:129: comes from Automake 1.16.5.  You should recreate
configure.ac:129: aclocal.m4 with aclocal and run automake again.
configure.ac:123: error: required file './compile' not found
configure.ac:123: error: required file './install-sh' not found
configure.ac:129: error: required file './missing' not found
automake: error: cannot open < /tmp/amdev/share/automake-1.16/am/header-vars.am: No such file or directory
autoreconf: error: /home/user/automake/bin/automake failed with exit status: 63

Any ideas?

ilmari-lauhakangas

ilmari-lauhakangas commented on Nov 15, 2022

@ilmari-lauhakangas
Author

Update: I got help from a colleague and realised that I had not done make install. So for latest automake the steps are

$ ./bootstrap ./configure --prefix=/tmp/amdev && make && make install

and in curl

$ am=/tmp/amdev
$ env PERL5LIB=$am/lib AUTOMAKE="$am/bin/automake" ACLOCAL="$am/bin/aclocal" autoreconf -fi
$ ./configure \
  --without-gnutls --without-mbedtls \
  --enable-ftp --enable-http --enable-ipv6 \
  --without-libidn2 --without-libpsl --without-librtmp \
  --without-libssh2 --without-nghttp2 \
  --without-libssh --without-brotli \
  --without-ngtcp2 --without-quiche \
  --without-zstd --without-hyper --without-libgsasl --without-gssapi \
  --disable-mqtt --disable-ares \
  --disable-dict --disable-file --disable-gopher --disable-imap \
  --disable-ldap --disable-ldaps --disable-manual --disable-pop3 \
  --disable-rtsp --disable-smb --disable-smtp --disable-telnet  \
  --disable-tftp  \
  --with-nss --with-nss-deprecated \
  --with-openssl \
  --without-ca-bundle --without-ca-path

I have now built automake 1.15 with

$ ./bootstrap.sh && ./configure --prefix=/tmp/amdev && make && make install

and I don't see the size issue! Will look into bisecting next (I have plenty of experience in that).

ilmari-lauhakangas

ilmari-lauhakangas commented on Nov 15, 2022

@ilmari-lauhakangas
Author

git bisect points to this as the bad commit: https://git.savannah.gnu.org/cgit/automake.git/commit/?id=08849db866b44510f6b8fd49e313c91a43a3dfd3

deps: fix corner-case "make distclean" bug

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?

bagder

bagder commented on Nov 15, 2022

@bagder
Member

Awesome work. Go on and report it, I don't know what more to do with this!

bagder

bagder commented on Nov 19, 2022

@bagder
Member
added a commit that references this issue on Jul 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @bagder@dfandrich@jay@ilmari-lauhakangas

        Issue actions

          Makefile balloons to huge size with seemingly infinite repetition on some Linux systems · Issue #9843 · curl/curl