Skip to contentSkip to conversation

Fixing volume_id Makefile for parallel make

PATCH In review Matthias Schwarzott 2 participants 2 messages May 3, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fixing volume_id Makefile for parallel make

Hi!

Calling parallel make with ugly options to allow forking real huge number of processes seems to break on machines with more cpus.

CC .shlib/squashfs.o
CC .shlib/vxfs.o
Assembler messages:
FATAL: can't create .shlib/util.o: No such file or directory

  CC       .shlib/ocfs.o
  CC       .shlib/luks.o
  CC       .shlib/gfs.o

Assembler messages:
FATAL: can't create .shlib/netware.o: No such file or directory make[2]: *** [.shlib/util.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [.shlib/netware.o] Error 1

As compiling .shlib/*.o needs the directory .shlib, but it does not state that in makefile:

Only this command list .shlib as dependency:
$(SHLIB): $(HEADERS) .shlib $(addprefix .shlib/,$(OBJS))

But make knows that .shlib/*.o does not depend on .shlib explicitly .shlib/%.o: %.c

changing that to
.shlib/%.o: %.c .shlib
makes it no longer fail on missing directory.

http://bugs.gentoo.org/show_bug.cgi?id=176918

Matthias

Signature · 1 line
Matthias Schwarzott (zzam)
extras/volume_id/lib/Makefile +1 -1
index fafcc52..5618b96 100644
@@ -69,7 +69,7 @@ all: libvolume_id.a $(SHLIB) libvolume_id.pc
 .shlib:
 	$(Q) mkdir .shlib
 
-.shlib/%.o: %.c
+.shlib/%.o: %.c .shlib
 	$(E) "  CC      " $@
 	$(Q) $(CC) -c $(CFLAGS) -fPIC $< -o $@
 

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#1 lore raw
Quoted 23 lines · Matthias Schwarzott

Calling parallel make with ugly options to allow forking real huge number of processes seems to break on machines with more cpus.

CC .shlib/squashfs.o
CC .shlib/vxfs.o
Assembler messages:
FATAL: can't create .shlib/util.o: No such file or directory

  CC       .shlib/ocfs.o
  CC       .shlib/luks.o
  CC       .shlib/gfs.o

Assembler messages:
FATAL: can't create .shlib/netware.o: No such file or directory make[2]: *** [.shlib/util.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [.shlib/netware.o] Error 1

As compiling .shlib/*.o needs the directory .shlib, but it does not state that in makefile:

Only this command list .shlib as dependency:
$(SHLIB): $(HEADERS) .shlib $(addprefix .shlib/,$(OBJS))

Quoted 8 lines

But make knows that .shlib/*.o does not depend on .shlib explicitly .shlib/%.o: %.c

changing that to
.shlib/%.o: %.c .shlib
makes it no longer fail on missing directory.

http://bugs.gentoo.org/show_bug.cgi?id6918

Nice. Applied.

Thanks,
Kay

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel