diff --git a/libstdc++/include/cstddef b/libstdc++/include/cstddef
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libstdc++/include/cstddef
diff --git a/libstdc++/include/new b/libstdc++/include/new
new file mode 100644
index 0000000..559308b
--- /dev/null
+++ b/libstdc++/include/new
@@ -0,0 +1,29 @@
+#ifndef __NEW__
+#define __NEW__
+
+#include <stddef.h>
+
+namespace std {
+    using ::size_t;
+
+    struct nothrow_t {};
+    extern const nothrow_t nothrow;
+}
+
+void* operator new(std::size_t);
+void* operator new[](std::size_t);
+void  operator delete(void*);
+void  operator delete[](void*);
+void* operator new(std::size_t, const std::nothrow_t&);
+void* operator new[](std::size_t, const std::nothrow_t&);
+void  operator delete(void*, const std::nothrow_t&);
+void  operator delete[](void*, const std::nothrow_t&);
+
+inline void* operator new(std::size_t, void* p) { return p; }
+inline void* operator new[](std::size_t, void* p) { return p; }
+
+// these next two are not really required, since exceptions are off
+inline void  operator delete(void*, void*) { }
+inline void  operator delete[](void*, void*) { }
+
+#endif // __NEW__
diff --git a/libstdc++/include/typeinfo b/libstdc++/include/typeinfo
new file mode 100644
index 0000000..8a51a54
--- /dev/null
+++ b/libstdc++/include/typeinfo
@@ -0,0 +1,28 @@
+#ifndef _TYPEINFO_HEADER_GAURD
+#define _TYPEINFO_HEADER_GAURD
+
+
+namespace std {
+    class type_info;
+    class bad_cast;
+    class bad_typeid;
+};
+
+
+class type_info {
+public:
+    type_info();
+    virtual ~type_info();
+
+    char const * name() const;
+
+    bool operator==(type_info const & right) const;
+    bool operator!=(type_info const & right) const;
+    bool before(type_info const & right) const;
+
+private:
+    type_info(type_info const & right);
+    type_info & operator=(type_info const & right);
+};
+
+#endif
