[LLVMdev] Build(s) broken?

Jim Grosbach grosbach at apple.com
Mon Aug 31 13:47:46 PDT 2009


On Aug 31, 2009, at 1:43 PM, Paul Melis wrote:

> Paul Melis wrote:
>> Paul Melis wrote:
>>
>>> Jim Grosbach wrote:
>>>
>>>> On Aug 30, 2009, at 10:18 AM, Paul Melis wrote:
>>>>
>>>>
>>>>> Hello,
>>>>>
>>>>> Bill Wendling wrote:
>>>>>
>>>>>> Before we had buildbots, a random patch would break the system.  
>>>>>> It
>>>>>> would sometimes take a whole day to determine which patch broke  
>>>>>> it.
>>>>>>
>>>>> I see the buildbots are currently showing no problem on 32-bit  
>>>>> linux
>>>>> but
>>>>> I get the following build error with TOT (out-of-source autoconf
>>>>> build):
>>>>>
>>>>> [...]
>>>>> make[1]: Leaving directory `/home/melis/c/llvm-svn-release/tools'
>>>>> make[1]: Entering directory `/home/melis/c/llvm-svn-release/ 
>>>>> runtime'
>>>>> make[2]: Entering directory
>>>>> `/home/melis/c/llvm-svn-release/runtime/libprofile'
>>>>> llvm[2]: Compiling BasicBlockTracing.ll to BasicBlockTracing.bc  
>>>>> for
>>>>> Release build (bytecode)
>>>>> /home/melis/c/llvm-svn-release/Release/bin/llvm-as:
>>>>> /home/melis/c/llvm-svn-release/runtime/libprofile/Release/
>>>>> BasicBlockTracing.ll:1:2:
>>>>> error: expected top-level entity
>>>>>   .file    "BasicBlockTracing.c"
>>>>>   ^
>>>>> /home/melis/c/llvm-svn-release/Release/bin/opt: Invalid bitcode
>>>>> signature
>>>>> make[2]: ***
>>>>> [/home/melis/c/llvm-svn-release/runtime/libprofile/Release/
>>>>> BasicBlockTracing.bc]
>>>>> Error 1
>>>>> make[2]: Leaving directory
>>>>> `/home/melis/c/llvm-svn-release/runtime/libprofile'
>>>>> make[1]: *** [libprofile/.makeall] Error 2
>>>>> make[1]: Leaving directory `/home/melis/c/llvm-svn-release/ 
>>>>> runtime'
>>>>> make: *** [all] Error 1
>>>>>
>>>>> It seems BasicBlockTracing.ll contains assembly instead of LLVM  
>>>>> IR.
>>>>>
>>>>>
>>>>> Also, llvm-gcc also doesn't build for me. Here the error is  
>>>>> related to
>>>>> exception handling:
>>>>>
>>>>> make[3]: Leaving directory `/home/melis/c/llvm-gcc-svn-build/
>>>>> libdecnumber'
>>>>> make[3]: Entering directory `/home/melis/c/llvm-gcc-svn-build/gcc'
>>>>> /home/melis/local/bin/gcc -c   -g -DIN_GCC   -W -Wall -Wwrite- 
>>>>> strings
>>>>> -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long
>>>>> -Wno-variadic-macros -Wno-overlength-strings -Wold-style- 
>>>>> definition
>>>>> -Wmissing-format-attribute -fno-common   -DHAVE_CONFIG_H -I. -I.
>>>>> -I../../llvm-gcc-svn/gcc -I../../llvm-gcc-svn/gcc/.
>>>>> -I../../llvm-gcc-svn/gcc/../include
>>>>> -I../../llvm-gcc-svn/gcc/../libcpp/include
>>>>> -I../../llvm-gcc-svn/gcc/../libdecnumber -I../libdecnumber
>>>>> gtype-desc.c -o gtype-desc.o
>>>>> gtype-desc.c:5862: error: 'sjlj_fc_type_node' undeclared here (not
>>>>> in a
>>>>> function)
>>>>> make[3]: *** [gtype-desc.o] Error 1
>>>>> make[3]: Leaving directory `/home/melis/c/llvm-gcc-svn-build/gcc'
>>>>> make[2]: *** [all-stage1-gcc] Error 2
>>>>> make[2]: Leaving directory `/home/melis/c/llvm-gcc-svn-build'
>>>>> make[1]: *** [stage1-bubble] Error 2
>>>>> make[1]: Leaving directory `/home/melis/c/llvm-gcc-svn-build'
>>>>> make: *** [all] Error 2
>>>>>
>>>>> Is there something suddenly wrong with my system (which hasn't  
>>>>> changed
>>>>> in any way)? I used to be able to build LLVM(GCC) without  
>>>>> problems a
>>>>> few
>>>>> weeks ago...
>>>>>
>>>>>
>>>> SJLJ exception handling is only implemented on ARM Darwin. It looks
>>>> like your target is pulling in bits of that?
>>>>
>>> Well, I don't know what changed to make this suddenly happen. FYI,  
>>> here is
>>> the configure line I have been using for quite some time:
>>>
>>> ../llvm-gcc-svn/configure \
>>>    --prefix=/home/melis/llvm \
>>>    --program-prefix=llvm- \
>>>    --with-llvm=/home/melis/c/llvm-svn \
>>>    --enable-languages=c,c++ \
>>>    --target=i686-pc-linux-gnu \
>>>    --with-tune=generic \
>>>    --with-arch=pentium4
>>>
>>
>> It seems my installed version of llvm-gcc had lost its ability to  
>> generate
>> LLVM IR (-c -emit-llvm was ignored, it simply produced assembly in  
>> that
>> case). That caused LLVM itself not to build, as the stuff in runtime/
>> picked up the flaky llvm-gcc.
>>
> After rebuilding LLVM and llvm-gcc a couple of times now (after rm -rf
> *-ing the build directories and reconfiguring) I keep having the  
> problem
> that -S -emit-llvm does not produce LLVM IR, e.g.
>
> 22:11|melis at juggle2:~> llvm-gcc -v
> Using built-in specs.
> Target: i686-pc-linux-gnu
> Configured with: ../llvm-gcc-svn/configure --prefix=/home/melis/llvm
> --program-prefix=llvm- --with-llvm=/home/melis/llvm
> --enable-languages=c,c++ --target=i686-pc-linux-gnu --with- 
> tune=generic
> --with-arch=pentium4 : (reconfigured) ../llvm-gcc-svn/configure
> --prefix=/home/melis/llvm --program-prefix=llvm-
> --with-llvm=/home/melis/llvm --enable-languages=c,c++
> --target=i686-pc-linux-gnu --with-tune=generic --with-arch=pentium4
> Thread model: posix
> gcc version 4.2.1 (Based on Apple Inc. build 5649)
> 22:11|melis at juggle2:~> cat doh.c
> #include <stdio.h>
> int main()
> {
>    printf("Doh!\n");
> }
> 22:11|melis at juggle2:~> llvm-gcc -S -emit-llvm doh.c
> 22:11|melis at juggle2:~> ls -l doh.*
> -rw-r--r-- 1 melis melis  56 Aug 31 22:10 doh.c
> -rw-r--r-- 1 melis melis 310 Aug 31 22:11 doh.s
> 22:11|melis at juggle2:~> cat doh.s
>    .file    "doh.c"
>    .section    .rodata
> .LC0:
>    .string    "Doh!"
>    .text
> .globl main
>    .type    main, @function
> main:
>    pushl    %ebp
>    movl    %esp, %ebp
>    subl    $24, %esp
>    movl    $.LC0, (%esp)
>    call    puts
>    leave
>    ret
>    .size    main, .-main
>    .ident    "GCC: (GNU) 4.2.1 (Based on Apple Inc. build 5649)"
>    .section    .note.GNU-stack,"", at progbits
>
> I figured perhaps the --with-llvm value I used was wrong (should it be
> llvm build-dir or final installation dir?), but after trying different
> values it still makes no difference. What would cause llvm-gcc to  
> loose
> the capability of writing out LLVM IR?
>

Does --enable-llvm=<path> instead of --with-llvm=<path> yield the same  
results?


-Jim



More information about the llvm-dev mailing list