[LLVMdev] Build(s) broken?

Paul Melis llvm at assumetheposition.nl
Mon Aug 31 13:43:14 PDT 2009


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?

Thanks,
Paul



More information about the llvm-dev mailing list