rmodtool: Allow rmodules with 0 relocations

Currently, rmodules with 0 relocations are not allowed. Fix this by skipping
addition of .rmodules section on 0 relocs.

Change-Id: I7a39cf409a5f2bc808967d2b5334a15891c4748e
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: http://review.coreboot.org/6774
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@google.com>
Tested-by: build bot (Jenkins)
diff --git a/util/cbfstool/rmodule.c b/util/cbfstool/rmodule.c
index 95aff54..168d71a 100644
--- a/util/cbfstool/rmodule.c
+++ b/util/cbfstool/rmodule.c
@@ -259,10 +259,8 @@
 
 	nrelocs = ctx->nrelocs;
 	INFO("%d relocations to be emitted.\n", nrelocs);
-	if (!nrelocs) {
-		ERROR("No valid relocations in file.\n");
-		return -1;
-	}
+	if (!nrelocs)
+		return 0;
 
 	/* Reset the counter for indexing into the array. */
 	ctx->nrelocs = 0;
@@ -536,10 +534,13 @@
 		goto out;
 	addr += ctx->phdr->p_filesz;
 
-	ret = add_section(ew, &relocs, ".relocs", addr, buffer_size(&relocs));
-	if (ret < 0)
-		goto out;
-	addr += buffer_size(&relocs);
+	if (ctx->nrelocs) {
+		ret = add_section(ew, &relocs, ".relocs", addr,
+				  buffer_size(&relocs));
+		if (ret < 0)
+			goto out;
+		addr += buffer_size(&relocs);
+	}
 
 	if (total_size != addr) {
 		ret = add_section(ew, NULL, ".empty", addr, total_size - addr);