Skip to content

Commit 14bbcab

Browse files
committed
Rename enum to avoid compilation issue
1 parent 223fcbe commit 14bbcab

File tree

13 files changed

+85
-52
lines changed

13 files changed

+85
-52
lines changed

api/python/lief/MachO/__init__.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ class MACHO_TYPES(enum.Enum):
2828

2929
CIGAM_64 = 3489328638
3030

31-
FAT_MAGIC = 3405691582
31+
MAGIC_FAT = 3405691582
3232

33-
FAT_CIGAM = 3199925962
33+
CIGAM_FAT = 3199925962
3434

3535
NEURAL_MODEL = 3203398350
3636

api/python/src/MachO/enums.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ namespace LIEF::MachO::py {
2626
void init_enums(nb::module_& m) {
2727

2828
enum_<MACHO_TYPES>(m, "MACHO_TYPES")
29-
.value(PY_ENUM(MACHO_TYPES::MH_MAGIC))
30-
.value(PY_ENUM(MACHO_TYPES::MH_CIGAM))
31-
.value(PY_ENUM(MACHO_TYPES::MH_MAGIC_64))
32-
.value(PY_ENUM(MACHO_TYPES::MH_CIGAM_64))
33-
.value(PY_ENUM(MACHO_TYPES::FAT_MAGIC))
34-
.value(PY_ENUM(MACHO_TYPES::FAT_CIGAM))
29+
.value(PY_ENUM(MACHO_TYPES::MAGIC))
30+
.value(PY_ENUM(MACHO_TYPES::CIGAM))
31+
.value(PY_ENUM(MACHO_TYPES::MAGIC_64))
32+
.value(PY_ENUM(MACHO_TYPES::CIGAM_64))
33+
.value(PY_ENUM(MACHO_TYPES::MAGIC_FAT))
34+
.value(PY_ENUM(MACHO_TYPES::CIGAM_FAT))
3535
.value(PY_ENUM(MACHO_TYPES::NEURAL_MODEL))
3636
;
3737

doc/sphinx/changelog.rst

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,39 @@
4949
for rpath in macho.rpaths:
5050
rpath.path += '/a/very/long/path/that/needs/expansion'
5151
52+
* To void ``#define`` conflicts with Apple SDK, the following enums have been renamed:
53+
54+
.. tabs::
55+
56+
.. tab:: :fa:`brands fa-python` Python
57+
58+
.. code-block:: diff
59+
60+
- lief.MachO.FAT_MAGIC
61+
+ lief.MachO.MAGIC_FAT
62+
63+
- lief.MachO.FAT_CIGAM
64+
+ lief.MachO.CIGAM_FAT
65+
66+
67+
.. tab:: :fa:`regular fa-file-code` C++
68+
69+
.. code-block:: diff
70+
71+
- MACHO_TYPES::MH_MAGIC
72+
- MACHO_TYPES::MH_CIGAM
73+
- MACHO_TYPES::MH_MAGIC_64
74+
- MACHO_TYPES::MH_CIGAM_64
75+
- MACHO_TYPES::FAT_MAGIC
76+
- MACHO_TYPES::FAT_CIGAM
77+
78+
+ MACHO_TYPES::MAGIC
79+
+ MACHO_TYPES::CIGAM
80+
+ MACHO_TYPES::MAGIC_64
81+
+ MACHO_TYPES::CIGAM_64
82+
+ MACHO_TYPES::MAGIC_FAT
83+
+ MACHO_TYPES::CIGAM_FAT
84+
5285
:ELF:
5386

5487
* LIEF inserted sections are not compatible with a ``strip`` after the

include/LIEF/MachO/BinaryParser.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ class LIEF_API BinaryParser : public LIEF::Parser {
269269

270270
std::unique_ptr<BinaryStream> stream_;
271271
std::unique_ptr<Binary> binary_;
272-
MACHO_TYPES type_ = MACHO_TYPES::MH_MAGIC_64;
272+
MACHO_TYPES type_ = MACHO_TYPES::MAGIC_64;
273273
bool is64_ = true;
274274
ParserConfig config_;
275275
std::set<uint64_t> visited_;

include/LIEF/MachO/Header.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,14 +195,14 @@ class LIEF_API Header : public Object {
195195

196196
/// True if the binary is 32-bit
197197
bool is_32bit() const {
198-
return magic_ == MACHO_TYPES::MH_MAGIC ||
199-
magic_ == MACHO_TYPES::MH_CIGAM;
198+
return magic_ == MACHO_TYPES::MAGIC ||
199+
magic_ == MACHO_TYPES::CIGAM;
200200
}
201201

202202
/// True if the binary is 64-bit
203203
bool is_64bit() const {
204-
return magic_ == MACHO_TYPES::MH_MAGIC_64 ||
205-
magic_ == MACHO_TYPES::MH_CIGAM_64;
204+
return magic_ == MACHO_TYPES::MAGIC_64 ||
205+
magic_ == MACHO_TYPES::CIGAM_64;
206206
}
207207

208208
void remove(FLAGS flag);

include/LIEF/MachO/enums.hpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ namespace LIEF {
2121
namespace MachO {
2222

2323
enum class MACHO_TYPES: uint32_t {
24-
UNKNOWN = 0,
25-
MH_MAGIC = 0xFEEDFACEu, ///< 32-bit big-endian magic
26-
MH_CIGAM = 0xCEFAEDFEu, ///< 32-bit little-endian magic
27-
MH_MAGIC_64 = 0xFEEDFACFu, ///< 64-bit big-endian magic
28-
MH_CIGAM_64 = 0xCFFAEDFEu, ///< 64-bit little-endian magic
29-
FAT_MAGIC = 0xCAFEBABEu, ///< big-endian fat magic
30-
FAT_CIGAM = 0xBEBAFECAu, ///< little-endian fat magic
24+
UNKNOWN = 0,
25+
MAGIC = 0xFEEDFACEu, ///< 32-bit big-endian magic
26+
CIGAM = 0xCEFAEDFEu, ///< 32-bit little-endian magic
27+
MAGIC_64 = 0xFEEDFACFu, ///< 64-bit big-endian magic
28+
CIGAM_64 = 0xCFFAEDFEu, ///< 64-bit little-endian magic
29+
MAGIC_FAT = 0xCAFEBABEu, ///< big-endian fat magic
30+
CIGAM_FAT = 0xBEBAFECAu, ///< little-endian fat magic
3131

3232
NEURAL_MODEL = 0xbeeffaceu,
3333
};

src/Abstract/Header.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,14 +210,14 @@ Header Header::from(const MachO::Binary& macho) {
210210
}
211211
const MachO::Header& macho_hdr = macho.header();
212212
const MachO::MACHO_TYPES magic = macho_hdr.magic();
213-
if (magic == MachO::MACHO_TYPES::MH_MAGIC_64 ||
214-
magic == MachO::MACHO_TYPES::MH_CIGAM_64)
213+
if (magic == MachO::MACHO_TYPES::MAGIC_64 ||
214+
magic == MachO::MACHO_TYPES::CIGAM_64)
215215
{
216216
hdr.modes_ |= MODES::BITS_64;
217217
}
218218

219-
if (magic == MachO::MACHO_TYPES::MH_MAGIC ||
220-
magic == MachO::MACHO_TYPES::MH_CIGAM)
219+
if (magic == MachO::MACHO_TYPES::MAGIC ||
220+
magic == MachO::MACHO_TYPES::CIGAM)
221221
{
222222
hdr.modes_ |= MODES::BITS_32;
223223
}

src/MachO/BinaryParser.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,16 +125,16 @@ ok_error_t BinaryParser::init_and_parse() {
125125
}
126126
const auto type = static_cast<MACHO_TYPES>(*stream_->peek<uint32_t>());
127127

128-
is64_ = type == MACHO_TYPES::MH_MAGIC_64 ||
129-
type == MACHO_TYPES::MH_CIGAM_64 ||
128+
is64_ = type == MACHO_TYPES::MAGIC_64 ||
129+
type == MACHO_TYPES::CIGAM_64 ||
130130
type == MACHO_TYPES::NEURAL_MODEL;
131131

132132
binary_->is64_ = is64_;
133133
type_ = type;
134134
binary_->original_size_ = stream_->size();
135135

136-
bool should_swap = type == MACHO_TYPES::MH_CIGAM_64 ||
137-
type == MACHO_TYPES::MH_CIGAM;
136+
bool should_swap = type == MACHO_TYPES::CIGAM_64 ||
137+
type == MACHO_TYPES::CIGAM;
138138

139139
stream_->set_endian_swap(should_swap);
140140

src/MachO/BinaryParser.tcc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -976,7 +976,7 @@ ok_error_t BinaryParser::parse_load_commands() {
976976
auto type = static_cast<MACHO_TYPES>(*res_type);
977977

978978
// Fat binary
979-
if (type == MACHO_TYPES::FAT_MAGIC || type == MACHO_TYPES::FAT_CIGAM) {
979+
if (type == MACHO_TYPES::MAGIC_FAT || type == MACHO_TYPES::CIGAM_FAT) {
980980
LIEF_ERR("Mach-O is corrupted with a FAT Mach-O inside a fileset ?");
981981
break;
982982
}

src/MachO/Builder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ ok_error_t Builder::build_fat_header() {
213213

214214
std::memset(&header, 0, sizeof(details::fat_header));
215215

216-
header.magic = static_cast<uint32_t>(MACHO_TYPES::FAT_CIGAM);
216+
header.magic = static_cast<uint32_t>(MACHO_TYPES::CIGAM_FAT);
217217
header.nfat_arch = get_swapped_endian<uint32_t>(binaries_.size());
218218

219219
raw_.seekp(0);

0 commit comments

Comments
 (0)