Platform build fixes for Mac OS X
authorBenjamin Reed <ranger@Sin.local>
Mon, 28 Jan 2008 18:25:56 +0000 (13:25 -0500)
committerJohn (J5) Palmieri <johnp@redhat.com>
Tue, 4 Mar 2008 15:31:28 +0000 (10:31 -0500)
- the Darwin linker does not understand the -z option; wrap it in
  a check for $with_gnu_ld.
- environ is only available at runtime, so you need to make a
  reference to _NSGetEnviron instead for symbols to resolve properly.

configure.in

index 53fa59e..bb28708 100644 (file)
@@ -214,7 +214,9 @@ if test "x$GCC" = "xyes"; then
   *[\ \        ]-fPIC[\ \      ]*) ;;
   *) if cc_supports_flag -fPIC; then
         PIC_CFLAGS="-fPIC"
-        PIC_LDFLAGS="-Wl,-z,relro"
+        if [ "x$with_gnu_ld" = "xyes" ]; then
+           PIC_LDFLAGS="-Wl,-z,relro"
+        fi
      fi
      ;;
   esac
@@ -223,7 +225,11 @@ if test "x$GCC" = "xyes"; then
   *[\ \        ]-fPIE[\ \      ]*) ;;
   *) if cc_supports_flag -fPIE; then
         PIE_CFLAGS="-fPIE"
-        PIE_LDFLAGS="-pie -Wl,-z,relro"
+        if [ "x$with_gnu_ld" = "xyes" ]; then
+           PIE_LDFLAGS="-pie -Wl,-z,relro"
+        else
+           PIE_LDFLAGS="-pie"
+        fi
      fi
      ;;
   esac
@@ -1273,6 +1279,18 @@ AC_SUBST(DBUS_SESSION_SOCKET_DIR)
 
 AC_DEFINE_UNQUOTED(DBUS_UNIX, "1", [Defined on UNIX and Linux systems and not on Windows])
 
+# darwin needs this to initialize the environment
+AC_CHECK_HEADERS(crt_externs.h)
+AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
+AH_VERBATIM(_DARWIN_ENVIRON,
+[
+#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
+# include <sys/time.h>
+# include <crt_externs.h>
+# define environ (*_NSGetEnviron())
+#endif
+])
+
 AC_OUTPUT([
 Doxyfile
 dbus/dbus-arch-deps.h