1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00

Add support for the OpenBSD for Bitrig.

Patch by David Hill.

llvm-svn: 161344
This commit is contained in:
Eric Christopher 2012-08-06 20:52:18 +00:00
parent 03f8384c4e
commit f5132794cd
11 changed files with 30 additions and 20 deletions

View File

@ -206,6 +206,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
exit ;; exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
exit ;;
*:ekkoBSD:*:*) *:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;; exit ;;

View File

@ -1560,7 +1560,7 @@ EOF
# These systems don't actually have a C library (as such) # These systems don't actually have a C library (as such)
test "X$arg" = "X-lc" && continue test "X$arg" = "X-lc" && continue
;; ;;
*-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
# Do not include libc due to us having libc/libc_r. # Do not include libc due to us having libc/libc_r.
test "X$arg" = "X-lc" && continue test "X$arg" = "X-lc" && continue
;; ;;
@ -1580,7 +1580,7 @@ EOF
esac esac
elif test "X$arg" = "X-lc_r"; then elif test "X$arg" = "X-lc_r"; then
case $host in case $host in
*-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | -*-*-bitrig*)
# Do not include libc_r directly, use -pthread flag. # Do not include libc_r directly, use -pthread flag.
continue continue
;; ;;
@ -3464,7 +3464,7 @@ EOF
*-*-netbsd*) *-*-netbsd*)
# Don't link with libc until the a.out ld.so is fixed. # Don't link with libc until the a.out ld.so is fixed.
;; ;;
*-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
# Do not include libc due to us having libc/libc_r. # Do not include libc due to us having libc/libc_r.
;; ;;
*-*-sco3.2v5* | *-*-sco5v6*) *-*-sco3.2v5* | *-*-sco5v6*)

View File

@ -176,7 +176,7 @@ old_postuninstall_cmds=
if test -n "$RANLIB"; then if test -n "$RANLIB"; then
case $host_os in case $host_os in
openbsd*) openbsd* | bitrig*)
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
;; ;;
*) *)
@ -729,7 +729,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
lt_cv_sys_max_cmd_len=8192; lt_cv_sys_max_cmd_len=8192;
;; ;;
netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) netbsd* | freebsd* | openbsd* | darwin* | dragonfly* | bitrig*)
# This has been around since 386BSD, at least. Likely further. # This has been around since 386BSD, at least. Likely further.
if test -x /sbin/sysctl; then if test -x /sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@ -1631,7 +1631,7 @@ nto-qnx*)
shlibpath_overrides_runpath=yes shlibpath_overrides_runpath=yes
;; ;;
openbsd*) openbsd* | bitrig*)
version_type=sunos version_type=sunos
sys_lib_dlsearch_path_spec="/usr/lib" sys_lib_dlsearch_path_spec="/usr/lib"
need_lib_prefix=no need_lib_prefix=no
@ -3382,7 +3382,7 @@ case $host_os in
# C++ shared libraries are fairly broken # C++ shared libraries are fairly broken
_LT_AC_TAGVAR(ld_shlibs, $1)=no _LT_AC_TAGVAR(ld_shlibs, $1)=no
;; ;;
openbsd*) openbsd* | bitrig*)
_LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_direct, $1)=yes
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
@ -6003,7 +6003,7 @@ _LT_EOF
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
;; ;;
openbsd*) openbsd* | bitrig*)
_LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_direct, $1)=yes
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then

2
configure vendored
View File

@ -8947,7 +8947,7 @@ nto-qnx*)
shlibpath_overrides_runpath=yes shlibpath_overrides_runpath=yes
;; ;;
openbsd*) openbsd* | bitrig*)
version_type=sunos version_type=sunos
sys_lib_dlsearch_path_spec="/usr/lib" sys_lib_dlsearch_path_spec="/usr/lib"
need_lib_prefix=no need_lib_prefix=no

View File

@ -98,7 +98,8 @@ public:
Minix, Minix,
RTEMS, RTEMS,
NativeClient, NativeClient,
CNK // BG/P Compute-Node Kernel CNK, // BG/P Compute-Node Kernel
Bitrig
}; };
enum EnvironmentType { enum EnvironmentType {
UnknownEnvironment, UnknownEnvironment,

View File

@ -59,7 +59,8 @@ MutexImpl::MutexImpl( bool recursive)
errorcode = pthread_mutexattr_settype(&attr, kind); errorcode = pthread_mutexattr_settype(&attr, kind);
assert(errorcode == 0); assert(errorcode == 0);
#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__DragonFly__) #if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && \
!defined(__DragonFly__) && !defined(__Bitrig__)
// Make it a process local mutex // Make it a process local mutex
errorcode = pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_PRIVATE); errorcode = pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_PRIVATE);
assert(errorcode == 0); assert(errorcode == 0);

View File

@ -124,6 +124,7 @@ const char *Triple::getOSTypeName(OSType Kind) {
case RTEMS: return "rtems"; case RTEMS: return "rtems";
case NativeClient: return "nacl"; case NativeClient: return "nacl";
case CNK: return "cnk"; case CNK: return "cnk";
case Bitrig: return "bitrig";
} }
llvm_unreachable("Invalid OSType"); llvm_unreachable("Invalid OSType");
@ -293,6 +294,7 @@ static Triple::OSType parseOS(StringRef OSName) {
.StartsWith("rtems", Triple::RTEMS) .StartsWith("rtems", Triple::RTEMS)
.StartsWith("nacl", Triple::NativeClient) .StartsWith("nacl", Triple::NativeClient)
.StartsWith("cnk", Triple::CNK) .StartsWith("cnk", Triple::CNK)
.StartsWith("bitrig", Triple::Bitrig)
.Default(Triple::UnknownOS); .Default(Triple::UnknownOS);
} }

View File

@ -260,7 +260,7 @@ Path::GetCurrentDirectory() {
return Path(pathname); return Path(pathname);
} }
#if defined(__FreeBSD__) || defined (__NetBSD__) || \ #if defined(__FreeBSD__) || defined (__NetBSD__) || defined(__Bitrig__) || \
defined(__OpenBSD__) || defined(__minix) || defined(__FreeBSD_kernel__) defined(__OpenBSD__) || defined(__minix) || defined(__FreeBSD_kernel__)
static int static int
test_dir(char buf[PATH_MAX], char ret[PATH_MAX], test_dir(char buf[PATH_MAX], char ret[PATH_MAX],
@ -329,7 +329,7 @@ Path Path::GetMainExecutable(const char *argv0, void *MainAddr) {
if (realpath(exe_path, link_path)) if (realpath(exe_path, link_path))
return Path(link_path); return Path(link_path);
} }
#elif defined(__FreeBSD__) || defined (__NetBSD__) || \ #elif defined(__FreeBSD__) || defined (__NetBSD__) || defined(__Bitrig__) || \
defined(__OpenBSD__) || defined(__minix) || defined(__FreeBSD_kernel__) defined(__OpenBSD__) || defined(__minix) || defined(__FreeBSD_kernel__)
char exe_path[PATH_MAX]; char exe_path[PATH_MAX];

View File

@ -20,9 +20,10 @@
#ifdef HAVE_SYS_RESOURCE_H #ifdef HAVE_SYS_RESOURCE_H
#include <sys/resource.h> #include <sys/resource.h>
#endif #endif
// DragonFly BSD has deprecated <malloc.h> for <stdlib.h> instead, // DragonFlyBSD, OpenBSD, and Bitrig have deprecated <malloc.h> for
// Unix.h includes this for us already. // <stdlib.h> instead. Unix.h includes this for us already.
#if defined(HAVE_MALLOC_H) && !defined(__DragonFly__) #if defined(HAVE_MALLOC_H) && !defined(__DragonFly__) && \
!defined(__OpenBSD__) && !defined(__Bitrig__)
#include <malloc.h> #include <malloc.h>
#endif #endif
#ifdef HAVE_MALLOC_MALLOC_H #ifdef HAVE_MALLOC_MALLOC_H

View File

@ -91,9 +91,10 @@ X86ELFMCAsmInfo::X86ELFMCAsmInfo(const Triple &T) {
// Exceptions handling // Exceptions handling
ExceptionsType = ExceptionHandling::DwarfCFI; ExceptionsType = ExceptionHandling::DwarfCFI;
// OpenBSD has buggy support for .quad in 32-bit mode, just split into two // OpenBSD and Bitrig have buggy support for .quad in 32-bit mode, just split
// .words. // into two .words.
if (T.getOS() == Triple::OpenBSD && T.getArch() == Triple::x86) if ((T.getOS() == Triple::OpenBSD || T.getOS() == Triple::Bitrig) &&
T.getArch() == Triple::x86)
Data64bitsDirective = 0; Data64bitsDirective = 0;
} }

View File

@ -63,7 +63,7 @@ ifeq ($(HOST_OS),Darwin)
endif endif
endif endif
ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux FreeBSD OpenBSD GNU)) ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux FreeBSD OpenBSD GNU Bitrig))
# Include everything from the .a's into the shared library. # Include everything from the .a's into the shared library.
LLVMLibsOptions := -Wl,--whole-archive $(LLVMLibsOptions) \ LLVMLibsOptions := -Wl,--whole-archive $(LLVMLibsOptions) \
-Wl,--no-whole-archive -Wl,--no-whole-archive