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
>

Reply via email to