[llvm-dev] clang emit Duplicate file entry on windows
via llvm-dev
llvm-dev at lists.llvm.org
Mon Mar 29 11:41:43 PDT 2021
Is this https://bugs.llvm.org/show_bug.cgi?id=44170
which had a tentative patch at https://reviews.llvm.org/D71508 ?
The original complaint wasn't for Windows, but the lack of
filepath canonicalization seems like a common symptom.
--paulr
> -----Original Message-----
> From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of kamlesh
> kumar via llvm-dev
> Sent: Monday, March 29, 2021 1:08 PM
> To: Sanjoy Das via llvm-dev <llvm-dev at lists.llvm.org>
> Subject: [llvm-dev] clang emit Duplicate file entry on windows
>
> Hi Devs,
> clang Emitting duplicate file entry when the input file given like this
> case-1:
> $./clang++ -g -c -o test.o
> /c/Users/HI/Documents/windworkspace/llvm-dev-build/bin/tests/test.cc
> -std=c++17
>
> $./llvm-dwarfdump -debug-line test.o
> -----
> file_names[ 52]:
> name: "test.cc"
> dir_index: 3
> mod_time: 0x00000000
> length: 0x00000000
> file_names[ 53]:
> name: "test.cc"
> dir_index: 3
> mod_time: 0x00000000
> length: 0x00000000
> --------
> case-2:
> But when input file given like this It emit only one file entry
> $ ./clang C:\\Users\\HI\\Documents\\windworkspace\\llvm-dev-
> build\\bin\\tests\\test.cc
> -c -g -o test.o -std=c++17
> $./llvm-dwarfdump -debug-line test.o
> ----
> file_names[ 52]:
> name: "test.cc"
> dir_index: 3
> mod_time: 0x00000000
> length: 0x00000000
> ----
> duplicate entry in case-1 creates a problem while planting
> breakpoint(debugger says unresolved breakpoint, using a proprietary
> debugger).
> But case2 works fine because it has a single file entry.
> This problem can be observed with the relative path too.
> Like to know expert's thoughts on this weird behavior only observed on
> windows?
>
> Test(test.cc used above in command line is)
> $ cat tests/test.cc
> #include <iostream>
> #include <filesystem>
> namespace fs = std::filesystem;
> int main()
> {
> std::cout << "Current path is " << fs::current_path() << '\n'; // (1)
> fs::current_path(fs::temp_directory_path()); // (3)
> std::cout << "Current path is " << fs::current_path() << '\n';
> }
>
> note: Above observation from mingw64 x86_64 msys2, latest clang(13.0)
> i.e.
> $ ./clang -v
> clang version 13.0.0
> Target: x86_64-w64-windows-gnu
> Thread model: posix
> InstalledDir: C:\Users\HI\Documents\windworkspace\llvm-dev-build\bin
> clang was built by
> $ gcc -v
>
> Using built-in specs.
> COLLECT_GCC=C:\msys64\mingw64\bin\gcc.exe
> COLLECT_LTO_WRAPPER=C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/10.2.0/lto-wrapper.exe
> Target: x86_64-w64-mingw32
> Configured with: ../gcc-10.2.0/configure --prefix=/mingw64
> --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32
> --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32
> --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include
> --libexecdir=/mingw64/lib --enable-bootstrap --with-arch=x86-64
> --with-tune=generic
> --enable-languages=c,lto,c++,fortran,ada,objc,obj-c++,jit
> --enable-shared --enable-static --enable-libatomic
> --enable-threads=posix --enable-graphite --enable-fully-dynamic-string
> --enable-libstdcxx-filesystem-ts=yes --enable-libstdcxx-time=yes
> --disable-libstdcxx-pch --disable-libstdcxx-debug
> --disable-isl-version-check --enable-lto --enable-libgomp
> --disable-multilib --enable-checking=release --disable-rpath
> --disable-win32-registry --disable-nls --disable-werror
> --disable-symvers --disable-plugin --with-libiconv --with-system-zlib
> --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64
> --with-isl=/mingw64 --with-pkgversion='Rev9, Built by MSYS2 project'
> --with-bugurl=https://urldefense.com/v3/__https://github.com/msys2/MINGW-
> packages/issues__;!!JmoZiZGBv3RvKRSx!sNo9vzG3u8UzUc-
> TX__WUTwYUqhGVov3xqMG_hkrdO4ltWmnS0BmX-fl_sYk8bvdxA$
> --with-gnu-as --with-gnu-ld --with-boot-ldflags='-pipe
> -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high
> -Wl,--disable-dynamicbase -static-libstdc++ -static-libgcc'
> 'LDFLAGS_FOR_TARGET=-pipe
> -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high'
> --enable-linker-plugin-flags='LDFLAGS=-static-libstdc++\
> -static-libgcc\ -pipe\
> -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high\
> -Wl,--stack,12582912'
> Thread model: posix
> Supported LTO compression algorithms: zlib zstd
> gcc version 10.2.0 (Rev9, Built by MSYS2 project)
> ./kamlesh
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://urldefense.com/v3/__https://lists.llvm.org/cgi-
> bin/mailman/listinfo/llvm-dev__;!!JmoZiZGBv3RvKRSx!sNo9vzG3u8UzUc-
> TX__WUTwYUqhGVov3xqMG_hkrdO4ltWmnS0BmX-fl_sZECZ7d3Q$
More information about the llvm-dev
mailing list