summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/replace/libreplace_ld.m455
1 files changed, 55 insertions, 0 deletions
diff --git a/source3/lib/replace/libreplace_ld.m4 b/source3/lib/replace/libreplace_ld.m4
index 8d7d3d7ebb..d3d3f9464f 100644
--- a/source3/lib/replace/libreplace_ld.m4
+++ b/source3/lib/replace/libreplace_ld.m4
@@ -8,3 +8,58 @@ AC_LINK_IFELSE([ int main() { return 0; } ],
AC_SUBST(LD_EXPORT_DYNAMIC)
LDFLAGS="$saved_LDFLAGS"
])
+
+AC_DEFUN([AC_LD_PICFLAG],
+[
+case "$host_os" in
+ *linux*)
+ PICFLAG="-fPIC"
+ ;;
+ *solaris*)
+ if test "${GCC}" = "yes"; then
+ PICFLAG="-fPIC"
+ else
+ PICFLAG="-KPIC"
+ fi
+ ;;
+ *sunos*)
+ PICFLAG="-KPIC" # Is this correct for SunOS
+ ;;
+ *netbsd* | *freebsd* | *dragonfly* )
+ PICFLAG="-fPIC -DPIC"
+ ;;
+ *openbsd*)
+ PICFLAG="-fPIC"
+ ;;
+ *irix*)
+ if test "${GCC}" = "yes"; then
+ PICFLAG="-fPIC"
+ else
+ PICFLAG="-KPIC"
+ fi
+ ;;
+ *aix*)
+ # as AIX code is always position independent...
+ PICFLAG="-O2"
+ ;;
+ *hpux*)
+ if test $ac_cv_prog_cc_Ae = yes; then
+ PICFLAG="+z +ESnolit"
+ elif test "${GCC}" = "yes"; then
+ PICFLAG="-fPIC"
+ fi
+ if test "$host_cpu" = "ia64"; then
+ PICFLAG="+z"
+ fi
+ ;;
+ *osf*)
+ PICFLAG="-fPIC"
+ ;;
+ *unixware*)
+ PICFLAG="-KPIC"
+ ;;
+ *darwin*)
+ ;;
+esac
+AC_SUBST(PICFLAG)
+])