title: Undefined reference to `vtable for...with RTTI support
body: <p>I created an application that uses RTTI support for dynamic_cast. I added "APP_CPPFLAGS += -frtti" in Application.mk file but i get the error: "undefined reference to `vtable for...". If i don't use RTTI, i get the error: "error: 'dynamic_cast' not permitted with - fno-rtti"</p>
  
  <p>There is the output i get:</p>
  
  <pre><code>    ./obj/local/armeabi-v7a/objs/vnptsofthsm/VNPTCASoftHSM/botan_impl/global_rng.o: In function `~RandomNumberGenerator':
      D:\Duongpd\Token\TMS\vnpt.example.TestSoftHSM/jni/VNPTCASoftHSM/botan_impl/../botan/../botan/rng.h:90: undefined reference to `vtable for Botan::RandomNumberGenerator'
      D:\Duongpd\Token\TMS\vnpt.example.TestSoftHSM/jni/VNPTCASoftHSM/botan_impl/../botan/../botan/rng.h:90: undefined reference to `vtable for Botan::RandomNumberGenerator'
      D:\Duongpd\Token\TMS\vnpt.example.TestSoftHSM/jni/VNPTCASoftHSM/botan_impl/../botan/../botan/rng.h:90: undefined reference to `vtable for Botan::RandomNumberGenerator'
      D:\Duongpd\Token\TMS\vnpt.example.TestSoftHSM/jni/VNPTCASoftHSM/botan_impl/../botan/../botan/rng.h:90: undefined reference to `vtable for Botan::RandomNumberGenerator'
     ./obj/local/armeabi-v7a/objs/vnptsofthsm/VNPTCASoftHSM/botan_impl/global_rng.o:(.data.rel.ro+0x8): undefined reference to `typeinfo for Botan::RandomNumberGenerator'
  </code></pre>
  
  <p>And here is Botan::RandomNumberGenerator :</p>
  
  <pre><code>class RandomNumberGenerator
     {
     public:
  
        static RandomNumberGenerator* make_rng();
  
        virtual void randomize(byte output[], size_t length) = 0;
  
        SecureVector&lt;byte&gt; random_vec(size_t bytes)
           {
           SecureVector&lt;byte&gt; output(bytes);
           randomize(&amp;output[0], output.size());
           return output;
           }
  
        byte next_byte();
  
        virtual bool is_seeded() const { return true; }
  
        virtual void clear() = 0;
  
        virtual std::string name() const = 0;
  
        virtual void reseed(size_t bits_to_collect) = 0;
  
        virtual void add_entropy_source(EntropySource* source) = 0;
  
        virtual void add_entropy(const byte in[], size_t length) = 0;
  
        RandomNumberGenerator() {}
        virtual ~RandomNumberGenerator() {}
     private:
        RandomNumberGenerator(const RandomNumberGenerator&amp;) {}
        RandomNumberGenerator&amp; operator=(const RandomNumberGenerator&amp;)
           { return (*this); }
     };
  </code></pre>
  
  <p>My Application.mk:</p>
  
  <pre><code>APP_STL := gnustl_static
  APP_CPPFLAGS += -fexceptions
  APP_CPPFLAGS += -frtti
  APP_CPPFLAGS += -DANDROID
  APP_ABI := armeabi-v7a
  </code></pre>
  
  <p>Can you help me please?</p>