[LLVMdev] 2.5 Pre-release1 available for testing

Jeffrey Yasskin jyasskin at google.com
Sat Feb 7 00:27:25 PST 2009


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