2.5 Pre-release1 available for testing

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

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)

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.

Hi Tanya, I see the following warnings when building. I'm not sure
how to fix any of them. The last one looks like it might be serious
(seems like a job for Chris).

llvm[1]: Compiling Path.cpp for Release build
In file included from Path.cpp:270:
Unix/Path.inc: In member function ‘bool llvm::sys::Path::eraseFromDisk(bool, std::string*) const’:
Unix/Path.inc:661: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result

llvm[1]: Compiling raw_ostream.cpp for Release build
raw_ostream.cpp: In member function ‘virtual void llvm::raw_fd_ostream::flush_impl()’:
raw_ostream.cpp:245: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result

llvm[2]: Compiling LLParser.cpp for Release build
LLParser.cpp: In member function ‘bool llvm::LLParser::ParseGlobal(const std::string&, const char*, unsigned int, bool, unsigned int)’:
LLParser.cpp:448: warning: ‘IsConstant’ may be used uninitialized in this function

Ciao,

Duncan.

Hi,

I've reported a couple of regressions from LLVM 2.4 on test cases from
the GCC testsuite:

undefined reference to extern inline function
http://llvm.org/bugs/show_bug.cgi?id=3517

undefined reference to __compound_literal.*
http://llvm.org/bugs/show_bug.cgi?id=3518

Thanks,
Jay.

Hi Tanya, some test results (testrun.log and report.nightly.txt
attached).

Platform: x86-64-linux (ubuntu), system gcc is gcc-4.3.
Release build (= default) for llvm and llvm-gcc; PIC
not enabled; in fact the only non-default option was
--disable-multilib, which was for llvm-gcc.

I had to kill off some of the exception handling tests
because they got into some kind of infinite loop. This
may be because the gcc-4.3 libgcc unwind code is somehow
incompatible with llvm exception handling (PR2998). If
this is a problem for the release, I can try to solve it
ASAP.

Ciao,

Duncan.

PS: x86-32-linux testresults coming next!

testrun.log (340 KB)

report.nightly.txt (77.5 KB)

Did you file PRs for these?

-Tanya

I'm updating the Fedora packaging of LLVM, and with the 02/20
prerelease it fails to build on ppc64:

http://koji.fedoraproject.org/koji/taskinfo?taskID=1148023

make[1]: Entering directory `/builddir/build/BUILD/llvm-2.5/lib/VMCore'
llvm[1]: Building Intrinsics.gen.tmp from Intrinsics.td
tblgen: IntrinsicEmitter.cpp:137: void
EmitTypeForValueType(std::ostream&, llvm::MVT::SimpleValueType):
Assertion `false && "Unsupported ValueType!"' failed.
make[1]: Leaving directory `/builddir/build/BUILD/llvm-2.5/lib/VMCore'
make[1]: *** [/builddir/build/BUILD/llvm-2.5/lib/VMCore/Release/Intrinsics.gen.tmp]
Aborted
make: *** [all] Error 1

The compiler flags used are in the build log as well.

Thanks,

Michel Salim wrote:

Michel Salim wrote:

Hi Jeff,

> make[1]: Entering directory `/builddir/build/BUILD/llvm-2.5/lib/VMCore'
> llvm[1]: Building Intrinsics.gen.tmp from Intrinsics.td
> tblgen: IntrinsicEmitter.cpp:137: void
> EmitTypeForValueType(std::ostream&, llvm::MVT::SimpleValueType):
> Assertion `false && "Unsupported ValueType!"' failed.
> make[1]: Leaving directory `/builddir/build/BUILD/llvm-2.5/lib/VMCore'
> make[1]: *** [/builddir/build/BUILD/llvm-2.5/lib/VMCore/Release/Intrinsics.gen.tmp]
> Aborted
> make: *** [all] Error 1
>
> The compiler flags used are in the build log as well.
>
> Thanks,
>
>

I ran into the same problem and fixed it by forcing the
MVT::SimpleValueType enum to be 64 bits so that all of the types
in the union later in the class are the same size. I tested this
on ppc64 and x86_64.

which compiler version are you using? If this patch is applied,
does everything work fine if you build with that compiler or are
there other issues?

Thanks,

Duncan.

Hi,
Were you able to get past this error:

make[1]: Entering directory `/builddir/build/BUILD/llvm-2.5/lib/VMCore'
llvm[1]: Building Intrinsics.gen.tmp from Intrinsics.td
tblgen: IntrinsicEmitter.cpp:137: void
EmitTypeForValueType(std::ostream&, llvm::MVT::SimpleValueType):
Assertion `false && "Unsupported ValueType!"' failed.
make[1]: Leaving directory `/builddir/build/BUILD/llvm-2.5/lib/VMCore'
make[1]: ***
[/builddir/build/BUILD/llvm-2.5/lib/VMCore/Release/Intrinsics.gen.tmp]
Aborted
make: *** [all] Error 1

Neale

Apologies. This was supposed to be a reply to an individual address, not the
list.