summaryrefslogtreecommitdiffhomepage
path: root/src/internal
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal')
-rw-r--r--src/internal/slibtool_symlink_impl.c7
-rw-r--r--src/internal/slibtool_symlink_impl.h1
2 files changed, 7 insertions, 1 deletions
diff --git a/src/internal/slibtool_symlink_impl.c b/src/internal/slibtool_symlink_impl.c
index 0b1daa0..bb67623 100644
--- a/src/internal/slibtool_symlink_impl.c
+++ b/src/internal/slibtool_symlink_impl.c
@@ -28,6 +28,7 @@ int slbt_create_symlink(
int fdcwd;
int fliteral;
int fwrapper;
+ int fdevnull;
char ** oargv;
const char * slash;
char * ln[5];
@@ -41,9 +42,13 @@ int slbt_create_symlink(
/* options */
fliteral = (options & SLBT_SYMLINK_LITERAL);
fwrapper = (options & SLBT_SYMLINK_WRAPPER);
+ fdevnull = (options & SLBT_SYMLINK_DEVNULL);
/* symlink is a placeholder? */
- if ((dctx->cctx->drvflags & SLBT_DEV_NULL_FLAGS)
+ if (fliteral && fdevnull) {
+ slash = target;
+
+ } else if ((dctx->cctx->drvflags & SLBT_DEV_NULL_FLAGS)
&& !strcmp(target,"/dev/null")) {
slash = target;
suffix = ".disabled";
diff --git a/src/internal/slibtool_symlink_impl.h b/src/internal/slibtool_symlink_impl.h
index 5619e75..fc4c708 100644
--- a/src/internal/slibtool_symlink_impl.h
+++ b/src/internal/slibtool_symlink_impl.h
@@ -7,6 +7,7 @@
#define SLBT_SYMLINK_DEFAULT 0x0000
#define SLBT_SYMLINK_LITERAL 0x0001
#define SLBT_SYMLINK_WRAPPER 0x0002
+#define SLBT_SYMLINK_DEVNULL 0x0004
int slbt_create_symlink(
const struct slbt_driver_ctx * dctx,