#error "Do not include internal header file directly"
#endif
-#if defined(__GNUC__) && defined(__i386__)
+#if defined(__GNUC__) && defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE)
#undef strdup
#define silc_malloc(s) silc_st_malloc((s), __FILE__, __LINE__)
#define silc_realloc(p, s) silc_st_realloc((p), (s), __FILE__, __LINE__)
#define silc_free(p) silc_st_free((p), __FILE__, __LINE__)
#define silc_memdup(p, s) silc_st_memdup((p), (s), __FILE__, __LINE__)
+#define silc_strdup(s) silc_st_strdup((s), __FILE__, __LINE__)
#define strdup(s) silc_st_strdup((s), __FILE__, __LINE__)
void *silc_st_malloc(size_t size, const char *file, int line);
#else
#error "memory allocation stack trace not supported on this platform"
-#endif /* __GNUC__ && __i386__ */
+#endif /* __GNUC__ && HAVE_EXECINFO_H && HAVE_BACKTRACE */
#endif /* STACKTRACE_H */