forked from OSchip/llvm-project
Add a new abstraction, SysConfig for platform independent system
configuration calls. Right now this just contains PreventCoreFiles so that bugpoint can by platform independent. llvm-svn: 16124
This commit is contained in:
parent
b84f0be5b1
commit
4f48470d84
|
@ -0,0 +1,27 @@
|
|||
//===- AIX/SysConfig.cpp - AIX SysConfig Implementation ---------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file was developed by Reid Spencer and is distributed under the
|
||||
// University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file provides the AIX specific implementation of the SysConfig class.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// Include the generic unix implementation
|
||||
#include "../Unix/SysConfig.cpp"
|
||||
|
||||
namespace llvm {
|
||||
using namespace sys;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//=== WARNING: Implementation here must contain only AIX specific code
|
||||
//=== and must not be generic UNIX code (see ../Unix/SysConfig.cpp)
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
}
|
||||
|
||||
// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
|
|
@ -0,0 +1,27 @@
|
|||
//===- Cygwin/SysConfig.cpp - Cygwin SysConfig Implementation ---*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file was developed by Reid Spencer and is distributed under the
|
||||
// University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file provides the Cygwin specific implementation of the SysConfig class.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// Include the generic unix implementation
|
||||
#include "../Unix/SysConfig.cpp"
|
||||
|
||||
namespace llvm {
|
||||
using namespace sys;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//=== WARNING: Implementation here must contain only Cygwin specific code
|
||||
//=== and must not be generic UNIX code (see ../Unix/SysConfig.cpp)
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
}
|
||||
|
||||
// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
|
|
@ -0,0 +1,27 @@
|
|||
//===- Darwin/SysConfig.cpp - Darwin SysConfig Implementation ---*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file was developed by Reid Spencer and is distributed under the
|
||||
// University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file provides the Darwin specific implementation of the SysConfig class.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// Include the generic unix implementation
|
||||
#include "../Unix/SysConfig.cpp"
|
||||
|
||||
namespace llvm {
|
||||
using namespace sys;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//=== WARNING: Implementation here must contain only Darwin specific code
|
||||
//=== and must not be generic UNIX code (see ../Unix/SysConfig.cpp)
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
}
|
||||
|
||||
// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
|
|
@ -0,0 +1,27 @@
|
|||
//===- Linux/SysConfig.cpp - Linux SysConfig Implementation -----*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file was developed by Reid Spencer and is distributed under the
|
||||
// University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file provides the Linux specific implementation of the Signals class.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// Include the generic unix implementation
|
||||
#include "../Unix/SysConfig.cpp"
|
||||
|
||||
namespace llvm {
|
||||
using namespace sys;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//=== WARNING: Implementation here must contain only Linux specific code
|
||||
//=== and must not be generic UNIX code (see ../Unix/Signals.cpp)
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
}
|
||||
|
||||
// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
|
|
@ -0,0 +1,27 @@
|
|||
//===- SunOS/SysConfig.cpp - SunOS SysConfig Implementation -----*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file was developed by Reid Spencer and is distributed under the
|
||||
// University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file provides the SunOS specific implementation of the SysConfig class.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// Include the generic unix implementation
|
||||
#include "../Unix/SysConfig.cpp"
|
||||
|
||||
namespace llvm {
|
||||
using namespace sys;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//=== WARNING: Implementation here must contain only SunOS specific code
|
||||
//=== and must not be generic UNIX code (see ../Unix/SysConfig.cpp)
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
}
|
||||
|
||||
// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
|
|
@ -0,0 +1,29 @@
|
|||
//===- SysConfig.cpp - System Configuration Support ---------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file was developed by Reid Spencerand is distributed under the University
|
||||
// of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file defines the operating system independent SysConfig abstraction.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/System/SysConfig.h"
|
||||
|
||||
namespace llvm {
|
||||
using namespace sys;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//=== WARNING: Implementation here must contain only TRULY operating system
|
||||
//=== independent code.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
}
|
||||
|
||||
// Include the platform-specific parts of this class.
|
||||
#include "platform/SysConfig.cpp"
|
||||
|
||||
// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
|
|
@ -0,0 +1,35 @@
|
|||
//===- SysConfig.cpp - Generic UNIX System Configuration --------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file was developed by Reid Spencer and is distributed under the
|
||||
// University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file defines some functions for managing system configuration on Unix
|
||||
// systems.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "Unix.h"
|
||||
#include <sys/resource.h>
|
||||
|
||||
namespace llvm {
|
||||
using namespace sys;
|
||||
|
||||
|
||||
// Some LLVM programs such as bugpoint produce core files as a normal part of
|
||||
// their operation. To prevent the disk from filling up, this configuration item
|
||||
// does what's necessary to prevent their generation.
|
||||
void PreventCoreFiles() {
|
||||
struct rlimit rlim;
|
||||
rlim.rlim_cur = rlim.rlim_max = 0;
|
||||
int res = setrlimit(RLIMIT_CORE, &rlim);
|
||||
if (res != 0)
|
||||
ThrowErrno("Can't prevent core file generation");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
|
|
@ -25,6 +25,7 @@
|
|||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <assert.h>
|
||||
#include <string>
|
||||
|
||||
inline void ThrowErrno(const std::string& prefix) {
|
||||
#if defined __USE_XOPEN2K || defined __USE_MISC
|
||||
|
|
Loading…
Reference in New Issue