[LLVMdev] 2.5 Pre-release1 available for testing

Jeffrey Yasskin jyasskin at google.com
Sat Feb 7 11:23:09 PST 2009


I figured it out. I had installed llvm-2.4 through macports and set
LD_LIBRARY_PATH, CPPFLAGS, and LDFLAGS to search /opt/local in
addition to the normal search paths. Unsetting them let the 2.5
prerelease compile. Sorry for the false alarm.

On Sat, Feb 7, 2009 at 12:27 AM, Jeffrey Yasskin <jyasskin at google.com> wrote:
> I'm trying to build the 2.5 prerelease on my MacBook, and I'm getting
> a bus error in tblgen:
>
> $ rm -r * && ../src/configure --prefix=`pwd`/../install  && make -j1
> VERBOSE=1 ENABLE_OPTIMIZED=0
> ...
> llvm[1]: Building Intrinsics.gen.tmp from Intrinsics.td
> /Users/jyasskin/src/llvm-2.5/obj/Debug/bin/tblgen -I
> /Users/jyasskin/src/llvm-2.5/src/lib/VMCore -I
> /Users/jyasskin/src/llvm-2.5/src/include -I
> /Users/jyasskin/src/llvm-2.5/src/include -I
> /Users/jyasskin/src/llvm-2.5/src/lib/Target
> /Users/jyasskin/src/llvm-2.5/src/include/llvm/Intrinsics.td -o
> /Users/jyasskin/src/llvm-2.5/obj/lib/VMCore/Debug/Intrinsics.gen.tmp
> -gen-intrinsic
> make[1]: *** [/Users/jyasskin/src/llvm-2.5/obj/lib/VMCore/Debug/Intrinsics.gen.tmp]
> Bus error
> make: *** [all] Error 1
>
> Looking through the code, I don't see anything wrong. Here's a bunch
> of maybe-relevant information, but let me know if I should send
> anything else.
>
> $ gdb --args /Users/jyasskin/src/llvm-2.5/obj/Debug/bin/tblgen -I
> /Users/jyasskin/src/llvm-2.5/src/lib/VMCore -I
> /Users/jyasskin/src/llvm-2.5/src/include -I
> /Users/jyasskin/src/llvm-2.5/src/include -I
> /Users/jyasskin/src/llvm-2.5/src/lib/Target
> /Users/jyasskin/src/llvm-2.5/src/include/llvm/Intrinsics.td -o
> /Users/jyasskin/src/llvm-2.5/obj/lib/VMCore/Debug/Intrinsics.gen.tmp
> -gen-intrinsic
> GNU gdb 6.3.50-20050815 (Apple version gdb-962) (Sat Jul 26 08:14:40 UTC 2008)
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i386-apple-darwin"...Reading symbols for
> shared libraries .... done
>
> (gdb) run
> Starting program: /Users/jyasskin/src/llvm-2.5/obj/Debug/bin/tblgen -I
> /Users/jyasskin/src/llvm-2.5/src/lib/VMCore -I
> /Users/jyasskin/src/llvm-2.5/src/include -I
> /Users/jyasskin/src/llvm-2.5/src/include -I
> /Users/jyasskin/src/llvm-2.5/src/lib/Target
> /Users/jyasskin/src/llvm-2.5/src/include/llvm/Intrinsics.td -o
> /Users/jyasskin/src/llvm-2.5/obj/lib/VMCore/Debug/Intrinsics.gen.tmp
> -gen-intrinsic
> Reading symbols for shared libraries +++.. done
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_PROTECTION_FAILURE at address: 0x0010eb75
> 0x963646e1 in __gnu_cxx::__exchange_and_add ()
> (gdb) bt
> #0  0x963646e1 in __gnu_cxx::__exchange_and_add ()
> #1  0x96354070 in std::string::_Rep::_M_dispose ()
> #2  0x963560a6 in std::string::assign ()
> #3  0x000ecd67 in llvm::cl::initializer<char
> [2]>::apply<llvm::cl::opt<std::string, false,
> llvm::cl::parser<std::string> > > (this=0xbfffdd5c, O=@0x17c200) at
> CommandLine.h:281
> #4  0x000ecdd4 in llvm::cl::applicator<llvm::cl::initializer<char [2]>
>>::opt<llvm::cl::opt<std::string, false, llvm::cl::parser<std::string>
>> > (M=@0xbfffdd5c, O=@0x17c200) at CommandLine.h:706
> #5  0x000ecdee in llvm::cl::apply<llvm::cl::initializer<char [2]>,
> llvm::cl::opt<std::string, false, llvm::cl::parser<std::string> > >
> (M=@0xbfffdd5c, O=0x17c200) at CommandLine.h:742
> #6  0x000ece85 in llvm::cl::opt<std::string, false,
> llvm::cl::parser<std::string> >::opt<char [2], llvm::cl::desc,
> llvm::cl::value_desc, llvm::cl::initializer<char [2]> >
> (this=0x17c200, M0=@0x10eb92, M1=@0xbfffdd64, M2=@0xbfffdd60,
> M3=@0xbfffdd5c) at CommandLine.h:897
> #7  0x0015d7be in __static_initialization_and_destruction_0
> (__initialize_p=1, __priority=65535) at
> /Users/jyasskin/src/llvm-2.5/src/utils/TableGen/TableGen.cpp:97
> #8  0x0015d953 in global constructors keyed to
> _ZN89_GLOBAL__N__Users_jyasskin_src_llvm_2.5_src_utils_TableGen_TableGen.cpp_00000000_BF75FF056ActionE
> () at /Users/jyasskin/src/llvm-2.5/src/utils/TableGen/TableGen.cpp:236
> #9  0x8fe12e76 in
> __dyld__ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
> ()
> #10 0x8fe0e723 in
> __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEj
> ()
> #11 0x8fe0e809 in
> __dyld__ZN11ImageLoader15runInitializersERKNS_11LinkContextE ()
> #12 0x8fe04102 in __dyld__ZN4dyld24initializeMainExecutableEv ()
> #13 0x8fe07b5f in __dyld__ZN4dyld5_mainEPK11mach_headermiPPKcS5_S5_ ()
> #14 0x8fe01872 in __dyld__ZN13dyldbootstrap5startEPK11mach_headeriPPKcl ()
> #15 0x8fe01037 in __dyld__dyld_start ()
>
>
> Oddly, I can't look at the contents of an opt<string> until I run
> (gdb) add-symbol-file
> /Users/jyasskin/src/llvm-2.5/obj/lib/Support/Debug/CommandLine.o
>
> Then I get the following at the crash:
>
> (gdb) f 3
> (gdb) p O
> $2 = (class llvm::cl::opt<std::basic_string<char,
> std::char_traits<char>, std::allocator<char>
>>,false,llvm::cl::parser<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > > > &) @0x17c200: {
>  <llvm::cl::Option> = {
>    _vptr$Option = 0x15f2c8,
>    NumOccurrences = 0,
>    Flags = 33,
>    Position = 0,
>    AdditionalVals = 0,
>    NextRegistered = 0x0,
>    ArgStr = 0x10eb92 "o",
>    HelpStr = 0x10eb82 "Output filename",
>    ValueStr = 0x10eb79 "filename"
>  },
>  <llvm::cl::opt_storage<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,false,true>> = {
>    <std::basic_string<char,std::char_traits<char>,std::allocator<char> >> = {
>      _M_dataplus = {
>        <std::allocator<char>> = {
>          <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No
> data fields>},
>        members of
> std::basic_string<char,std::char_traits<char>,std::allocator<char>
>>::_Alloc_hider:
>        _M_p = 0xa06ea6e4 ""
>      }
>    }, <No data fields>},
>  members of llvm::cl::opt<std::basic_string<char,
> std::char_traits<char>, std::allocator<char>
>>,false,llvm::cl::parser<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > > >:
>  Parser = {
>    <llvm::cl::basic_parser<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >> = {
>      <llvm::cl::basic_parser_impl> = {
>        _vptr$basic_parser_impl = 0x15ec58
>      }, <No data fields>}, <No data fields>}
> }
>
>
> This happens both with and without the binaries from
> llvm-gcc4.2-2.5-x86-darwin9.tar.gz symlinked into my PATH. It also
> happens in both release and debug builds.
>
> $ gcc --version
> i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5488)
>
>
>
>
> On Fri, Feb 6, 2009 at 5:42 PM, Tanya Lattner <tonic at nondot.org> wrote:
>> LLVMers,
>>
>> The 2.5 pre-release is available for testing:
>> http://llvm.org/prereleases/2.5/
>>
>> If you have time, I'd appreciate anyone who can help test the release.
>> Please do the following:
>>
>> 1) Download/compile llvm source, and either compile llvm-gcc source or use
>> llvm-gcc binary (please compile llvm-gcc with fortran if you can).
>> 2) Run make check, send me the testrun.log
>> 3) Run "make TEST=nightly report" and send me the report.nightly.txt
>> 4) Please provide details on what platform you compiled LLVM on, how you
>> built LLMV (src == obj, or src != obj), and if you compiled llvm-gcc with
>> support for fortran.
>>
>> Please COMPLETE ALL TESTING BY end of the day on Feb. 12th!
>>
>> Thanks,
>> Tanya Lattner
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>



More information about the llvm-dev mailing list