<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>28318</bug_id>
          
          <creation_ts>2013-01-08 22:12:00 +0400</creation_ts>
          <short_desc>С помощью clang3.1 не собираются программы</short_desc>
          <delta_ts>2014-04-11 00:41:46 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>clang</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://bugzilla.redhat.com/show_bug.cgi?id=750187</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Arseny Maslennikov">arseny</assigned_to>
          <cc>arseny</cc>
    
    <cc>lakostis</cc>
    
    <cc>real.altlinux.org</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>136661</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2013-01-08 22:12:00 +0400</bug_when>
    <thetext>Steps to Reproduce:
1. echo &apos;int main(void) {return 0;}&apos; &gt; testcase.c
2. clang testcase.c
  
Actual results:
/usr/bin/ld: cannot find crtbegin.o: No such file or directory
/usr/bin/ld: cannot find -lgcc

$ clang -v testcase.c
clang version 3.1 (branches/release_31)
Target: i386-alt-linux-gnu
Thread model: posix
 &quot;/usr/bin/clang&quot; -cc1 -triple i386-alt-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name testcase.c -mrelocation-model static -mdisable-fp-elim -masm-verbose -mconstructor-aliases -target-cpu pentium4 -target-linker-version 2.23.51.0.1 -momit-leaf-frame-pointer -v -resource-dir /usr/bin/../lib/clang/3.1 -fmodule-cache-path /tmp/.private/lav/clang-module-cache -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.1/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdebug-compilation-dir /tmp/.private/lav/RPM/BUILD/darling-0.0.0/CMakeFiles -ferror-limit 19 -fmessage-length 134 -mstackrealign -fgnu-runtime -fobjc-runtime-has-arc -fobjc-runtime-has-weak -fobjc-fragile-abi -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/.private/lav/testcase-GCYH2L.o -x c testcase.c
clang -cc1 version 3.1 based upon LLVM 3.1 default target i386-alt-linux-gnu
ignoring nonexistent directory &quot;/include&quot;
#include &quot;...&quot; search starts here:
#include &lt;...&gt; search starts here:
 /usr/local/include
 /usr/bin/../lib/clang/3.1/include
 /usr/include
End of search list.
 &quot;/usr/bin/ld&quot; --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o a.out /usr/lib/crt1.o /usr/lib/crti.o crtbegin.o -L/lib -L/usr/lib /tmp/.private/lav/testcase-GCYH2L.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed crtend.o /usr/lib/crtn.o
/usr/bin/ld: cannot find crtbegin.o: Нет такого файла или каталога
/usr/bin/ld: cannot find -lgcc
clang: error: linker command failed with exit code 1 (use -v to see invocation)


Он там пытается рыться в куче каталогов, но, видимо, не находит
/usr/lib/gcc/i586-alt-linux/4.7.2

Вот strace:
openat(AT_FDCWD, &quot;/usr/lib/gcc/i686-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i686-linux-gnu/gcc/i686-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/i686-pc-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i686-pc-linux-gnu/gcc/i686-pc-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i686-pc-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/i486-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i486-linux-gnu/gcc/i486-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/i386-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i386-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i386-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/i686-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i686-redhat-linux/gcc/i686-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i686-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/i586-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i586-redhat-linux/gcc/i586-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i586-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/i386-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-redhat-linux/gcc/i386-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i386-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/i586-suse-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i586-suse-linux/gcc/i586-suse-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i586-suse-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/i486-slackware-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i486-slackware-linux/gcc/i486-slackware-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i486-slackware-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/i386-alt-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-alt-linux-gnu/gcc/i386-alt-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/i386-alt-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/x86_64-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/x86_64-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/x86_64-unknown-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/x86_64-unknown-linux-gnu/gcc/x86_64-unknown-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/x86_64-unknown-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/x86_64-pc-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/x86_64-pc-linux-gnu/gcc/x86_64-pc-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/x86_64-pc-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/x86_64-redhat-linux6E&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/x86_64-redhat-linux6E/gcc/x86_64-redhat-linux6E&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/x86_64-redhat-linux6E&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/x86_64-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/x86_64-redhat-linux/gcc/x86_64-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/x86_64-redhat-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/x86_64-suse-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/x86_64-suse-linux/gcc/x86_64-suse-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/x86_64-suse-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/x86_64-manbo-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/x86_64-manbo-linux-gnu/gcc/x86_64-manbo-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/x86_64-manbo-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/x86_64-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/x86_64-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/x86_64-slackware-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/x86_64-slackware-linux/gcc/x86_64-slackware-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/x86_64-slackware-linux&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/gcc/x86_64-alt-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/x86_64-alt-linux-gnu/gcc/x86_64-alt-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 
openat(AT_FDCWD, &quot;/usr/lib/i386-linux-gnu/gcc/x86_64-alt-linux-gnu&quot;, O_RDONLY...) = -1 ENOENT 

Мне кажется, весь этот поиск в корне вреден.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142313</commentid>
    <comment_count>1</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2013-08-29 13:16:06 +0400</bug_when>
    <thetext>(In reply to comment #0)
&gt; Мне кажется, весь этот поиск в корне вреден.

Тем не менее, так устроен clang... Его придётся пересобирать даже с минорными релизами gcc. Ну, или захакать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146135</commentid>
    <comment_count>2</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2014-04-11 00:41:46 +0400</bug_when>
    <thetext>Современные версии clang (&gt;=3.4) научились в итоге всех этих вредных проверок всё же находить разные версии нашего gcc -- лишние пересборки теперь не нужны и clang теперь не привязан к конкретной версии gcc, ему подойдёт любая.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>