[PATCH] 3.1: Fix build issues on opensolaris-sparc

View: New views
2 Messages — Rating Filter:   Alert me  

[PATCH] 3.1: Fix build issues on opensolaris-sparc

by Kinkie :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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

[squid-3.1-osol-build.patch]

=== modified file 'configure.in'
--- configure.in 2009-10-27 05:24:36 +0000
+++ configure.in 2009-11-02 10:29:24 +0000
@@ -2520,6 +2520,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-10-29 10:50:27 +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-10-29 09:01:27 +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-10-29 20:02:45 +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-10-28 13:15:54 +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-08-19 05:48:13 +0000
+++ src/tools.cc 2009-10-29 16:05:51 +0000
@@ -45,6 +45,11 @@
 #include <sys/prctl.h>
 #endif
 
+/* needed on Opensolaris for backtrace_symbols_fd */
+#if HAVE_EXECINFO_H
+#include <execinfo.h>
+#endif /* HAVE_EXECINFO_H */
+
 #define DEAD_MSG "\
 The Squid Cache (version %s) died.\n\
 \n\
@@ -335,7 +340,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 +349,7 @@
         fflush(stdout);
     }
 
-#endif /* _SQUID_SOLARIS_ */
+#endif /* _SQUID_SOLARIS_  and HAVE_LIBOPCOM_STACK */
 #if HAVE_BACKTRACE_SYMBOLS_FD
     {
         static void *(callarray[8192]);



Re: [PATCH] 3.1: Fix build issues on opensolaris-sparc

by Kinkie :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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 <gkinkie@...> 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

[squid-3.1-osol-build-v2.patch]

=== 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]);