diff --git a/src/arbits/slbt_archive_dlsyms.c b/src/arbits/slbt_archive_dlsyms.c
index 942de3c..ed07602 100644
--- a/src/arbits/slbt_archive_dlsyms.c
+++ b/src/arbits/slbt_archive_dlsyms.c
@@ -430,7 +430,7 @@ static int slbt_ar_create_dlsyms_impl(
 				return SLBT_NESTED_ERROR(dctx);
 
 		if (!mctx->syminfo)
-			if (slbt_ar_update_syminfo(*actx,ectx) < 0)
+			if (slbt_ar_update_syminfo(*actx) < 0)
 				return SLBT_NESTED_ERROR(dctx);
 	}
 
diff --git a/src/arbits/slbt_archive_syminfo.c b/src/arbits/slbt_archive_syminfo.c
index ee5cc30..a7242a2 100644
--- a/src/arbits/slbt_archive_syminfo.c
+++ b/src/arbits/slbt_archive_syminfo.c
@@ -71,7 +71,6 @@ static void slbt_ar_update_syminfo_child(
 
 static int slbt_obtain_nminfo(
 	struct slbt_archive_ctx_impl *  ictx,
-	struct slbt_exec_ctx *          ectx,
 	const struct slbt_driver_ctx *  dctx,
 	struct slbt_archive_meta_impl * mctx)
 {
@@ -79,6 +78,7 @@ static int slbt_obtain_nminfo(
 	int	fdcwd;
 	pid_t   pid;
 	pid_t   rpid;
+	int     ecode;
 	int     fdout;
 	char ** argv;
 	char    arname [PATH_MAX];
@@ -125,17 +125,15 @@ static int slbt_obtain_nminfo(
 			program,arname,fdout);
 
 	/* parent */
-	ectx->pid = pid;
-
 	rpid = waitpid(
 		pid,
-		&ectx->exitcode,
+		&ecode,
 		0);
 
 	if (rpid < 0) {
 		return SLBT_SYSTEM_ERROR(dctx,0);
 
-	} else if (ectx->exitcode) {
+	} else if (ecode) {
 		return SLBT_CUSTOM_ERROR(
 			dctx,
 			SLBT_ERR_FLOW_ERROR);
@@ -264,8 +262,7 @@ static int slbt_coff_qsort_syminfo_cmp(const void * a, const void * b)
 }
 
 slbt_hidden int slbt_ar_update_syminfo(
-	struct slbt_archive_ctx * actx,
-	struct slbt_exec_ctx *    ectx)
+	struct slbt_archive_ctx * actx)
 {
 	const struct slbt_driver_ctx *  dctx;
 	struct slbt_archive_ctx_impl *  ictx;
@@ -280,7 +277,7 @@ slbt_hidden int slbt_ar_update_syminfo(
 
 	/* nm -P -A -g */
 	if (mctx->armaps.armap_nsyms) {
-		if (slbt_obtain_nminfo(ictx,ectx,dctx,mctx) < 0)
+		if (slbt_obtain_nminfo(ictx,dctx,mctx) < 0)
 			return SLBT_NESTED_ERROR(dctx);
 	} else {
 		if (slbt_lib_get_txtfile_ctx(
diff --git a/src/internal/slibtool_ar_impl.h b/src/internal/slibtool_ar_impl.h
index d311774..990bb07 100644
--- a/src/internal/slibtool_ar_impl.h
+++ b/src/internal/slibtool_ar_impl.h
@@ -78,8 +78,7 @@ int slbt_update_mapstrv(
 	struct slbt_archive_meta_impl * m);
 
 int slbt_ar_update_syminfo(
-	struct slbt_archive_ctx * actx,
-	struct slbt_exec_ctx *    ectx);
+	struct slbt_archive_ctx * actx);
 
 static inline struct slbt_archive_meta_impl * slbt_archive_meta_ictx(const struct slbt_archive_meta * meta)
 {
diff --git a/src/logic/linkcmd/slbt_linkcmd_argv.c b/src/logic/linkcmd/slbt_linkcmd_argv.c
index 0209201..013317f 100644
--- a/src/logic/linkcmd/slbt_linkcmd_argv.c
+++ b/src/logic/linkcmd/slbt_linkcmd_argv.c
@@ -976,7 +976,7 @@ slbt_hidden int slbt_exec_link_finalize_argument_vector(
 		arctx       = *arctxv;
 		arctx->path = &slbt_ar_self_dlunit;
 
-		if (slbt_ar_update_syminfo(arctx,ectx) < 0)
+		if (slbt_ar_update_syminfo(arctx) < 0)
 			return SLBT_NESTED_ERROR(dctx);
 
 		/* regenerate the dlsyms vtable source */
diff --git a/src/logic/slbt_exec_ctx.c b/src/logic/slbt_exec_ctx.c
index 0ddc9b9..223be17 100644
--- a/src/logic/slbt_exec_ctx.c
+++ b/src/logic/slbt_exec_ctx.c
@@ -636,7 +636,7 @@ int  slbt_ectx_get_exec_ctx(
 				ictx,
 				SLBT_NESTED_ERROR(dctx));
 
-		if (slbt_ar_update_syminfo(*dlactxv,&ictx->ctx) < 0)
+		if (slbt_ar_update_syminfo(*dlactxv) < 0)
 			return slbt_ectx_free_exec_ctx_impl(
 				ictx,
 				SLBT_NESTED_ERROR(dctx));
@@ -682,7 +682,7 @@ int  slbt_ectx_get_exec_ctx(
 			}
 
 			if (fpreopen) {
-				if (slbt_ar_update_syminfo(*dlactxv,&ictx->ctx) < 0)
+				if (slbt_ar_update_syminfo(*dlactxv) < 0)
 					return slbt_ectx_free_exec_ctx_impl(
 						ictx,
 						SLBT_NESTED_ERROR(dctx));