[coreboot] [PATCH] Build warnings

Myles Watson mylesgw at gmail.com
Mon May 4 20:51:43 CEST 2009


This patch removes these warnings:
Makefile:435: warning: overriding commands for target `src/lib/memset.o'

And replaces these debug messages:
partobj dir 0 parent <__main__.partobj instance at 0x7f1e846a7ab8>
part pci_domain
with:
partobj dir 0 parent northbridge_amd_amdk8_root_complex_dev2 part pci_domain

The warnings come about because some object files are used INITOBJECTS
and OBJECTS.  They get written to the makefile twice.  I factored out
a function that writes the rules, then only write out the rules that
haven't been written.

The debugging messages is personal taste, so if someone really objects
I'll leave that part out.

Abuild tested.  The makefiles are identical except for the missing duplicates.

Signed-off-by: Myles Watson <mylesgw at gmail.com>

Thanks,
Myles
-------------- next part --------------
Index: svn/util/newconfig/config.g
===================================================================
--- svn.orig/util/newconfig/config.g
+++ svn/util/newconfig/config.g
@@ -323,6 +323,22 @@ class romimage:
 			return
 		fatal("No such rule \"%s\" for addmakedepend" % id)
 
+	def addmakeobject(self, file, obj):
+		source = topify(obj[1])
+		type = obj[2]
+		if (type  == 'S'):
+			# for .S, .o depends on .s
+			file.write("%s: %s.s\n" % (obj[0], obj[3]))
+        		file.write("\t$(CC) -c $(CPU_OPT) -o $@ $<\n")
+			# and .s depends on .S
+			file.write("%s.s: %s\n" % (obj[3], source))
+			# Note: next 2 lines are ONE output line!
+        		file.write("\t$(CPP) $(CPPFLAGS) $< ")
+			file.write(">$@.new && mv $@.new $@\n")
+		else:
+			file.write("%s: %s\n" % (obj[0], source))
+			file.write("\t$(CC) -c $(CFLAGS) -o $@ $<\n")
+
 	# this is called with an an object name. 
 	# the easiest thing to do is add this object to the current 
 	# component.
@@ -608,8 +624,12 @@ class option_value:
 class partobj:
 	"""A configuration part"""
 	def __init__ (self, image, dir, parent, part, type_name, instance_name, chip_or_device):
-		debug.info(debug.object, "partobj dir %s parent %s part %s" \
-				% (dir, parent, part))
+		if (parent):
+			debug.info(debug.object, "partobj dir %s parent %s part %s" \
+				% (dir, parent.instance_name, part))
+		else:
+			debug.info(debug.object, "partobj dir %s part %s" \
+				% (dir, part))
 
 		# romimage that is configuring this part
 		self.image = image
@@ -2166,38 +2186,15 @@ def writeimagemakefile(image):
 
 	file.write("\n# initobjectrules:\n")
 	for irule, init in image.getinitobjectrules().items():
-		source = topify(init[1])
-		type = init[2]
-		if (type  == 'S'):
-			# for .S, .o depends on .s
-			file.write("%s: %s.s\n" % (init[0], init[3]))
-        		file.write("\t$(CC) -c $(CPU_OPT) -o $@ $<\n")
-			# and .s depends on .S
-			file.write("%s.s: %s\n" % (init[3], source))
-			# Note: next 2 lines are ONE output line!
-        		file.write("\t$(CPP) $(CPPFLAGS) $< ")
-			file.write(">$@.new && mv $@.new $@\n")
-		else:
-			file.write("%s: %s\n" % (init[0], source))
-			file.write("\t$(CC) -c $(CFLAGS) -o $@ $<\n")
+		image.addmakeobject(file, init);
 
-	file.write("\n# objectrules:\n")
+	file.write("\n# objectrules (don't duplicate initobjects):\n")
 	for objrule, obj in image.getobjectrules().items():
-		source = topify(obj[1])
-		type = obj[2]
-		if (type  == 'S'):
-			# for .S, .o depends on .s
-			file.write("%s: %s.s\n" % (obj[0], obj[3]))
-        		file.write("\t$(CC) -c $(CPU_OPT) -o $@ $<\n")
-			# and .s depends on .S
-			file.write("%s.s: %s\n" % (obj[3], source))
-			# Note: next 2 lines are ONE output line!
-        		file.write("\t$(CPP) $(CPPFLAGS) $< ")
-			file.write(">$@.new && mv $@.new $@\n")
+
+		if (getdict(image.getinitobjectrules(), obj[3])):
+			debug.info(debug.object, "skipping %s" % (obj[3]))
 		else:
-			file.write("%s: %s\n" % (obj[0], source))
-			file.write("\t$(CC) -c $(CFLAGS) -o $@ $<\n")
-		#file.write("%s\n" % objrule[2])
+			image.addmakeobject(file, obj);
 
 	for driverrule, driver in image.getdriverrules().items():
 		source = topify(driver[1])
@@ -2207,20 +2204,7 @@ def writeimagemakefile(image):
 
 	file.write("\n# smmobjectrules:\n")
 	for irule, smm in image.getsmmobjectrules().items():
-		source = topify(smm[1])
-		type = smm[2]
-		if (type  == 'S'):
-			# for .S, .o depends on .s
-			file.write("%s: %s.s\n" % (smm[0], smm[3]))
-        		file.write("\t$(CC) -c $(CPU_OPT) -o $@ $<\n")
-			# and .s depends on .S
-			file.write("%s.s: %s\n" % (smm[3], source))
-			# Note: next 2 lines are ONE output line!
-        		file.write("\t$(CPP) $(CPPFLAGS) $< ")
-			file.write(">$@.new && mv $@.new $@\n")
-		else:
-			file.write("%s: %s\n" % (smm[0], source))
-			file.write("\t$(CC) -c $(CFLAGS) -o $@ $<\n")
+		image.addmakeobject(file, smm);
 
 	# special rule for chip_target.c
 	file.write("static.o: static.c\n")


More information about the coreboot mailing list