This broke the win asan build: http://lab.llvm.org:8011/builders/sanitizer-windows/builds/28203
More generally, though, this seems like it's a Boost convention and an MSVCRT convention, and not a general Windows convention: http://www.boost.org/doc/libs/1_42_0/more/getting_started/windows.html#library-naming https://msdn.microsoft.com/en-us/library/aa272081(v=vs.60).aspx https://cmake.org/Bug/view.php?id=10190#c19315 Our pre-existing convention was to name the dynamic library clang_rt.${lib}_${arch}_dynamic, because that works across platforms. I don't think we'll want to undo that convention across Windows, OS X, and Linux. There are probably enough projects out there already using those library names directly. On Tue, Aug 30, 2016 at 3:10 PM, Saleem Abdulrasool via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Author: compnerd > Date: Tue Aug 30 17:10:27 2016 > New Revision: 280169 > > URL: http://llvm.org/viewvc/llvm-project?rev=280169&view=rev > Log: > Driver: use the canonical static library naming > > On Windows, static libraries are named lib<name>.lib while import > libraries are > named <name>.lib. Use the appropriate naming on itanium and msvc > environments. > This is setup properly so that if a dynamic builtins is used on Windows, it > would do the right thing, although this is not currently wired through the > driver (i.e. there is no equivalent to -{shared,static}-gcc). > > Modified: > cfe/trunk/lib/Driver/ToolChain.cpp > cfe/trunk/test/Driver/arm-compiler-rt.c > cfe/trunk/test/Driver/windows-cross.c > > Modified: cfe/trunk/lib/Driver/ToolChain.cpp > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ > ToolChain.cpp?rev=280169&r1=280168&r2=280169&view=diff > ============================================================ > ================== > --- cfe/trunk/lib/Driver/ToolChain.cpp (original) > +++ cfe/trunk/lib/Driver/ToolChain.cpp Tue Aug 30 17:10:27 2016 > @@ -288,13 +288,13 @@ std::string ToolChain::getCompilerRT(con > bool Shared) const { > const llvm::Triple &TT = getTriple(); > const char *Env = TT.isAndroid() ? "-android" : ""; > - bool IsITANMSVCWindows = > + bool IsWindowsIAMSVC = > TT.isWindowsMSVCEnvironment() || TT.isWindowsItaniumEnvironment(); > > StringRef Arch = getArchNameForCompilerRTLib(*this, Args); > - const char *Prefix = IsITANMSVCWindows ? "" : "lib"; > + const char *Prefix = (IsWindowsIAMSVC && Shared) ? "" : "lib"; > const char *Suffix = Shared ? (Triple.isOSWindows() ? ".dll" : ".so") > - : (IsITANMSVCWindows ? ".lib" : ".a"); > + : (IsWindowsIAMSVC ? ".lib" : ".a"); > > SmallString<128> Path(getDriver().ResourceDir); > StringRef OSLibName = Triple.isOSFreeBSD() ? "freebsd" : getOS(); > > Modified: cfe/trunk/test/Driver/arm-compiler-rt.c > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/ > arm-compiler-rt.c?rev=280169&r1=280168&r2=280169&view=diff > ============================================================ > ================== > --- cfe/trunk/test/Driver/arm-compiler-rt.c (original) > +++ cfe/trunk/test/Driver/arm-compiler-rt.c Tue Aug 30 17:10:27 2016 > @@ -11,7 +11,7 @@ > // ARM-GNUEABIHF-ABI: "{{.*[/\\]}}libclang_rt.builtins-arm.a" > > // RUN: %clang -target arm-windows-itanium -rtlib=compiler-rt -### %s > 2>&1 | FileCheck %s -check-prefix ARM-WINDOWS > -// ARM-WINDOWS: "{{.*[/\\]}}clang_rt.builtins-arm.lib" > +// ARM-WINDOWS: "{{.*[/\\]}}libclang_rt.builtins-arm.lib" > > // RUN: %clang -target arm-linux-androideabi -rtlib=compiler-rt -### %s > 2>&1 | FileCheck %s -check-prefix ARM-ANDROID > // ARM-ANDROID: "{{.*[/\\]}}libclang_rt.builtins-arm-android.a" > > Modified: cfe/trunk/test/Driver/windows-cross.c > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/ > windows-cross.c?rev=280169&r1=280168&r2=280169&view=diff > ============================================================ > ================== > --- cfe/trunk/test/Driver/windows-cross.c (original) > +++ cfe/trunk/test/Driver/windows-cross.c Tue Aug 30 17:10:27 2016 > @@ -6,27 +6,27 @@ > // RUN: %clang -### -target armv7-windows-itanium --sysroot > %s/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin > -rtlib=compiler-rt -stdlib=libstdc++ -o /dev/null %s 2>&1 \ > // RUN: | FileCheck %s --check-prefix CHECK-RTLIB > > -// CHECK-RTLIB: armv7-windows-itanium-ld" > "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" > "-m" "thumb2pe" "-Bdynamic" "--entry" "mainCRTStartup" > "--allow-multiple-definition" "-o" "{{[^"]*}}" > "{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/crtbegin.obj" > "-L{{.*}}/Inputs/Windows/ARM/8.1/usr/lib" > "-L{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/gcc" > "{{.*}}.o" "-lmsvcrt" "{{.*[\\/]}}clang_rt.builtins-arm.lib" > +// CHECK-RTLIB: armv7-windows-itanium-ld" > "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" > "-m" "thumb2pe" "-Bdynamic" "--entry" "mainCRTStartup" > "--allow-multiple-definition" "-o" "{{[^"]*}}" > "{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/crtbegin.obj" > "-L{{.*}}/Inputs/Windows/ARM/8.1/usr/lib" > "-L{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/gcc" > "{{.*}}.o" "-lmsvcrt" "{{.*[\\/]}}libclang_rt.builtins-arm.lib" > > // RUN: %clang -### -target armv7-windows-itanium --sysroot > %S/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin > -rtlib=compiler-rt -stdlib=libc++ -o /dev/null %s 2>&1 \ > // RUN: | FileCheck %s --check-prefix CHECK-C-LIBCXX > > -// CHECK-C-LIBCXX: armv7-windows-itanium-ld" > "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" > "-m" "thumb2pe" "-Bdynamic" "--entry" "mainCRTStartup" > "--allow-multiple-definition" "-o" "{{[^"]*}}" > "{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/crtbegin.obj" > "{{.*}}.o" "-lmsvcrt" "{{.*[\\/]}}clang_rt.builtins-arm.lib" > +// CHECK-C-LIBCXX: armv7-windows-itanium-ld" > "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" > "-m" "thumb2pe" "-Bdynamic" "--entry" "mainCRTStartup" > "--allow-multiple-definition" "-o" "{{[^"]*}}" > "{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/crtbegin.obj" > "{{.*}}.o" "-lmsvcrt" "{{.*[\\/]}}libclang_rt.builtins-arm.lib" > > // RUN: %clangxx -### -target armv7-windows-itanium --sysroot > %S/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin > -rtlib=compiler-rt -stdlib=libc++ -o /dev/null %s 2>&1 \ > // RUN: | FileCheck %s --check-prefix CHECK-LIBCXX > > -// CHECK-LIBCXX: armv7-windows-itanium-ld" > "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" > "-m" "thumb2pe" "-Bdynamic" "--entry" "mainCRTStartup" > "--allow-multiple-definition" "-o" "{{[^"]*}}" > "{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/crtbegin.obj" > "{{.*}}.o" "-lc++" "-lmsvcrt" "{{.*[\\/]}}clang_rt.builtins-arm.lib" > +// CHECK-LIBCXX: armv7-windows-itanium-ld" > "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" > "-m" "thumb2pe" "-Bdynamic" "--entry" "mainCRTStartup" > "--allow-multiple-definition" "-o" "{{[^"]*}}" > "{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/crtbegin.obj" > "{{.*}}.o" "-lc++" "-lmsvcrt" "{{.*[\\/]}}libclang_rt.builtins-arm.lib" > > // RUN: %clang -### -target armv7-windows-itanium --sysroot > %S/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin -shared > -rtlib=compiler-rt -stdlib=libc++ -o shared.dll %s 2>&1 \ > // RUN: | FileCheck %s --check-prefix CHECK-SHARED > > -// CHECK-SHARED: armv7-windows-itanium-ld" > "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" > "-m" "thumb2pe" "-shared" "-Bdynamic" "--enable-auto-image-base" "--entry" > "_DllMainCRTStartup" "--allow-multiple-definition" "-o" "shared.dll" > "--out-implib" "shared.lib" > "{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/crtbeginS.obj" > "{{.*}}.o" "-lmsvcrt" "{{.*[\\/]}}clang_rt.builtins-arm.lib" > +// CHECK-SHARED: armv7-windows-itanium-ld" > "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" > "-m" "thumb2pe" "-shared" "-Bdynamic" "--enable-auto-image-base" "--entry" > "_DllMainCRTStartup" "--allow-multiple-definition" "-o" "shared.dll" > "--out-implib" "shared.lib" > "{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/crtbeginS.obj" > "{{.*}}.o" "-lmsvcrt" "{{.*[\\/]}}libclang_rt.builtins-arm.lib" > > // RUN: %clang -### -target armv7-windows-itanium --sysroot > %s/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin -shared > -rtlib=compiler-rt -stdlib=libc++ -nostartfiles -o shared.dll %s 2>&1 \ > // RUN: | FileCheck %s --check-prefix CHECK-NOSTARTFILES > > -// CHECK-NOSTARTFILES: armv7-windows-itanium-ld" > "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" > "-m" "thumb2pe" "-shared" "-Bdynamic" "--enable-auto-image-base" "--entry" > "_DllMainCRTStartup" "--allow-multiple-definition" "-o" "shared.dll" > "--out-implib" "shared.lib" "{{.*}}.o" "-lmsvcrt" > "{{.*[\\/]}}clang_rt.builtins-arm.lib" > +// CHECK-NOSTARTFILES: armv7-windows-itanium-ld" > "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" > "-m" "thumb2pe" "-shared" "-Bdynamic" "--enable-auto-image-base" "--entry" > "_DllMainCRTStartup" "--allow-multiple-definition" "-o" "shared.dll" > "--out-implib" "shared.lib" "{{.*}}.o" "-lmsvcrt" "{{.*[\\/]}}libclang_rt. > builtins-arm.lib" > > // RUN: %clang -### -target armv7-windows-itanium --sysroot > %S/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin -shared > -rtlib=compiler-rt -stdlib=libc++ -nostartfiles -nodefaultlibs -o > shared.dll %s 2>&1 \ > // RUN: | FileCheck %s --check-prefix CHECK-STANDALONE > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits