summaryrefslogtreecommitdiff
path: root/www/iridium/files/patch-base_debug_proc__maps__linux.cc
diff options
context:
space:
mode:
authorRene Ladan <rene@FreeBSD.org>2021-01-02 12:28:34 +0000
committerRene Ladan <rene@FreeBSD.org>2021-01-02 12:28:34 +0000
commit58083a596736902f0b7c0eaf4c9affda7d7edbb5 (patch)
treeb79332244517c33996a0893e38498ffc48c36dda /www/iridium/files/patch-base_debug_proc__maps__linux.cc
parentmultimedia/gtk-youtube-viewer: update 3.8.0 -> 3.8.1 (diff)
Remove a few expired ports depending on Python 2.7:
2020-12-31 www/iridium: Uses Python 2.7 which is EOLed upstream 2020-12-31 editors/atom: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/electron4: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/electron5: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/electron6: Uses Python 2.7 which is EOLed upstream
Diffstat (limited to 'www/iridium/files/patch-base_debug_proc__maps__linux.cc')
-rw-r--r--www/iridium/files/patch-base_debug_proc__maps__linux.cc141
1 files changed, 0 insertions, 141 deletions
diff --git a/www/iridium/files/patch-base_debug_proc__maps__linux.cc b/www/iridium/files/patch-base_debug_proc__maps__linux.cc
deleted file mode 100644
index 21024cb210a8..000000000000
--- a/www/iridium/files/patch-base_debug_proc__maps__linux.cc
+++ /dev/null
@@ -1,141 +0,0 @@
---- base/debug/proc_maps_linux.cc.orig 2020-03-16 18:39:41 UTC
-+++ base/debug/proc_maps_linux.cc
-@@ -12,7 +12,7 @@
- #include "base/strings/string_split.h"
- #include "build/build_config.h"
-
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_ANDROID)
- #include <inttypes.h>
- #endif
-
-@@ -28,6 +28,11 @@
- namespace base {
- namespace debug {
-
-+#if defined(OS_BSD)
-+const char kProcSelfMapsPath[] = "/proc/curproc/map";
-+#else
-+const char kProcSelfMapsPath[] = "/proc/self/maps";
-+
- // Scans |proc_maps| starting from |pos| returning true if the gate VMA was
- // found, otherwise returns false.
- static bool ContainsGateVMA(std::string* proc_maps, size_t pos) {
-@@ -43,15 +48,16 @@ static bool ContainsGateVMA(std::string* proc_maps, si
- return false;
- #endif
- }
-+#endif
-
- bool ReadProcMaps(std::string* proc_maps) {
- // seq_file only writes out a page-sized amount on each call. Refer to header
- // file for details.
- const long kReadSize = sysconf(_SC_PAGESIZE);
-
-- base::ScopedFD fd(HANDLE_EINTR(open("/proc/self/maps", O_RDONLY)));
-+ base::ScopedFD fd(HANDLE_EINTR(open(kProcSelfMapsPath, O_RDONLY)));
- if (!fd.is_valid()) {
-- DPLOG(ERROR) << "Couldn't open /proc/self/maps";
-+ DPLOG(ERROR) << "Couldn't open " << kProcSelfMapsPath;
- return false;
- }
- proc_maps->clear();
-@@ -65,7 +71,7 @@ bool ReadProcMaps(std::string* proc_maps) {
-
- ssize_t bytes_read = HANDLE_EINTR(read(fd.get(), buffer, kReadSize));
- if (bytes_read < 0) {
-- DPLOG(ERROR) << "Couldn't read /proc/self/maps";
-+ DPLOG(ERROR) << "Couldn't read " << kProcSelfMapsPath;
- proc_maps->clear();
- return false;
- }
-@@ -76,6 +82,7 @@ bool ReadProcMaps(std::string* proc_maps) {
- if (bytes_read == 0)
- break;
-
-+#if !defined(OS_BSD)
- // The gate VMA is handled as a special case after seq_file has finished
- // iterating through all entries in the virtual memory table.
- //
-@@ -86,6 +93,7 @@ bool ReadProcMaps(std::string* proc_maps) {
- // Avoid this by searching for the gate VMA and breaking early.
- if (ContainsGateVMA(proc_maps, pos))
- break;
-+#endif
- }
-
- return true;
-@@ -114,10 +122,32 @@ bool ParseProcMaps(const std::string& input,
- MappedMemoryRegion region;
- const char* line = lines[i].c_str();
- char permissions[5] = {'\0'}; // Ensure NUL-terminated string.
-+ int path_index = 0;
-+
-+#if defined(OS_BSD)
-+ if (lines[i].empty())
-+ continue;
-+
-+
-+ char cow;
-+
-+ // Format:
-+ //
-+ // start end resident private_resident obj perms ref_count shadow_count flags cow needs_copy type fullpath cred ruid
-+ // 0x200000 0x202000 2 6 0xfffff80005be9000 r-- 3 1 0x1000 COW NC vnode /bin/cat NCH -1
-+ //
-+ if (sscanf(line, "%" SCNxPTR " %" SCNxPTR " %*ld %*ld %*llx %3c %*d %*d %*x %c%*s %*s %*s %n",
-+ &region.start, &region.end, permissions, &cow, &path_index) < 4) {
-+ DPLOG(WARNING) << "sscanf failed for line: " << line;
-+ return false;
-+ }
-+
-+ const char* fullpath = line + path_index;
-+ const char* cred = strchr(fullpath, ' ');
-+#else
- uint8_t dev_major = 0;
- uint8_t dev_minor = 0;
- long inode = 0;
-- int path_index = 0;
-
- // Sample format from man 5 proc:
- //
-@@ -133,6 +163,7 @@ bool ParseProcMaps(const std::string& input,
- DPLOG(WARNING) << "sscanf failed for line: " << line;
- return false;
- }
-+#endif
-
- region.permissions = 0;
-
-@@ -151,14 +182,31 @@ bool ParseProcMaps(const std::string& input,
- else if (permissions[2] != '-')
- return false;
-
-+#if defined(OS_BSD)
-+ if (cow == 'C') {
-+ region.permissions |= MappedMemoryRegion::PRIVATE;
-+ } else if (cow != 'N') {
-+ DPLOG(WARNING) << "unknown value for COW in line " << line << ": " << cow;
-+ return false;
-+ }
-+#else
- if (permissions[3] == 'p')
- region.permissions |= MappedMemoryRegion::PRIVATE;
- else if (permissions[3] != 's' && permissions[3] != 'S') // Shared memory.
- return false;
-+#endif
-
- // Pushing then assigning saves us a string copy.
- regions.push_back(region);
-+#if defined(OS_BSD)
-+ if (cred != nullptr) {
-+ regions.back().path.assign(line + path_index, cred - fullpath);
-+ } else {
-+ regions.back().path.assign(line + path_index);
-+ }
-+#else
- regions.back().path.assign(line + path_index);
-+#endif
- }
-
- regions_out->swap(regions);