diff --git a/source/dub/compilers/ldc.d b/source/dub/compilers/ldc.d index 479e795..2899d4a 100644 --- a/source/dub/compilers/ldc.d +++ b/source/dub/compilers/ldc.d @@ -124,7 +124,7 @@ } if (settings.targetType == TargetType.dynamicLibrary) - settings.addDFlags("-fPIC"); + settings.addDFlags("-relocation-model=pic"); assert(fields & BuildSetting.dflags); assert(fields & BuildSetting.copyFiles); @@ -158,7 +158,7 @@ settings.addDFlags("-lib"); break; case TargetType.dynamicLibrary: - settings.addDFlags("-shared"); + settings.addDFlags("-shared", "-defaultlib=phobos2"); break; case TargetType.object: settings.addDFlags("-c"); diff --git a/test/issue613-dynlib-pic.sh b/test/issue613-dynlib-pic.sh new file mode 100755 index 0000000..57d1c82 --- /dev/null +++ b/test/issue613-dynlib-pic.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +cd ${CURR_DIR}/issue613-dynlib-pic +rm -rf .dub +if [ "${COMPILER}" = "dmd" ]; then + ${DUB} build --compiler=${COMPILER} || exit 1 +else + echo "Skipping shared library test for ${COMPILER}..." +fi + diff --git a/test/issue613-dynlib-pic/.no_build b/test/issue613-dynlib-pic/.no_build new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/issue613-dynlib-pic/.no_build