diff --git a/source/dub/compilers/dmd.d b/source/dub/compilers/dmd.d index 686b8d5..8ee4a60 100644 --- a/source/dub/compilers/dmd.d +++ b/source/dub/compilers/dmd.d @@ -152,7 +152,7 @@ settings.addDFlags("-lib"); break; case TargetType.dynamicLibrary: - settings.addDFlags("-shared"); + settings.addDFlags("-shared", "-fPIC"); break; } diff --git a/source/dub/generators/build.d b/source/dub/generators/build.d index a63302e..fd18b1c 100644 --- a/source/dub/generators/build.d +++ b/source/dub/generators/build.d @@ -122,6 +122,9 @@ else enum tempobjname = "temp.o"; Path tempobj = Path(buildsettings.targetPath) ~ tempobjname; + if (buildsettings.targetType == TargetType.dynamicLibrary) + buildsettings.addDFlags("-shared", "-fPIC"); + // setup linker command line auto lbuildsettings = buildsettings; lbuildsettings.sourceFiles = lbuildsettings.sourceFiles.filter!(f => f.endsWith(".lib"))().array();