On 17/07/14 11:25, NeilBrown wrote: > On Thu, 17 Jul 2014 10:30:05 +0300 Samuli Suominen <ssuominen@xxxxxxxxxx> > wrote: > >> If you run with: >> >> $ export MAKEFLAGS="-j9" >> $ make install install-systemd >> >> As in, combine "install" and "install-systemd" in the same command using >> parallel make, >> the content of .service files could end up in .rules, or otherway around >> because GNU >> make fill run them in parallel and the commands might ran at the same >> time, and both >> use same variables $file and same temporary files .install.tmp >> >> This was reported at, >> https://bugs.gentoo.org/show_bug.cgi?id=517218 >> >> The immediate workaround is, >> >> $ export MAKEFLAGS="-j9" >> $ make install >> $ make install-systemd >> >> And the attach patch makes it full proof so they can be ran at the same >> line. >> >> Thanks, >> Samuli > Hi, > thanks for the bug report and the patch! > > I don't think it is necessary to change the name for the variable (file -> > file1, file2 or file3). Just leave it as 'file'. > However changing the name is important. Could you send a patch which just > does that, and I'll apply it. > > Also if the patch could be included inline in the mail, rather than as an > attachment, that would be nice. > > (But if you don't want to bother, I'll make the fix anyway and credit you). > > Thanks, > NeilBrown Thanks for the review, I wasn't 100% sure which I should be changing, the variable, or the filename, so I changed both. So, you are most likely correct. Here is the patch that only changes the filename, --- mdadm-3.3.1.orig/Makefile +++ mdadm-3.3.1/Makefile @@ -282,25 +282,25 @@ install-udev: udev-md-raid-arrays.rules udev-md-raid-assembly.rules @for file in 63-md-raid-arrays.rules 64-md-raid-assembly.rules ; \ - do sed -e 's,BINDIR,$(BINDIR),g' udev-$${file#??-} > .install.tmp && \ + do sed -e 's,BINDIR,$(BINDIR),g' udev-$${file#??-} > .install.tmp.1 && \ echo $(INSTALL) -D -m 644 udev-$${file#??-} $(DESTDIR)$(UDEVDIR)/rules.d/$$file ; \ - $(INSTALL) -D -m 644 .install.tmp $(DESTDIR)$(UDEVDIR)/rules.d/$$file ; \ - rm -f .install.tmp; \ + $(INSTALL) -D -m 644 .install.tmp.1 $(DESTDIR)$(UDEVDIR)/rules.d/$$file ; \ + rm -f .install.tmp.1; \ done install-systemd: systemd/mdmon@.service @for file in mdmon@.service mdmonitor.service mdadm-last-resort@.timer \ mdadm-last-resort@.service ; \ - do sed -e 's,BINDIR,$(BINDIR),g' systemd/$$file > .install.tmp && \ + do sed -e 's,BINDIR,$(BINDIR),g' systemd/$$file > .install.tmp.2 && \ echo $(INSTALL) -D -m 644 systemd/$$file $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \ - $(INSTALL) -D -m 644 .install.tmp $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \ - rm -f .install.tmp; \ + $(INSTALL) -D -m 644 .install.tmp.2 $(DESTDIR)$(SYSTEMD_DIR)/$$file ; \ + rm -f .install.tmp.2; \ done @for file in mdadm.shutdown ; \ - do sed -e 's,BINDIR,$(BINDIR),g' systemd/$$file > .install.tmp && \ + do sed -e 's,BINDIR,$(BINDIR),g' systemd/$$file > .install.tmp.3 && \ echo $(INSTALL) -D -m 755 systemd/$$file $(DESTDIR)$(SYSTEMD_DIR)-shutdown/$$file ; \ - $(INSTALL) -D -m 755 .install.tmp $(DESTDIR)$(SYSTEMD_DIR)-shutdown/$$file ; \ - rm -f .install.tmp; \ + $(INSTALL) -D -m 755 .install.tmp.3 $(DESTDIR)$(SYSTEMD_DIR)-shutdown/$$file ; \ + rm -f .install.tmp.3; \ done if [ -f /etc/SuSE-release -o -n "$(SUSE)" ] ;then $(INSTALL) -D -m 755 systemd/SUSE-mdadm_env.sh $(DESTDIR)$(SYSTEMD_DIR)/../scripts/mdadm_env.sh ;fi -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html