mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:39:47 +00:00
[Solaris] replace Solaris.h hack with a set of better hacks
Summary: Got rid of unwieldy -include Solaris.h portability solution, replacing it with interposed header and moving endian defines into Host.h. Fixes PR28370. Reviewers: joerg, alekseyshl, mgorny Reviewed By: joerg Subscribers: llvm-commits, mgorny, ro, krytarowski Patch by Fedor Sergeev. Differential Revision: https://reviews.llvm.org/D3413 llvm-svn: 306002
This commit is contained in:
parent
6694e4a6b1
commit
e9a30e9c44
@ -804,7 +804,8 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
|
||||
endif(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
|
||||
|
||||
if( ${CMAKE_SYSTEM_NAME} MATCHES SunOS )
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include llvm/Support/Solaris.h")
|
||||
# special hack for Solaris to handle crazy system sys/regset.h
|
||||
include_directories("${LLVM_MAIN_INCLUDE_DIR}/llvm/Support/Solaris")
|
||||
endif( ${CMAKE_SYSTEM_NAME} MATCHES SunOS )
|
||||
|
||||
# Make sure we don't get -rdynamic in every binary. For those that need it,
|
||||
|
@ -21,6 +21,16 @@
|
||||
#include <endian.h>
|
||||
#elif defined(_AIX)
|
||||
#include <sys/machine.h>
|
||||
#elif defined(__sun)
|
||||
/* Solaris provides _BIG_ENDIAN/_LITTLE_ENDIAN selector in sys/types.h */
|
||||
#include <sys/types.h>
|
||||
#define BIG_ENDIAN 4321
|
||||
#define LITTLE_ENDIAN 1234
|
||||
#if defined(_BIG_ENDIAN)
|
||||
#define BYTE_ORDER BIG_ENDIAN
|
||||
#else
|
||||
#define BYTE_ORDER LITTLE_ENDIAN
|
||||
#endif
|
||||
#else
|
||||
#if !defined(BYTE_ORDER) && !defined(LLVM_ON_WIN32)
|
||||
#include <machine/endian.h>
|
||||
|
@ -1,4 +1,4 @@
|
||||
/*===- llvm/Support/Solaris.h ------------------------------------*- C++ -*-===*
|
||||
/*===- llvm/Support/Solaris/sys/regset.h ------------------------*- C++ -*-===*
|
||||
*
|
||||
* The LLVM Compiler Infrastructure
|
||||
*
|
||||
@ -7,24 +7,14 @@
|
||||
*
|
||||
*===----------------------------------------------------------------------===*
|
||||
*
|
||||
* This file contains portability fixes for Solaris hosts.
|
||||
* This file works around excessive name space pollution from the system header
|
||||
* on Solaris hosts.
|
||||
*
|
||||
*===----------------------------------------------------------------------===*/
|
||||
|
||||
#ifndef LLVM_SUPPORT_SOLARIS_H
|
||||
#define LLVM_SUPPORT_SOLARIS_H
|
||||
#ifndef LLVM_SUPPORT_SOLARIS_SYS_REGSET_H
|
||||
|
||||
#include <sys/regset.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Solaris doesn't have endian.h. SPARC is the only supported big-endian ISA. */
|
||||
#define BIG_ENDIAN 4321
|
||||
#define LITTLE_ENDIAN 1234
|
||||
#if defined(__sparc) || defined(__sparc__)
|
||||
#define BYTE_ORDER BIG_ENDIAN
|
||||
#else
|
||||
#define BYTE_ORDER LITTLE_ENDIAN
|
||||
#endif
|
||||
#include_next <sys/regset.h>
|
||||
|
||||
#undef CS
|
||||
#undef DS
|
@ -275,9 +275,6 @@ module LLVM_Utils {
|
||||
umbrella "Support"
|
||||
module * { export * }
|
||||
|
||||
// Exclude this; it's only included on Solaris.
|
||||
exclude header "Support/Solaris.h"
|
||||
|
||||
// Exclude this; it's fundamentally non-modular.
|
||||
exclude header "Support/PluginLoader.h"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user