--- configure.ac.orig +++ configure.ac @@ -554,6 +554,11 @@ esac ;; + *openbsd*) + AC_MSG_RESULT([ok (${host_os})]) + VGCONF_OS="openbsd" + ;; + solaris2.11*) AC_MSG_RESULT([ok (${host_os})]) VGCONF_OS="solaris" @@ -802,6 +807,28 @@ valt_load_address_sec_inner="0x28000000" AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})]) ;; + x86-openbsd) + VGCONF_ARCH_PRI="x86" + VGCONF_ARCH_SEC="" + VGCONF_PLATFORM_PRI_CAPS="X86_OPENBSD" + VGCONF_PLATFORM_SEC_CAPS="" + valt_load_address_pri_norml="0x38000000" + valt_load_address_pri_inner="0x28000000" + valt_load_address_sec_norml="0xUNSET" + valt_load_address_sec_inner="0xUNSET" + AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})]) + ;; + amd64-openbsd) + VGCONF_ARCH_PRI="amd64" + VGCONF_ARCH_SEC="" + VGCONF_PLATFORM_PRI_CAPS="AMD64_OPENBSD" + VGCONF_PLATFORM_SEC_CAPS="" + valt_load_address_pri_norml="0x38000000" + valt_load_address_pri_inner="0x28000000" + valt_load_address_sec_norml="0xUNSET" + valt_load_address_sec_inner="0xUNSET" + AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})]) + ;; # Darwin gets identified as 32-bit even when it supports 64-bit. # (Not sure why, possibly because 'uname' returns "i386"?) Just about # all Macs support both 32-bit and 64-bit, so we just build both. If @@ -1004,6 +1031,8 @@ -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_LINUX \ -o x$VGCONF_PLATFORM_PRI_CAPS = xX86_FREEBSD \ -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_FREEBSD \ + -o x$VGCONF_PLATFORM_PRI_CAPS = xX86_OPENBSD \ + -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_OPENBSD \ -o x$VGCONF_PLATFORM_PRI_CAPS = xX86_DARWIN \ -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_DARWIN \ -o x$VGCONF_PLATFORM_PRI_CAPS = xX86_SOLARIS \ @@ -1011,6 +1040,7 @@ AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_AMD64, test x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_LINUX \ -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_FREEBSD \ + -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_OPENBSD \ -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_DARWIN \ -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_SOLARIS ) AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_PPC32, @@ -1068,6 +1098,11 @@ -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_FREEBSD) AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_AMD64_FREEBSD, test x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_FREEBSD) +AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_X86_OPENBSD, + test x$VGCONF_PLATFORM_PRI_CAPS = xX86_OPENBSD \ + -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_OPENBSD) +AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_AMD64_OPENBSD, + test x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_OPENBSD) AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_X86_DARWIN, test x$VGCONF_PLATFORM_PRI_CAPS = xX86_DARWIN \ -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_DARWIN) @@ -1098,6 +1133,9 @@ AM_CONDITIONAL(VGCONF_OS_IS_FREEBSD, test x$VGCONF_PLATFORM_PRI_CAPS = xX86_FREEBSD \ -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_FREEBSD) +AM_CONDITIONAL(VGCONF_OS_IS_OPENBSD, + test x$VGCONF_PLATFORM_PRI_CAPS = xX86_OPENBSD \ + -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_OPENBSD) AM_CONDITIONAL(VGCONF_OS_IS_DARWIN, test x$VGCONF_PLATFORM_PRI_CAPS = xX86_DARWIN \ -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_DARWIN) @@ -1236,6 +1274,14 @@ ], GLIBC_VERSION="freebsd") +AC_EGREP_CPP([OPENBSD_LIBC], [ +#include +#if defined(__OpenBSD__) + OPENBSD_LIBC +#endif +], +GLIBC_VERSION="openbsd") + # not really a version check AC_EGREP_CPP([BIONIC_LIBC], [ #if defined(__ANDROID__) @@ -1332,6 +1378,11 @@ AC_DEFINE([FREEBSD_LIBC], 1, [Define to 1 if you're using FreeBSD]) # DEFAULT_SUPP set by kernel version check above. ;; + openbsd) + AC_MSG_RESULT(OpenBSD) + AC_DEFINE([OPENBSD_LIBC], 1, [Define to 1 if you're using OpenBSD]) + # DEFAULT_SUPP set by kernel version check above. + ;; bionic) AC_MSG_RESULT(Bionic) AC_DEFINE([BIONIC_LIBC], 1, [Define to 1 if you're using Bionic]) @@ -4897,6 +4948,7 @@ mflag_primary= if test x$VGCONF_PLATFORM_PRI_CAPS = xX86_LINUX \ -o x$VGCONF_PLATFORM_PRI_CAPS = xX86_FREEBSD \ + -o x$VGCONF_PLATFORM_PRI_CAPS = xX86_OPENBSD \ -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_LINUX \ -o x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX \ -o x$VGCONF_PLATFORM_PRI_CAPS = xMIPS32_LINUX \ @@ -4905,6 +4957,7 @@ mflag_primary=$FLAG_M32 elif test x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_LINUX \ -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_FREEBSD \ + -o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_OPENBSD \ -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX \ -o x$VGCONF_PLATFORM_PRI_CAPS = xARM64_LINUX \ -o x$VGCONF_PLATFORM_PRI_CAPS = xMIPS64_LINUX \ @@ -4921,7 +4974,8 @@ -o x$VGCONF_PLATFORM_SEC_CAPS = xPPC32_LINUX \ -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_SOLARIS \ -o x$VGCONF_PLATFORM_SEC_CAPS = xMIPS32_LINUX \ - -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_FREEBSD ; then + -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_FREEBSD \ + -o x$VGCONF_PLATFORM_SEC_CAPS = xX86_OPENBSD ; then mflag_secondary=$FLAG_M32 elif test x$VGCONF_PLATFORM_SEC_CAPS = xX86_DARWIN ; then mflag_secondary="$FLAG_M32 -arch i386" @@ -4945,6 +4999,9 @@ AM_COND_IF([VGCONF_OS_IS_FREEBSD], [CFLAGS_MPI="-g -O -fno-omit-frame-pointer -Wall -fpic" LDFLAGS_MPI="-fpic -shared"]) +AM_COND_IF([VGCONF_OS_IS_OPENBSD], + [CFLAGS_MPI="-g -O -fno-omit-frame-pointer -Wall -fpic" + LDFLAGS_MPI="-fpic -shared"]) AM_COND_IF([VGCONF_OS_IS_DARWIN], [CFLAGS_MPI="-g -O -fno-omit-frame-pointer -Wall -dynamic" LDFLAGS_MPI="-dynamic -dynamiclib -all_load"]) @@ -5468,6 +5525,8 @@ [chmod +x coregrind/link_tool_exe_linux]) AC_CONFIG_FILES([coregrind/link_tool_exe_freebsd], [chmod +x coregrind/link_tool_exe_freebsd]) +AC_CONFIG_FILES([coregrind/link_tool_exe_openbsd], + [chmod +x coregrind/link_tool_exe_openbsd]) AC_CONFIG_FILES([coregrind/link_tool_exe_darwin], [chmod +x coregrind/link_tool_exe_darwin]) AC_CONFIG_FILES([coregrind/link_tool_exe_solaris],