Hi Jim, On Thu, Jun 25, 2009 at 8:09 AM, James Clause<clause at cc.gatech.edu> wrote: > All, > > I've started to play around with Klee and I ran into a small build > problem (. ?I'm using Mac OS X 10.5.7 with the Xcode 3.1.3 developer > tools. ?When building, I get an error compiling ExprUtil.cpp (I'm > including the full error at the end of this email). As the error > message suggests, adding "-fexceptions" to CXXFLAGS fixes the > problem and allows the build to finish.
Yeah, this is a current known issue. I don't want to build with -fexceptions in general, but the libstdc++ that shipped with 4.0 on Mac OS X seems to require it at least for these libraries. I will probably switch klee over to using the LLVM map data structures to work around this problem, but I haven't got to it yet. I filed http://llvm.org/PR4458 to remind myself to do this at some point. > On a slightly different note, what's the latest ETA on your customized > uClibc? All that is really blocking this is some documentation on how to use it. If you want to try it, the library is here: http://t1.minormatter.com/~ddunbar/klee-uclibc-0.01.tgz You will need to configure klee to support it, and --libc=uclibc will link it at runtime. The options to allow transparently making things symbolic are beyond the scope of this email. ;) >?I've run Klee on a few simple examples (and it seems to work > perfectly) Cool! > but I'd also like to run it on some larger programs where > handling library code is more important. I plan to write up a description of how we used klee to build and test coreutils, with descriptions of how to use library/symbolic environment options. I've gotten this comment from a number of people so I will try and do this sooner rather than later. - Daniel > ~Jim > > ---------------------------------------------------------- > > llvm[2]: Compiling ExprUtil.cpp for Release build > /usr/include/c++/4.0.0/tr1/hashtable: In member function > ?std::pair<typename std::tr1::hashtable<Key, Value, Allocator, > ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, > mutable_iterators, unique_keys>::iterator, bool> > std::tr1::hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, > H, RehashPolicy, cache_hash_code, mutable_iterators, > unique_keys>::insert(const Value&, std::tr1::true_type) [with Key = > klee::ref<klee::Expr>, Value = klee::ref<klee::Expr>, Allocator = > std::allocator<klee::ref<klee::Expr> >, ExtractKey = > Internal::identity<klee::ref<klee::Expr> >, Equal = > klee::util::ExprCmp, H1 = klee::util::ExprHash, H2 = > Internal::mod_range_hashing, H = Internal::default_ranged_hash, > RehashPolicy = Internal::prime_rehash_policy, bool cache_hash_code = > false, bool mutable_iterators = false, bool unique_keys = true]?: > > /usr/include/c++/4.0.0/tr1/hashtable:870: instantiated from ?typename > Internal::IF<unique_keys, > std::pair<Internal::hashtable_iterator<Value, (! mutable_iterators), > cache_hash_code>, bool>, Internal::hashtable_iterator<Value, (! > mutable_iterators), cache_hash_code> >::type std::tr1::hashtable<Key, > Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, > cache_hash_code, mutable_iterators, unique_keys>::insert(const Value&) > [with Key = klee::ref<klee::Expr>, Value = klee::ref<klee::Expr>, > Allocator = std::allocator<klee::ref<klee::Expr> >, ExtractKey = > Internal::identity<klee::ref<klee::Expr> >, Equal = > klee::util::ExprCmp, H1 = klee::util::ExprHash, H2 = > Internal::mod_range_hashing, H = Internal::default_ranged_hash, > RehashPolicy = Internal::prime_rehash_policy, bool cache_hash_code = > false, bool mutable_iterators = false, bool unique_keys = true]? > ExprUtil.cpp:30: instantiated from here > /usr/include/c++/4.0.0/tr1/hashtable:1263: error: exception handling > disabled, use -fexceptions to enable > > _______________________________________________ > klee-dev mailing list > klee-dev at keeda.stanford.edu > http://keeda.Stanford.EDU/mailman/listinfo/klee-dev >
