File tree Expand file tree Collapse file tree 13 files changed +31
-25
lines changed
Expand file tree Collapse file tree 13 files changed +31
-25
lines changed Original file line number Diff line number Diff line change 77#include " utils/io/file.hpp"
88#include " utils/string_view.hpp"
99
10- #if IS_LINUX && !defined(__CYGWIN__)
10+ #if IS_LINUX && !IS_CYGWIN
1111
1212#include < array>
1313#include < cstdint>
Original file line number Diff line number Diff line change 77#include " utils/span.hpp"
88#include " utils/utils.hpp"
99
10- #if IS_LINUX && !defined(__CYGWIN__)
10+ #if IS_LINUX && !IS_CYGWIN
1111
1212#include < cstdint>
1313#include < string>
Original file line number Diff line number Diff line change 77#include < mutex>
88#include < unordered_map>
99
10- #if (IS_LINUX || IS_APPLE) && !defined(__CYGWIN__)
10+ #if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
1111 #include < unistd.h>
1212 #include < dlfcn.h>
1313 #if IS_APPLE
1414 #include " binary/mach-o.hpp"
1515 #else
1616 #include " binary/elf.hpp"
1717 #endif
18- #elif IS_WINDOWS || defined(__CYGWIN__)
18+ #elif IS_WINDOWS || IS_CYGWIN
1919 #include " binary/pe.hpp"
2020#endif
2121
2222CPPTRACE_BEGIN_NAMESPACE
2323namespace detail {
24- #if IS_LINUX && !defined(__CYGWIN__)
24+ #if IS_LINUX && !IS_CYGWIN
2525 Result<std::uintptr_t , internal_error> get_module_image_base (const std::string& object_path) {
2626 static std::mutex mutex;
2727 std::lock_guard<std::mutex> lock (mutex);
Original file line number Diff line number Diff line change 1111#include < mutex>
1212#include < unordered_map>
1313
14- #if (IS_LINUX || IS_APPLE) && !defined(__CYGWIN__)
14+ #if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
1515 #include < unistd.h>
1616 #include < dlfcn.h>
1717 #if IS_LINUX && (defined(CPPTRACE_HAS_DL_FIND_OBJECT) || defined(CPPTRACE_HAS_DLADDR1))
1818 #include < link.h> // needed for dladdr1's link_map info
1919 #endif
20- #elif IS_WINDOWS || defined(__CYGWIN__)
20+ #elif IS_WINDOWS || IS_CYGWIN
2121 #ifndef WIN32_LEAN_AND_MEAN
2222 #define WIN32_LEAN_AND_MEAN
2323 #endif
2626
2727CPPTRACE_BEGIN_NAMESPACE
2828namespace detail {
29- #if (IS_LINUX || IS_APPLE) && !defined(__CYGWIN__)
29+ #if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
3030 #if defined(CPPTRACE_HAS_DL_FIND_OBJECT) || defined(CPPTRACE_HAS_DLADDR1)
3131 std::string resolve_l_name (const char * l_name) {
3232 if (l_name != nullptr && l_name[0 ] != 0 ) {
Original file line number Diff line number Diff line change 44#include " utils/error.hpp"
55#include " utils/utils.hpp"
66
7- #if IS_WINDOWS || defined(__CYGWIN__)
7+ #if IS_WINDOWS || IS_CYGWIN
88#include < array>
99#include < cstdio>
1010#include < cstring>
@@ -31,13 +31,13 @@ namespace detail {
3131 // https://drive.google.com/file/d/0B3_wGJkuWLytbnIxY1J5WUs4MEk/view?pli=1&resourcekey=0-n5zZ2UW39xVTH8ZSu6C2aQ
3232 // https://0xrick.github.io/win-internals/pe3/
3333 // Endianness should always be little for dos and pe headers
34+ std::FILE* file_ptr;
3435 #ifdef __CYGWIN__
35- std::FILE* file_ptr = std::fopen (object_path.c_str (), " rb" );
36+ file_ptr = std::fopen (object_path.c_str (), " rb" );
3637 if (!file_ptr) {
3738 return internal_error (" Unable to read object file {}" , object_path);
3839 }
3940 #else
40- std::FILE* file_ptr;
4141 errno_t ret = fopen_s (&file_ptr, object_path.c_str (), " rb" );
4242 if (ret != 0 || file_ptr == nullptr ) {
4343 return internal_error (" Unable to read object file {}" , object_path);
Original file line number Diff line number Diff line change 44#include " platform/platform.hpp"
55#include " utils/utils.hpp"
66
7- #if IS_WINDOWS || defined(__CYGWIN__)
7+ #if IS_WINDOWS || IS_CYGWIN
88#include < cstdint>
99#include < string>
1010
Original file line number Diff line number Diff line change @@ -294,7 +294,7 @@ namespace detail {
294294 if (type_info_addr - page_addr + sizeof (void *) > static_cast <unsigned >(page_size)) {
295295 throw internal_error (" pointer crosses page boundaries" );
296296 }
297- #if IS_WINDOWS || defined(__CYGWIN__)
297+ #if IS_WINDOWS || IS_CYGWIN
298298 auto old_protections = mprotect_page_and_return_old_protections (
299299 reinterpret_cast <void *>(page_addr),
300300 page_size,
Original file line number Diff line number Diff line change 1515
1616CPPTRACE_BEGIN_NAMESPACE
1717namespace detail {
18- #if (IS_LINUX || IS_APPLE) && !defined(__CYGWIN__)
18+ #if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
1919 class jit_object_manager {
2020 struct object_entry {
2121 const char * object_start;
@@ -135,7 +135,7 @@ namespace detail {
135135 manager.clear_all_jit_objects ();
136136 }
137137
138- #if (IS_LINUX || IS_APPLE) && !defined(__CYGWIN__)
138+ #if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
139139 optional<jit_object_lookup_result> lookup_jit_object (frame_ptr pc) {
140140 return get_jit_object_manager ().lookup (pc);
141141 }
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ namespace detail {
1313 void unregister_jit_object (const char *);
1414 void clear_all_jit_objects ();
1515
16- #if (IS_LINUX || IS_APPLE) && !defined(__CYGWIN__)
16+ #if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
1717 #if IS_LINUX
1818 using jit_object_type = elf;
1919 #elif IS_APPLE
Original file line number Diff line number Diff line change 55
66#ifndef _MSC_VER
77
8- #if IS_WINDOWS || defined(__CYGWIN__)
8+ #if IS_WINDOWS || IS_CYGWIN
99 #ifndef WIN32_LEAN_AND_MEAN
1010 #define WIN32_LEAN_AND_MEAN
1111 #endif
3131
3232CPPTRACE_BEGIN_NAMESPACE
3333namespace detail {
34- #if IS_WINDOWS || defined(__CYGWIN__)
34+ #if IS_WINDOWS || IS_CYGWIN
3535 // Cygwin uses GCC/Itanium ABI but Cygwin's mprotect seems to require 64KB-aligned addresses (allocation
3636 // granularity returned by sysconf(_SC_PAGESIZE)) while we need actual page granularity for typeinfo surgery.
3737 // Using the windows API here works best.
You can’t perform that action at this time.
0 commit comments