diff options
Diffstat (limited to 'src/driver')
-rw-r--r-- | src/driver/slbt_driver_ctx.c | 6 | ||||
-rw-r--r-- | src/driver/slbt_split_argv.c | 11 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c index 0e4ebda..8f4f2dc 100644 --- a/src/driver/slbt_driver_ctx.c +++ b/src/driver/slbt_driver_ctx.c @@ -722,8 +722,6 @@ int slbt_lib_get_driver_ctx( break; case TAG_DLOPEN: - break; - case TAG_DLPREOPEN: ndlopen++; break; @@ -1011,6 +1009,10 @@ int slbt_lib_get_driver_ctx( for (entry=meta->entries; entry->fopt || entry->arg; entry++) { if (entry->fopt) { switch (entry->tag) { + case TAG_DLOPEN: + ctx->cctx.drvflags |= SLBT_DRIVER_DLOPEN_FORCE; + break; + case TAG_DLPREOPEN: if (!strcmp(entry->arg,"self")) { ctx->cctx.drvflags |= SLBT_DRIVER_DLPREOPEN_SELF; diff --git a/src/driver/slbt_split_argv.c b/src/driver/slbt_split_argv.c index df0db37..894ed9d 100644 --- a/src/driver/slbt_split_argv.c +++ b/src/driver/slbt_split_argv.c @@ -472,10 +472,6 @@ slbt_hidden int slbt_split_argv( *targv++ = argv[i++]; *targv++ = argv[i]; - } else if (!(strcmp("dlopen",&argv[i][1]))) { - *targv++ = argv[i++]; - *targv++ = argv[i]; - } else if (!(strcmp("weak",&argv[i][1]))) { *targv++ = argv[i++]; *targv++ = argv[i]; @@ -502,6 +498,13 @@ slbt_hidden int slbt_split_argv( *targv++ = argv[i++]; *targv++ = argv[i]; + } else if (!(strcmp("dlopen",&argv[i][1]))) { + if (!argv[i+1]) + return -1; + + *targv++ = argv[i++]; + *targv++ = argv[i]; + } else if (!(strcmp("dlpreopen",&argv[i][1]))) { if (!argv[i+1]) return -1; |