# # patch "transforms.hh" # from [c20250278e8f0c6d1d2f4ede542ed218d5ba57cd] # to [99ee53fa53ee22cbb825b97bd997a68de913b0d3] # # patch "vocab.hh" # from [930a79d9ee7aba0064403ec0bf47b3c43036b3b9] # to [30521cc298bcafd38bdcc9bab2d24221d8f1d35d] # ======================================================================== --- transforms.hh c20250278e8f0c6d1d2f4ede542ed218d5ba57cd +++ transforms.hh 99ee53fa53ee22cbb825b97bd997a68de913b0d3 @@ -27,13 +27,19 @@ class Gzip_Decompression; } +#ifdef HAVE_EXTERN_TEMPLATE +#define EXTERN extern +#else +#define EXTERN /* */ +#endif + template std::string xform(std::string const &); -extern template std::string xform(std::string const &); -extern template std::string xform(std::string const &); -extern template std::string xform(std::string const &); -extern template std::string xform(std::string const &); -extern template std::string xform(std::string const &); -extern template std::string xform(std::string const &); +EXTERN template std::string xform(std::string const &); +EXTERN template std::string xform(std::string const &); +EXTERN template std::string xform(std::string const &); +EXTERN template std::string xform(std::string const &); +EXTERN template std::string xform(std::string const &); +EXTERN template std::string xform(std::string const &); // base64 encoding @@ -82,13 +88,13 @@ template void pack(T const & in, base64< gzip > & out); -extern template void pack(data const &, base64< gzip > &); -extern template void pack(delta const &, base64< gzip > &); +EXTERN template void pack(data const &, base64< gzip > &); +EXTERN template void pack(delta const &, base64< gzip > &); template void unpack(base64< gzip > const & in, T & out); -extern template void unpack(base64< gzip > const &, data &); -extern template void unpack(base64< gzip > const &, delta &); +EXTERN template void unpack(base64< gzip > const &, data &); +EXTERN template void unpack(base64< gzip > const &, delta &); // diffing and patching ======================================================================== --- vocab.hh 930a79d9ee7aba0064403ec0bf47b3c43036b3b9 +++ vocab.hh 30521cc298bcafd38bdcc9bab2d24221d8f1d35d @@ -108,11 +108,14 @@ ATOMIC(ty) \ inline void verify(ty &) {} +#ifdef HAVE_EXTERN_TEMPLATE #define EXTERN extern +#else +#define EXTERN /* */ +#endif #include "vocab_terms.hh" -#undef EXTERN #undef ATOMIC #undef ATOMIC_NOVERIFY #undef DECORATE @@ -147,10 +150,12 @@ // kludge: certs are derived types. what else can we do? #ifndef __CERT_HH__ #include "cert.hh" -extern template class revision; -extern template class manifest; +EXTERN template class revision; +EXTERN template class manifest; #endif +#undef EXTERN + // diff type enum diff_type {