diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp index aa41084d56d78..0f9ba79b8ddab 100644 --- a/lld/COFF/Driver.cpp +++ b/lld/COFF/Driver.cpp @@ -1165,7 +1165,8 @@ void LinkerDriver::link(ArrayRef ArgsArr) { !Config->DoGC && !Config->DoICF && !Args.hasArg(OPT_order) && !Args.hasArg(OPT_profile)); Config->NxCompat = Args.hasFlag(OPT_nxcompat, OPT_nxcompat_no, true); - Config->TerminalServerAware = Args.hasFlag(OPT_tsaware, OPT_tsaware_no, true); + Config->TerminalServerAware = + !Config->DLL && Args.hasFlag(OPT_tsaware, OPT_tsaware_no, true); Config->DebugDwarf = Args.hasArg(OPT_debug_dwarf); Config->DebugGHashes = Args.hasArg(OPT_debug_ghash); diff --git a/lld/test/COFF/options.test b/lld/test/COFF/options.test index 39f944beddbc6..50f921cdb8797 100644 --- a/lld/test/COFF/options.test +++ b/lld/test/COFF/options.test @@ -48,4 +48,8 @@ TSAWARE: IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE # RUN: lld-link /tsaware:no /out:%t.exe /entry:main %t.obj # RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=NOTSAWARE %s +# RUN: lld-link /dll /out:%t.dll /entry:main %t.obj +# RUN: llvm-readobj -file-headers %t.dll | FileCheck -check-prefix=NOTSAWARE %s +# RUN: lld-link /tsaware /dll /out:%t.dll /entry:main %t.obj +# RUN: llvm-readobj -file-headers %t.dll | FileCheck -check-prefix=NOTSAWARE %s NOTSAWARE-NOT: IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE