Skip to content

Commit 64bbd58

Browse files
committed
Cleanup cygwin platform handling
1 parent 04a21a7 commit 64bbd58

File tree

10 files changed

+21
-23
lines changed

10 files changed

+21
-23
lines changed

src/binary/elf.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include "utils/io/file.hpp"
88
#include "utils/string_view.hpp"
99

10-
#if IS_LINUX && !IS_CYGWIN
10+
#if IS_LINUX
1111

1212
#include <array>
1313
#include <cstdint>

src/binary/elf.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include "utils/span.hpp"
88
#include "utils/utils.hpp"
99

10-
#if IS_LINUX && !IS_CYGWIN
10+
#if IS_LINUX
1111

1212
#include <cstdint>
1313
#include <string>

src/binary/module_base.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include <mutex>
88
#include <unordered_map>
99

10-
#if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
10+
#if IS_LINUX || IS_APPLE
1111
#include <unistd.h>
1212
#include <dlfcn.h>
1313
#if IS_APPLE
@@ -21,7 +21,7 @@
2121

2222
CPPTRACE_BEGIN_NAMESPACE
2323
namespace detail {
24-
#if IS_LINUX && !IS_CYGWIN
24+
#if IS_LINUX
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);

src/binary/object.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include <mutex>
1212
#include <unordered_map>
1313

14-
#if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
14+
#if IS_LINUX || IS_APPLE
1515
#include <unistd.h>
1616
#include <dlfcn.h>
1717
#if IS_LINUX && (defined(CPPTRACE_HAS_DL_FIND_OBJECT) || defined(CPPTRACE_HAS_DLADDR1))
@@ -26,7 +26,7 @@
2626

2727
CPPTRACE_BEGIN_NAMESPACE
2828
namespace detail {
29-
#if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
29+
#if IS_LINUX || IS_APPLE
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) {

src/jit/jit_objects.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
CPPTRACE_BEGIN_NAMESPACE
1717
namespace detail {
18-
#if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
18+
#if IS_LINUX || IS_APPLE
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) && !IS_CYGWIN
138+
#if IS_LINUX || IS_APPLE
139139
optional<jit_object_lookup_result> lookup_jit_object(frame_ptr pc) {
140140
return get_jit_object_manager().lookup(pc);
141141
}

src/jit/jit_objects.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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) && !IS_CYGWIN
16+
#if IS_LINUX || IS_APPLE
1717
#if IS_LINUX
1818
using jit_object_type = elf;
1919
#elif IS_APPLE

src/platform/platform.hpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@
44
#define IS_WINDOWS 0
55
#define IS_LINUX 0
66
#define IS_APPLE 0
7-
#define IS_CYGWIN 0 // If IS_CYGWIN is set IS_LINUX will also be set, for better or worse
7+
#define IS_CYGWIN 0
88

99
#if defined(_WIN32)
1010
#undef IS_WINDOWS
1111
#define IS_WINDOWS 1
12-
#elif defined(__linux) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__CYGWIN__)
12+
#elif defined(__CYGWIN__)
13+
#undef IS_CYGWIN
14+
#define IS_CYGWIN 1
15+
#elif defined(__linux) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
1316
#undef IS_LINUX
1417
#define IS_LINUX 1
1518
#elif defined(__APPLE__)
@@ -19,11 +22,6 @@
1922
#error "Unexpected platform"
2023
#endif
2124

22-
#ifdef __CYGWIN__
23-
#undef IS_CYGWIN
24-
#define IS_CYGWIN 1
25-
#endif
26-
2725
#define IS_CLANG 0
2826
#define IS_GCC 0
2927
#define IS_MSVC 0

src/platform/program_name.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ namespace detail {
6666
}
6767
CPPTRACE_END_NAMESPACE
6868

69-
#elif IS_LINUX
69+
#elif IS_LINUX || IS_CYGWIN
7070

7171
#include <sys/types.h>
7272
#include <unistd.h>

src/symbols/symbols_with_addr2line.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#include <utility>
1616
#include <vector>
1717

18-
#if IS_LINUX || IS_APPLE
18+
#if IS_LINUX || IS_APPLE || IS_CYGWIN
1919
#include <unistd.h>
2020
#include <sys/types.h>
2121
#include <sys/wait.h>
@@ -27,7 +27,7 @@
2727
CPPTRACE_BEGIN_NAMESPACE
2828
namespace detail {
2929
namespace addr2line {
30-
#if IS_LINUX || IS_APPLE
30+
#if IS_LINUX || IS_APPLE || IS_CYGWIN
3131
bool has_addr2line() {
3232
static std::mutex mutex;
3333
static bool has_addr2line = false;

src/symbols/symbols_with_libdwarf.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ namespace libdwarf {
8585
return final_trace;
8686
}
8787

88-
#if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
88+
#if IS_LINUX || IS_APPLE
8989
CPPTRACE_FORCE_NO_INLINE_FOR_PROFILING
9090
void try_resolve_jit_frame(const cpptrace::object_frame& dlframe, frame_with_inlines& frame) {
9191
auto object_res = lookup_jit_object(dlframe.raw_address);
@@ -124,15 +124,15 @@ namespace libdwarf {
124124
try {
125125
const auto& object_name = group.first;
126126
if(object_name.empty()) {
127-
#if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
127+
#if IS_LINUX || IS_APPLE
128128
for(const auto& entry : group.second) {
129129
try_resolve_jit_frame(entry.first.get(), entry.second.get());
130130
}
131131
#endif
132132
continue;
133133
}
134134
// TODO PERF: Potentially a duplicate open and parse with module base stuff (and debug map resolver)
135-
#if IS_LINUX && !IS_CYGWIN
135+
#if IS_LINUX
136136
auto object = open_elf_cached(object_name);
137137
#elif IS_APPLE
138138
auto object = open_mach_o_cached(object_name);
@@ -142,7 +142,7 @@ namespace libdwarf {
142142
const auto& dlframe = entry.first.get();
143143
auto& frame = entry.second.get();
144144
try_resolve_frame(resolver.get(), dlframe, frame);
145-
#if (IS_LINUX || IS_APPLE) && !IS_CYGWIN
145+
#if IS_LINUX || IS_APPLE
146146
// fallback to symbol tables
147147
if(frame.frame.symbol.empty() && object.has_value()) {
148148
frame.frame.symbol = object

0 commit comments

Comments
 (0)