mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 17:32:19 +00:00
Add a new abstraction, SysConfig for platform independent system
configuration calls. Right now this just contains PreventCoreFiles so that bugpoint can by platform independent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16124 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d19e2901c1
commit
387e5ec502
27
lib/System/AIX/SysConfig.cpp
Normal file
27
lib/System/AIX/SysConfig.cpp
Normal file
@ -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
|
27
lib/System/Cygwin/SysConfig.cpp
Normal file
27
lib/System/Cygwin/SysConfig.cpp
Normal file
@ -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
|
27
lib/System/Darwin/SysConfig.cpp
Normal file
27
lib/System/Darwin/SysConfig.cpp
Normal file
@ -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
|
27
lib/System/Linux/SysConfig.cpp
Normal file
27
lib/System/Linux/SysConfig.cpp
Normal file
@ -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
|
27
lib/System/SunOS/SysConfig.cpp
Normal file
27
lib/System/SunOS/SysConfig.cpp
Normal file
@ -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
|
29
lib/System/SysConfig.cpp
Normal file
29
lib/System/SysConfig.cpp
Normal file
@ -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
|
35
lib/System/Unix/SysConfig.cpp
Normal file
35
lib/System/Unix/SysConfig.cpp
Normal file
@ -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…
x
Reference in New Issue
Block a user