summaryrefslogtreecommitdiffstats
path: root/src/build/tools/addimgid
diff options
context:
space:
mode:
Diffstat (limited to 'src/build/tools/addimgid')
-rwxr-xr-xsrc/build/tools/addimgid27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/build/tools/addimgid b/src/build/tools/addimgid
new file mode 100755
index 000000000..ab2bdd04a
--- /dev/null
+++ b/src/build/tools/addimgid
@@ -0,0 +1,27 @@
+#!/usr/bin/perl
+
+use strict;
+
+my $imageIdSym = "hbi_ImageId";
+
+my $img = shift;
+my $src = shift;
+
+my $imgBase = $img;
+$imgBase =~ s/.*\///;
+
+my $address = hex `ppc64-mcp6-nm $src -C | grep $imageIdSym | colrm 17`;
+my $imageId = `git describe --dirty || echo Unknown-Image \`git rev-parse --short HEAD\``;
+
+chomp $imageId;
+$imageId = $imageId."/".$imgBase;
+
+if (($imageId =~ m/Unknown-Image/) || # Couldn't find git describe tag.
+ ($imageId =~ m/dirty/) || # Find 'dirty' commit.
+ ($imageId =~ m/^.{15}-[1-9]+/)) # Found commits after a tag.
+{
+ $imageId = $imageId."/".$ENV{"USER"};
+}
+
+system("echo -n $imageId | dd of=$img conv=notrunc bs=1 seek=$address count=127");
+exit $?
OpenPOWER on IntegriCloud