You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ge...@apache.org on 2010/03/16 01:05:46 UTC

svn commit: r923514 - in /incubator/trafficserver/traffic/trunk: ./ libinktomi++/ proxy/ proxy/mgmt2/ proxy/mgmt2/api2/remote/ proxy/mgmt2/cli/ proxy/mgmt2/cli2/ proxy/mgmt2/cop/ proxy/mgmt2/tools/ rc/

Author: georgep
Date: Tue Mar 16 00:05:46 2010
New Revision: 923514

URL: http://svn.apache.org/viewvc?rev=923514&view=rev
Log:
TS-244,TS-127: Add backtrace() support for FreeBSD and OSX.
Tested: FreeBSD72,OSX(10.5),Ubuntu904

Modified:
    incubator/trafficserver/traffic/trunk/configure.ac
    incubator/trafficserver/traffic/trunk/libinktomi++/Makefile.am
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_error.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_resource.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_stack_trace.cc
    incubator/trafficserver/traffic/trunk/proxy/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/Makefile.am
    incubator/trafficserver/traffic/trunk/rc/Makefile.am

Modified: incubator/trafficserver/traffic/trunk/configure.ac
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/configure.ac?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/configure.ac (original)
+++ incubator/trafficserver/traffic/trunk/configure.ac Tue Mar 16 00:05:46 2010
@@ -682,6 +682,21 @@ AC_CHECK_LIB([pcre], [pcre_exec], 
   [AC_MSG_FAILURE([check for pcre failed. Have you installed pcre-devel?])],
 )
 
+# Check for backtrace() support
+AC_CHECK_HEADERS([execinfo.h], [have_backtrace=yes],[])
+if test "x${have_backtrace}" = "xyes"; then
+  # FreeBSD requires '/usr/ports/devel/libexecinfo' for gdb style backtrace() support
+  AC_CHECK_LIB([execinfo], [backtrace], [have_backtrace_lib=yes 
+                                         AC_SUBST([LIBEXECINFO],["-lexecinfo"])])
+  if test "x${have_backtrace_lib}" = "xyes"; then
+    AC_MSG_NOTICE([Using backtrace library '-lexecinfo'])
+  fi	
+  AC_DEFINE(HAVE_BACKTRACE, 1, [Define if you have backtrace()])
+else
+  AC_MSG_WARN([No backtrace() support found])
+fi
+AC_SUBST(HAVE_BACKTRACE)
+
 if test "x$enable_libev" = "xyes"; then
    AC_DEFINE([USE_LIBEV])
    have_good_poller=1

Modified: incubator/trafficserver/traffic/trunk/libinktomi++/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/libinktomi%2B%2B/Makefile.am?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/libinktomi++/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/libinktomi++/Makefile.am Tue Mar 16 00:05:46 2010
@@ -160,15 +160,15 @@ libinktomi___a_LIBADD = ParseRules.o @LI
 mkdfa_SOURCES = mkdfa.c
 
 test_atomic_SOURCES = test_atomic.cc
-test_atomic_LDADD = libinktomi++.a @LIBTHREAD@ @LIBTCL@ @LIBICONV@
+test_atomic_LDADD = libinktomi++.a @LIBTHREAD@ @LIBTCL@ @LIBICONV@ @LIBEXECINFO@
 test_atomic_LDFLAGS = @EXTRA_CXX_LDFLAGS@
 
 test_freelist_SOURCES = test_freelist.cc
-test_freelist_LDADD = libinktomi++.a @LIBTHREAD@ @LIBTCL@ @LIBICONV@
+test_freelist_LDADD = libinktomi++.a @LIBTHREAD@ @LIBTCL@ @LIBICONV@ @LIBEXECINFO@
 test_freelist_LDFLAGS = @EXTRA_CXX_LDFLAGS@
 
 test_arena_SOURCES = test_arena.cc
-test_arena_LDADD = libinktomi++.a @LIBTHREAD@ @LIBTCL@ @LIBICONV@
+test_arena_LDADD = libinktomi++.a @LIBTHREAD@ @LIBTCL@ @LIBICONV@ @LIBEXECINFO@
 test_arena_LDFLAGS = @EXTRA_CXX_LDFLAGS@
 
 test_List_SOURCES = test_List.cc

Modified: incubator/trafficserver/traffic/trunk/libinktomi++/ink_error.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/libinktomi%2B%2B/ink_error.cc?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/libinktomi++/ink_error.cc (original)
+++ incubator/trafficserver/traffic/trunk/libinktomi++/ink_error.cc Tue Mar 16 00:05:46 2010
@@ -61,9 +61,7 @@ ink_fatal_va(int return_code, const char
   message[sizeof(message) - 1] = 0;
   fprintf(stderr, "%s\n", message);
   syslog(LOG_CRIT, "%s", message);
-#if (HOST_OS == linux)
   ink_stack_trace_dump();
-#endif
   ink_die_die_die(return_code);
 }
 
@@ -109,9 +107,7 @@ ink_pfatal(int return_code, const char *
   fprintf(stderr, "%s\n", message);
   syslog(LOG_CRIT, "%s", message);
   va_end(ap);
-#if (HOST_OS == linux)
   ink_stack_trace_dump();
-#endif
   ink_die_die_die(return_code);
 }
 

Modified: incubator/trafficserver/traffic/trunk/libinktomi++/ink_resource.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/libinktomi%2B%2B/ink_resource.cc?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/libinktomi++/ink_resource.cc (original)
+++ incubator/trafficserver/traffic/trunk/libinktomi++/ink_resource.cc Tue Mar 16 00:05:46 2010
@@ -673,9 +673,7 @@ xdump_to_file(FILE * fp)
 void
 xdump()
 {
-#if (HOST_OS == linux)
   ink_stack_trace_dump();
-#endif
   xdump_to_file(stderr);
 }
 

Modified: incubator/trafficserver/traffic/trunk/libinktomi++/ink_stack_trace.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/libinktomi%2B%2B/ink_stack_trace.cc?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/libinktomi++/ink_stack_trace.cc (original)
+++ incubator/trafficserver/traffic/trunk/libinktomi++/ink_stack_trace.cc Tue Mar 16 00:05:46 2010
@@ -29,7 +29,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 
-#ifdef HAVE_EXECINFO_H
+#if defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE)
 
 #include <execinfo.h>           /* for backtrace_symbols, etc. */
 #include <signal.h>
@@ -114,7 +114,7 @@ ink_stack_trace_dump(int sighandler_fram
   backtrace_symbols_fd(stack, btl, 2);
 }
 
-#else  // linux check
+#else  /* !(HAVE_EXECINFO_H && HAVE_BACKTRACE) */
 
 void
 ink_stack_trace_dump(int sighandler_frame)
@@ -123,4 +123,4 @@ ink_stack_trace_dump(int sighandler_fram
   write(2, msg, sizeof(msg) - 1);
 }
 
-#endif  // linux check
+#endif  /* !(HAVE_EXECINFO_H && HAVE_BACKTRACE) */

Modified: incubator/trafficserver/traffic/trunk/proxy/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/Makefile.am?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/proxy/Makefile.am Tue Mar 16 00:05:46 2010
@@ -173,7 +173,7 @@ traffic_server_LDADD = \
   @LIBTHREAD@ @LIBSOCKET@ @LIBNSL@ @LIBRESOLV@ @LIBRT@ \
   @LIBREGEX@ @LIBPCRE@ @LIBDB@ @LIBSQLITE3@ @LIBSSL@ @LIBTCL@ @LIBDL@ \
   @LIBEXPAT@ @LIBDEMANGLE@ @LIBICONV@ \
-  @LIBMLD@ @LIBEXC@ @LIBM@ @LIBEV@ @LIBPROFILER@
+  @LIBMLD@ @LIBEXC@ @LIBM@ @LIBEV@ @LIBPROFILER@ @LIBEXECINFO@
 
 traffic_logcat_SOURCES = logcat.cc
 traffic_logcat_LDFLAGS = @EXTRA_CXX_LDFLAGS@
@@ -231,7 +231,8 @@ traffic_logcat_LDADD = \
   $(top_builddir)/libinktomi++/libinktomi++.a \
   @LIBTHREAD@ @LIBSOCKET@ @LIBNSL@ @LIBRESOLV@ @LIBRT@ \
   @LIBREGEX@ @LIBPCRE@ @LIBDB@ @LIBSQLITE3@ @LIBSSL@ @LIBTCL@ @LIBDL@ @LIBEV@ \
-  @LIBEXPAT@ @LIBDEMANGLE@ @LIBMLD@ @LIBEXC@ @LIBICONV@ @LIBM@ @LIBPROFILER@
+  @LIBEXPAT@ @LIBDEMANGLE@ @LIBMLD@ @LIBEXC@ @LIBICONV@ @LIBM@ @LIBPROFILER@ \
+  @LIBEXECINFO@
 
 traffic_logstats_SOURCES = logstats.cc
 traffic_logstats_LDFLAGS = @EXTRA_CXX_LDFLAGS@
@@ -291,7 +292,8 @@ traffic_logstats_LDADD = \
   $(top_builddir)/libinktomi++/libinktomi++.a \
   @LIBTHREAD@ @LIBSOCKET@ @LIBNSL@ @LIBRESOLV@ @LIBRT@ \
   @LIBREGEX@ @LIBPCRE@ @LIBDB@ @LIBSQLITE3@ @LIBSSL@ @LIBTCL@ @LIBDL@ @LIBEV@ \
-  @LIBEXPAT@ @LIBDEMANGLE@ @LIBMLD@ @LIBEXC@ @LIBICONV@ @LIBM@ @LIBPROFILER@
+  @LIBEXPAT@ @LIBDEMANGLE@ @LIBMLD@ @LIBEXC@ @LIBICONV@ @LIBM@ @LIBPROFILER@ \
+  @LIBEXECINFO@
 
 traffic_sac_SOURCES = sac.cc
 traffic_sac_LDFLAGS = @EXTRA_CXX_LDFLAGS@
@@ -349,13 +351,14 @@ traffic_sac_LDADD = \
   $(top_builddir)/libinktomi++/libinktomi++.a \
   @LIBTHREAD@ @LIBSOCKET@ @LIBNSL@ @LIBRESOLV@ @LIBRT@ \
   @LIBREGEX@ @LIBPCRE@ @LIBDB@ @LIBSQLITE3@ @LIBSSL@ @LIBTCL@ @LIBDL@ @LIBEV@ \
-  @LIBEXPAT@ @LIBDEMANGLE@ @LIBMLD@ @LIBEXC@ @LIBICONV@ @LIBM@ @LIBPROFILER@
+  @LIBEXPAT@ @LIBDEMANGLE@ @LIBMLD@ @LIBEXC@ @LIBICONV@ @LIBM@ @LIBPROFILER@ \
+  @LIBEXECINFO@
 
 traffic_cust_log_fmt_cnvrt_SOURCES = cust_log_fmt_cnvrt.cc
 traffic_cust_log_fmt_cnvrt_LDADD = \
   $(top_builddir)/libinktomi++/libinktomi++.a \
   @LIBTHREAD@ \
-  @LIBTCL@ @LIBRT@ @LIBICONV@ @LIBDL@
+  @LIBTCL@ @LIBRT@ @LIBICONV@ @LIBDL@ @LIBEXECINFO@
 
 libClusterHashStandalone_a_SOURCES = \
   ClusterHashStandalone.cc \

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/Makefile.am?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/Makefile.am Tue Mar 16 00:05:46 2010
@@ -106,7 +106,6 @@ traffic_manager_SOURCES = \
   WebPluginList.h
 
 traffic_manager_LDFLAGS = @EXTRA_CXX_LDFLAGS@ @EXPAT_LDFLAGS@
-
 traffic_manager_LDADD = \
   cluster/libcluster.a \
   preparse/libpreparse.a \
@@ -123,4 +122,4 @@ traffic_manager_LDADD = \
   @LIBEXPAT@ \
   @LIBSSL@ @LIBDB@ @LIBSQLITE3@ @LIBREGEX@ @LIBTCL@ @LIBICONV@ \
   @LIBM@ @LIBDL@ @LIBSOCKET@ @LIBNSL@ @LIBRESOLV@ \
-  @LIBTHREAD@ @LIBRT@
+  @LIBTHREAD@ @LIBRT@ @LIBEXECINFO@

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/Makefile.am?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/api2/remote/Makefile.am Tue Mar 16 00:05:46 2010
@@ -60,4 +60,4 @@ traffic_api_cli_remote_LDADD = \
   libmgmtapiremote.a \
   $(top_builddir)/libinktomi++/libinktomi++.a \
   @LIBTHREAD@ @LIBSOCKET@ @LIBNSL@ @LIBRESOLV@ \
-  @LIBTCL@ @LIBDB@ @LIBSQLITE3@ @LIBRT@ @LIBDL@ @LIBSSL@ @LIBICONV@
+  @LIBTCL@ @LIBDB@ @LIBRT@ @LIBDL@ @LIBSSL@ @LIBICONV@ @LIBEXECINFO@

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/Makefile.am?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/Makefile.am Tue Mar 16 00:05:46 2010
@@ -73,4 +73,4 @@ traffic_line_LDADD = \
   $(top_builddir)/libinktomi++/libinktomi++.a \
   $(top_builddir)/librecords/libreclocal.a \
   @LIBTHREAD@ @LIBSOCKET@ @LIBNSL@ @LIBRESOLV@ \
-  @LIBTCL@ @LIBRT@ @LIBDL@ @LIBICONV@
+  @LIBTCL@ @LIBRT@ @LIBDL@ @LIBICONV@ @LIBEXECINFO@

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/Makefile.am?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/Makefile.am Tue Mar 16 00:05:46 2010
@@ -87,4 +87,4 @@ traffic_shell_LDADD = \
   @LIBICONV@ \
   @LIBEXPAT@ @LIBSSL@ \
   @LIBTHREAD@ @LIBSOCKET@ @LIBNSL@ @LIBRESOLV@ \
-  @LIBRT@
+  @LIBRT@ @LIBEXECINFO@

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/Makefile.am?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/Makefile.am Tue Mar 16 00:05:46 2010
@@ -43,4 +43,4 @@ traffic_cop_LDADD = \
   $(top_builddir)/libinktomi++/libinktomi++.a \
   @LIBTCL@ \
   @LIBSOCKET@ @LIBNSL@ @LIBRESOLV@ \
-  @LIBTHREAD@ @LIBDL@ @LIBRT@ @LIBICONV@
+  @LIBTHREAD@ @LIBDL@ @LIBRT@ @LIBICONV@ @LIBEXECINFO@

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/Makefile.am?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/tools/Makefile.am Tue Mar 16 00:05:46 2010
@@ -41,13 +41,13 @@ traffic_vip_config_SOURCES = VIPConfig.c
 traffic_vip_config_LDFLAGS = @EXTRA_CXX_LDFLAGS@
 traffic_vip_config_LDADD = \
   $(top_builddir)/libinktomi++/libinktomi++.a \
-  @LIBSOCKET@ @LIBTCL@ @LIBRT@ @LIBDL@ @LIBICONV@
+  @LIBSOCKET@ @LIBTCL@ @LIBRT@ @LIBDL@ @LIBICONV@ @LIBEXECINFO@
 
 traffic_net_config_SOURCES = NetConfig.cc
 traffic_net_config_LDFLAGS = @EXTRA_CXX_LDFLAGS@
 traffic_net_config_LDADD = \
   $(top_builddir)/libinktomi++/libinktomi++.a \
-  @LIBSOCKET@ @LIBTCL@ @LIBRT@ @LIBICONV@
+  @LIBSOCKET@ @LIBTCL@ @LIBRT@ @LIBICONV@ @LIBEXECINFO@
 
 traffic_time_config_SOURCES = TimeConfig.cc
 traffic_time_config_LDFLAGS = @EXTRA_CXX_LDFLAGS@
@@ -59,7 +59,7 @@ traffic_mcast_snoop_SOURCES = McastSnoop
 traffic_mcast_snoop_LDFLAGS = @EXTRA_CXX_LDFLAGS@
 traffic_mcast_snoop_LDADD = \
   $(top_builddir)/libinktomi++/libinktomi++.a \
-  @LIBSOCKET@ @LIBNSL@ @LIBTCL@ @LIBRT@ @LIBTHREAD@ @LIBDL@ @LIBICONV@
+  @LIBSOCKET@ @LIBNSL@ @LIBTCL@ @LIBRT@ @LIBTHREAD@ @LIBDL@ @LIBICONV@ @LIBEXECINFO@
 
 libinksysapi_a_SOURCES = SysAPI.cc SysAPI.h
 

Modified: incubator/trafficserver/traffic/trunk/rc/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/rc/Makefile.am?rev=923514&r1=923513&r2=923514&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/rc/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/rc/Makefile.am Tue Mar 16 00:05:46 2010
@@ -35,5 +35,5 @@ update_records_LDFLAGS = @EXTRA_CXX_LDFL
 update_records_LDADD =	\
 			$(top_builddir)/proxy/mgmt2/librecords.a \
 			$(top_builddir)/libinktomi++/libinktomi++.a \
-			@LIBICONV@ @LIBTHREAD@ @LIBRT@ @LIBTCL@ @LIBDL@ @LIBSSL@
+			@LIBICONV@ @LIBTHREAD@ @LIBRT@ @LIBTCL@ @LIBDL@ @LIBSSL@ @LIBEXECINFO@