diff --git a/configure.ac b/configure.ac index b6d27d18b..1af433377 100644 --- a/configure.ac +++ b/configure.ac @@ -66,6 +66,7 @@ AC_LIBTOOL_WIN32_DLL dnl libtool setup AM_PROG_LIBTOOL +AC_MSG_CHECKING([if we need -no-undefined]) case $host in *-*-cygwin | *-*-mingw* | *-*-pw32*) need_no_undefined=yes @@ -74,9 +75,23 @@ case $host in need_no_undefined=no ;; esac - +AC_MSG_RESULT($need_no_undefined) AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes) +AC_MSG_CHECKING([if we need -mimpure-text]) +case $host in + *-*-solaris2*) + if test "$GCC" = "yes"; then + mimpure="yes" + fi + ;; + *) + mimpure=no + ;; +esac +AC_MSG_RESULT($mimpure) +AM_CONDITIONAL(MIMPURE, test x$mimpure = xyes) + dnl The install stuff has already been taken care of by the automake stuff dnl AC_PROG_INSTALL AC_PROG_MAKE_SET diff --git a/lib/Makefile.am b/lib/Makefile.am index e09e921a5..0c3d8a24a 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -54,15 +54,19 @@ VERSION=-version-info 2:2:0 if NO_UNDEFINED # The -no-undefined flag is CRUCIAL for this to build fine on Cygwin. UNDEF = -no-undefined -else -UNDEF = +endif + +if MIMPURE +# This is for gcc on Solaris (8+ ?) to avoid "relocations remain against +# allocatable but non-writable sections" problems. +MIMPURE = -mimpure-text endif if ARES ARESLIB = -lares -L$(top_builddir)/ares endif -libcurl_la_LDFLAGS = $(UNDEF) $(VERSION) $(ARESLIB) +libcurl_la_LDFLAGS = $(UNDEF) $(VERSION) $(ARESLIB) $(MIMPURE) libcurl_la_SOURCES = arpa_telnet.h file.c netrc.h timeval.c \ base64.c file.h hostip.c progress.c timeval.h base64.h formdata.c \