Here's an updated version of the patch. The previous one breaks the
build on Linux.
I've committed a forward-port of this patch to trunk.

  K.


On Mon, Nov 2, 2009 at 1:13 PM, Kinkie <gkin...@gmail.com> wrote:
> Hi all,
>  the attached patch allows 3.1 to build on opensolaris sparc. Things
> are not fine yet, as it uncovers a broken ICMP test (in Icmp::CheckSum
> - may be endianness-related?).
>
> I'll soon commit a similar fix to trunk (it doesn't apply cleanly due
> to SourceLayout).
>
> --
>    /kinkie
>



-- 
    /kinkie
=== modified file 'configure.in'
--- configure.in	2009-10-29 08:52:53 +0000
+++ configure.in	2009-11-02 14:04:57 +0000
@@ -2541,6 +2541,7 @@
 dnl Check for needed libraries
 AC_CHECK_LIB(nsl, main)
 AC_CHECK_LIB(socket, main)
+AC_CHECK_LIB(opcom_stack,main)
 dnl Check for Winsock only on MinGW, on Cygwin we must use emulated BSD socket API
 case "$host_os" in
   mingw|mingw32)

=== modified file 'include/profiling.h'
--- include/profiling.h	2008-09-29 09:56:06 +0000
+++ include/profiling.h	2009-11-02 14:04:57 +0000
@@ -67,7 +67,11 @@
 }
 
 #else
-#warning Unsupported CPU. Define function get_tick(). Disabling USE_XPROF_STATS...
+static inline hrtime_t
+get_tick(void)
+{
+	return 0; //unsupported on the CPU
+}
 #undef USE_XPROF_STATS
 #endif
 

=== modified file 'src/Makefile.am'
--- src/Makefile.am	2009-10-27 05:37:33 +0000
+++ src/Makefile.am	2009-11-02 14:04:57 +0000
@@ -165,10 +165,11 @@
 	auth/libauth.la \
 	acl/libapi.la \
 	ip/libip.la \
-	fs/libfs.la
+	fs/libfs.la \
+	@XTRA_LIBS@
 
 ## Loadable Modules needs lib/libLtdl stuff
-INCLUDES += -I$(top_srcdir)/lib
+INCLUDES += -I$(top_srcdir)/lib -I$(top_srcdir)/lib/libLtdl
 
 EXTRA_PROGRAMS = \
 	DiskIO/DiskDaemon/diskd \
@@ -533,7 +534,6 @@
 	$(ESI_LIBS) \
 	@SSLLIB@ \
 	-lmiscutil \
-	@XTRA_LIBS@ \
 	@EPOLL_LIBS@ \
 	@MINGW_LIBS@ 
 squid_DEPENDENCIES = $(top_builddir)/lib/libmiscutil.a \
@@ -619,7 +619,6 @@
 	@SNMPLIB@ \
 	@SSLLIB@ \
 	-L$(top_builddir)/lib -lmiscutil \
-	@XTRA_LIBS@ \
 	@EPOLL_LIBS@ \
 	@MINGW_LIBS@ 
 ufsdump_DEPENDENCIES = $(top_builddir)/lib/libmiscutil.a \
@@ -916,6 +915,7 @@
 	acl/libstate.la \
 	auth/libauth.la \
 	ip/libip.la \
+	@XTRA_LIBS@ \
 	@SQUID_CPPUNIT_LIBS@ \
 	@SQUID_CPPUNIT_LA@ \
 	-L../lib -lmiscutil
@@ -1180,8 +1180,7 @@
 	-L../lib -lmiscutil \
 	@SQUID_CPPUNIT_LIBS@ \
 	@SQUID_CPPUNIT_LA@ \
-	@SSLLIB@ \
-	@XTRA_LIBS@
+	@SSLLIB@
 tests_testCacheManager_LDFLAGS = $(LIBADD_DL)
 tests_testCacheManager_DEPENDENCIES =  $(top_builddir)/lib/libmiscutil.a \
 	@REPL_OBJS@ \
@@ -1351,8 +1350,7 @@
 	-L../lib -lmiscutil \
 	@SQUID_CPPUNIT_LIBS@ \
 	@SQUID_CPPUNIT_LA@ \
-	@SSLLIB@ \
-	@XTRA_LIBS@
+	@SSLLIB@
 tests_testEvent_LDFLAGS = $(LIBADD_DL)
 tests_testEvent_DEPENDENCIES =  $(top_builddir)/lib/libmiscutil.a \
 	@REPL_OBJS@ \
@@ -1499,8 +1497,7 @@
 	-L../lib -lmiscutil \
 	@SQUID_CPPUNIT_LIBS@ \
 	@SQUID_CPPUNIT_LA@ \
-	@SSLLIB@ \
-	@XTRA_LIBS@
+	@SSLLIB@
 tests_testEventLoop_LDFLAGS = $(LIBADD_DL)
 tests_testEventLoop_DEPENDENCIES =  $(top_builddir)/lib/libmiscutil.a \
 	@REPL_OBJS@ \
@@ -1642,8 +1639,7 @@
 	-L../lib -lmiscutil \
 	@SQUID_CPPUNIT_LIBS@ \
 	@SQUID_CPPUNIT_LA@ \
-	@SSLLIB@ \
-	@XTRA_LIBS@
+	@SSLLIB@
 tests_test_http_range_LDFLAGS = $(LIBADD_DL)
 tests_test_http_range_DEPENDENCIES = \
 	@SQUID_CPPUNIT_LA@
@@ -1790,8 +1786,7 @@
 	-L../lib -lmiscutil \
 	@SQUID_CPPUNIT_LIBS@ \
 	@SQUID_CPPUNIT_LA@ \
-	@SSLLIB@ \
-	@XTRA_LIBS@
+	@SSLLIB@
 tests_testHttpRequest_LDFLAGS = $(LIBADD_DL)
 tests_testHttpRequest_DEPENDENCIES =  $(top_builddir)/lib/libmiscutil.a \
 	@REPL_OBJS@ \
@@ -2141,8 +2136,7 @@
 	-L../lib -lmiscutil \
 	@SQUID_CPPUNIT_LIBS@ \
 	@SQUID_CPPUNIT_LA@ \
-	@SSLLIB@ \
-	@XTRA_LIBS@
+	@SSLLIB@
 tests_testURL_LDFLAGS = $(LIBADD_DL)
 tests_testURL_DEPENDENCIES =  $(top_builddir)/lib/libmiscutil.a \
 	@REPL_OBJS@ \

=== modified file 'src/icmp/Makefile.am'
--- src/icmp/Makefile.am	2009-06-05 23:28:19 +0000
+++ src/icmp/Makefile.am	2009-11-02 14:04:57 +0000
@@ -61,6 +61,7 @@
 pinger_LDADD=\
 	libicmp-core.la \
 	../ip/libip.la \
+	@XTRA_LIBS@ \
 	$(top_builddir)/lib/libmiscutil.a
 pinger_DEPENDENCIES= \
 	libicmp-core.la \
@@ -101,6 +102,7 @@
 testIcmp_LDADD=\
 	@SQUID_CPPUNIT_LIBS@ \
 	@SQUID_CPPUNIT_LA@ \
+	@XTRA_LIBS@ \
 	libicmp-core.la \
 	../ip/libip.la \
 	$(top_builddir)/lib/libmiscutil.a

=== modified file 'src/ip/Makefile.am'
--- src/ip/Makefile.am	2009-06-05 23:28:19 +0000
+++ src/ip/Makefile.am	2009-11-02 14:04:57 +0000
@@ -24,6 +24,7 @@
 	$(top_builddir)/compat/libcompat.la \
 	libip.la \
 	-L$(top_builddir)/lib -lmiscutil \
+	@XTRA_LIBS@ \
 	@SQUID_CPPUNIT_LA@ \
 	@SQUID_CPPUNIT_LIBS@
 testIpAddress_LDFLAGS= $(LIBADD_DL)

=== modified file 'src/tools.cc'
--- src/tools.cc	2009-10-29 08:52:53 +0000
+++ src/tools.cc	2009-11-02 14:06:35 +0000
@@ -69,6 +69,13 @@
 SQUIDCEXTERN int backtrace(void *, int);
 SQUIDCEXTERN void backtrace_symbols_fd(void *, int, int);
 SQUIDCEXTERN int setresuid(uid_t, uid_t, uid_t);
+
+#else /* _SQUID_LINUX_ */
+/* needed on Opensolaris for backtrace_symbols_fd */
+#if HAVE_EXECINFO_H
+#include <execinfo.h>
+#endif /* HAVE_EXECINFO_H */
+
 #endif /* _SQUID_LINUX */
 
 SQUIDCEXTERN void (*failure_notify) (const char *);
@@ -335,7 +342,7 @@
     }
 
 #endif /* _SQUID_HPUX_ */
-#ifdef _SQUID_SOLARIS_
+#if defined(_SQUID_SOLARIS_) && HAVE_LIBOPCOM_STACK
     {				/* get ftp://opcom.sun.ca/pub/tars/opcom_stack.tar.gz and */
         extern void opcom_stack_trace(void);	/* link with -lopcom_stack */
         fflush(debug_log);
@@ -344,7 +351,7 @@
         fflush(stdout);
     }
 
-#endif /* _SQUID_SOLARIS_ */
+#endif /* _SQUID_SOLARIS_  and HAVE_LIBOPCOM_STACK */
 #if HAVE_BACKTRACE_SYMBOLS_FD
     {
         static void *(callarray[8192]);

Reply via email to