unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#55846: make bootstrap -j2 fails on macOS
@ 2022-06-08 10:41 Mattias Engdegård
  2022-06-08 10:52 ` Mattias Engdegård
  0 siblings, 1 reply; 6+ messages in thread
From: Mattias Engdegård @ 2022-06-08 10:41 UTC (permalink / raw)
  To: 55846

nextstep/Makefile.in has the rule

${ns_check_file} ${ns_appdir}: ${srcdir}/${ns_appsrc} ${ns_appsrc}
	rm -rf ${ns_appdir}
	${MKDIR_P} ${ns_appdir}
	( cd ${srcdir}/${ns_appsrc} ; tar cfh - . ) | \
	  ( cd ${ns_appdir} ; umask 022; tar xf - )
	[ "`cd ${srcdir} && /bin/pwd`" = "`/bin/pwd`" ] || \
	  ( cd ${ns_appsrc} ; tar cfh - . ) | \
	    ( cd ${ns_appdir} ; umask 022; tar xf - )
	touch ${ns_appdir}

but because of its dual targets, ns_check_file and ns_appdir, it is unsafe to use in parallel builds and seems in fact often to be invoked twice at the same time, which leads to general confusion and eventual build failure.






^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#55846: make bootstrap -j2 fails on macOS
  2022-06-08 10:41 bug#55846: make bootstrap -j2 fails on macOS Mattias Engdegård
@ 2022-06-08 10:52 ` Mattias Engdegård
  2022-06-09 13:29   ` Lars Ingebrigtsen
  0 siblings, 1 reply; 6+ messages in thread
From: Mattias Engdegård @ 2022-06-08 10:52 UTC (permalink / raw)
  To: 55846; +Cc: Po Lu, Alan Third, Jan Djärv

I have no idea what the intention was, but it's slightly confusing that the originating commit (de3d0b572d) was ostensibly made to cope with make parallelism. (CC:ing the author, Jan Djärv, in case he still remembers anything.)

Just making one target depend on the other, as in the diff below, makes it work, but I'm not sure of the purpose of ns_check_file.

--- a/nextstep/Makefile.in
+++ b/nextstep/Makefile.in
@@ -47,7 +47,9 @@ .PHONY:
 
 all: ${ns_appdir} ${ns_appbindir}/Emacs ${ns_applibexecdir}/Emacs.pdmp
 
-${ns_check_file} ${ns_appdir}: ${srcdir}/${ns_appsrc} ${ns_appsrc}
+${ns_check_file}: ${ns_appdir}
+
+${ns_appdir}: ${srcdir}/${ns_appsrc} ${ns_appsrc}
        rm -rf ${ns_appdir}
        ${MKDIR_P} ${ns_appdir}
        ( cd ${srcdir}/${ns_appsrc} ; tar cfh - . ) | \






^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#55846: make bootstrap -j2 fails on macOS
  2022-06-08 10:52 ` Mattias Engdegård
@ 2022-06-09 13:29   ` Lars Ingebrigtsen
  2022-06-09 13:45     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 6+ messages in thread
From: Lars Ingebrigtsen @ 2022-06-09 13:29 UTC (permalink / raw)
  To: Mattias Engdegård
  Cc: Po Lu, Alan Third, 55846, Joakim Verona, Jan Djärv

Mattias Engdegård <mattiase@acm.org> writes:

> Just making one target depend on the other, as in the diff below,
> makes it work, but I'm not sure of the purpose of ns_check_file.

Let's see...

if test "$HAVE_NS" = "yes"; then
  if test "$NS_IMPL_GNUSTEP" = yes; then
    AC_CONFIG_FILES([nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist:nextstep/templates/Info-gnustep.plist.in \
      nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop:nextstep/templates/Emacs.desktop.in])
    ns_check_file=Resources/Info-gnustep.plist
  else
    AC_CONFIG_FILES([nextstep/Cocoa/Emacs.base/Contents/Info.plist:nextstep/templates/Info.plist.in \
      nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings:nextstep/templates/InfoPlist.strings.in])
    ns_check_file=Contents/Info.plist
  fi
  AC_SUBST(ns_check_file)
fi

Uhm...  OK, still not sure.  Seems like this was added by

commit 63dae8e97d343fd4ebfe3dc08f0e8dc932630a4c
Author:     Joakim Verona <joakim@verona.se>
AuthorDate: Tue Sep 10 23:52:26 2013 +0200

but the commit is just "merge upstream".  I've added Joakim to the CCs;
perhaps he remembers.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#55846: make bootstrap -j2 fails on macOS
  2022-06-09 13:29   ` Lars Ingebrigtsen
@ 2022-06-09 13:45     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-06-09 14:26       ` Mattias Engdegård
  2022-06-10  8:35       ` Mattias Engdegård
  0 siblings, 2 replies; 6+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-06-09 13:45 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: Mattias Engdegård, Alan Third, 55846, Joakim Verona,
	Jan Djärv

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Mattias Engdegård <mattiase@acm.org> writes:
>
>> Just making one target depend on the other, as in the diff below,
>> makes it work, but I'm not sure of the purpose of ns_check_file.
>
> Let's see...
>
> if test "$HAVE_NS" = "yes"; then
>   if test "$NS_IMPL_GNUSTEP" = yes; then
>     AC_CONFIG_FILES([nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist:nextstep/templates/Info-gnustep.plist.in \
>       nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop:nextstep/templates/Emacs.desktop.in])
>     ns_check_file=Resources/Info-gnustep.plist
>   else
>     AC_CONFIG_FILES([nextstep/Cocoa/Emacs.base/Contents/Info.plist:nextstep/templates/Info.plist.in \
>       nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings:nextstep/templates/InfoPlist.strings.in])
>     ns_check_file=Contents/Info.plist
>   fi
>   AC_SUBST(ns_check_file)
> fi
>
> Uhm...  OK, still not sure.  Seems like this was added by
>
> commit 63dae8e97d343fd4ebfe3dc08f0e8dc932630a4c
> Author:     Joakim Verona <joakim@verona.se>
> AuthorDate: Tue Sep 10 23:52:26 2013 +0200
>
> but the commit is just "merge upstream".  I've added Joakim to the CCs;
> perhaps he remembers.

AFAICT ns_check_file is some kind of "bundle metadata" file used by
Nextstep that has to be generated from a template
(Info-gnustep.plist.in).  They are similar to .desktop files on
GNU/Linux.

Creating it depends on ns_appdir being created, since that's where it
resides.  The current rule is a mistake.  It should depend on ns_appdir.

Further more I might just be sleepy, but I can't see what is actually
creating Info-gnustep.plist in the ns_check_file and ns_appdir rule.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#55846: make bootstrap -j2 fails on macOS
  2022-06-09 13:45     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-06-09 14:26       ` Mattias Engdegård
  2022-06-10  8:35       ` Mattias Engdegård
  1 sibling, 0 replies; 6+ messages in thread
From: Mattias Engdegård @ 2022-06-09 14:26 UTC (permalink / raw)
  To: Po Lu; +Cc: Joakim Verona, Lars Ingebrigtsen, 55846, Alan Third,
	Jan Djärv

9 juni 2022 kl. 15.45 skrev Po Lu <luangruo@yahoo.com>:

> Further more I might just be sleepy, but I can't see what is actually
> creating Info-gnustep.plist in the ns_check_file and ns_appdir rule.

Isn't that file created by configure from a template (nextstep/templates/Info-gnustep.plist.in)? The rule then just copies the whole subtree.






^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#55846: make bootstrap -j2 fails on macOS
  2022-06-09 13:45     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-06-09 14:26       ` Mattias Engdegård
@ 2022-06-10  8:35       ` Mattias Engdegård
  1 sibling, 0 replies; 6+ messages in thread
From: Mattias Engdegård @ 2022-06-10  8:35 UTC (permalink / raw)
  To: 55846-done; +Cc: Po Lu, Lars Ingebrigtsen, Alan Third, Joakim Verona

I'm applying the first patch since it solves my problem without any apparent adverse effects. If anyone has a better idea, feel free to modify.






^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-06-10  8:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-08 10:41 bug#55846: make bootstrap -j2 fails on macOS Mattias Engdegård
2022-06-08 10:52 ` Mattias Engdegård
2022-06-09 13:29   ` Lars Ingebrigtsen
2022-06-09 13:45     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-06-09 14:26       ` Mattias Engdegård
2022-06-10  8:35       ` Mattias Engdegård

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).