diff --git a/include/slibtool/slibtool.h b/include/slibtool/slibtool.h
index ed05880..5cb60c6 100644
--- a/include/slibtool/slibtool.h
+++ b/include/slibtool/slibtool.h
@@ -48,6 +48,12 @@ enum slbt_mode {
 	SLBT_MODE_UNINSTALL,
 };
 
+enum slbt_tag {
+	SLBT_TAG_UNKNOWN,
+	SLBT_TAG_CC,
+	SLBT_TAG_CXX,
+};
+
 /* unit action flags */
 
 struct slbt_input {
@@ -60,6 +66,7 @@ struct slbt_common_ctx {
 	uint64_t			actflags;
 	uint64_t			fmtflags;
 	enum slbt_mode			mode;
+	enum slbt_tag			tag;
 };
 
 struct slbt_driver_ctx {
diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c
index 3eb7231..8d586cd 100644
--- a/src/driver/slbt_driver_ctx.c
+++ b/src/driver/slbt_driver_ctx.c
@@ -154,6 +154,14 @@ int slbt_get_driver_ctx(
 				case TAG_DRY_RUN:
 					cctx.drvflags |= SLBT_DRIVER_DRY_RUN;
 					break;
+
+				case TAG_TAG:
+					if (!strcmp("CC",entry->arg))
+						cctx.tag = SLBT_TAG_CC;
+
+					else if (!strcmp("CXX",entry->arg))
+						cctx.tag = SLBT_TAG_CXX;
+					break;
 			}
 		} else
 			nunits++;