http://bugzilla.opensuse.org/show_bug.cgi?id=1051881 http://bugzilla.opensuse.org/show_bug.cgi?id=1051881#c4 Michal Srb <msrb@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |IN_PROGRESS --- Comment #4 from Michal Srb <msrb@suse.com> --- Sorry, I was busy with other llvm issues, now I finally have time to dig into this one. (In reply to Martin Liška from comment #0)
But it does not work properly with -m32. Note the code in DetectDistro.cpp checks for /etc/SuSE-release, which is legacy. One should use /etc/os-release. I can fix that after we resolve this issue.
So far I don't think the issue comes from here. The whole DetectDistro function is removed and Distro::OpenSUSE is returned unconditionally. The "/etc/SuSE-release" file is not even read. It seems that clang correctly discovers that the 32bit gcc is in "/usr/lib64/gcc/x86_64-suse-linux/7/32". It links with some files from that directory (for example crtcend.o or libgcc_s.so), which is correct. However, it fails to detect the right place for glibc files. It discovers them in "/usr/bin/../lib64/gcc/x86_64-suse-linux/7/../../.." = "/usr/lib64" directory. It seems that clang does not expect the 32bit gcc to be under the /usr/lib64 directory. We will probably need special case for finding the glibc. -- You are receiving this mail because: You are on the CC list for the bug.