13#include <sys/resource.h>
25#include <sys/procfs.h>
57#define GCC_VERSION (__GNUC__ * 10000 \
58 + __GNUC_MINOR__ * 100 \
59 + __GNUC_PATCHLEVEL__)
60#if GCC_VERSION >= 40600
61#if defined(__ARM_PCS_VFP)
67#elif GCC_VERSION < 40500
71#if defined(__ARM_PCS_VFP)
73#elif defined(__ARM_PCS) || defined(__SOFTFP__) || defined(__SOFTFP) || \
77#error "Your version of GCC does not report the FP ABI compiled for." \
78 "Please report it on this issue" \
79 "http://code.google.com/p/v8/issues/detail?id=2140"
89 return new PosixDefaultTimezoneCache();
93 std::vector<SharedLibraryAddress>
result;
94 procfs_mapinfo *mapinfos =
nullptr, *mapinfo;
98 procfs_debuginfo
info;
102 char buf[PATH_MAX + 1];
103 snprintf(buf, PATH_MAX + 1,
"/proc/%d/as", getpid());
105 if ((proc_fd = open(buf, O_RDONLY)) == -1) {
111 if (devctl(proc_fd, DCMD_PROC_MAPINFO,
nullptr, 0, &num) != EOK) {
117 reinterpret_cast<procfs_mapinfo*
>(malloc(num *
sizeof(procfs_mapinfo)));
118 if (mapinfos ==
nullptr) {
124 if (devctl(proc_fd, DCMD_PROC_PAGEDATA, mapinfos,
125 num *
sizeof(procfs_mapinfo), &num) != EOK) {
131 for (
i = 0;
i < num;
i++) {
132 mapinfo = mapinfos +
i;
133 if (mapinfo->flags & MAP_ELF) {
134 map.info.vaddr = mapinfo->vaddr;
135 if (devctl(proc_fd, DCMD_PROC_MAPDEBUG, &map,
sizeof(map), 0) != EOK) {
138 result.push_back(SharedLibraryAddress(map.info.path, mapinfo->vaddr,
139 mapinfo->vaddr + mapinfo->size));
static void SignalCodeMovingGC()
static bool ArmUsingHardFloat()
static std::vector< SharedLibraryAddress > GetSharedLibraryAddresses()
static TimezoneCache * CreateTimezoneCache()
static std::optional< MemoryRange > GetFirstFreeMemoryRangeWithin(Address boundary_start, Address boundary_end, size_t minimum_size, size_t alignment)
static void AdjustSchedulingParams()
Handle< SharedFunctionInfo > info
ZoneVector< RpoNumber > & result
static const pthread_t kNoThread