Lines 1190-1195
class General_options
Link Here
|
1190 |
NULL); |
1190 |
NULL); |
1191 |
DEFINE_bool(execstack, options::DASH_Z, '\0', false, |
1191 |
DEFINE_bool(execstack, options::DASH_Z, '\0', false, |
1192 |
N_("Mark output as requiring executable stack"), NULL); |
1192 |
N_("Mark output as requiring executable stack"), NULL); |
|
|
1193 |
DEFINE_bool(execheap, options::DASH_Z, '\0', false, |
1194 |
N_("Mark output as requiring executable heap"), NULL); |
1193 |
DEFINE_bool(initfirst, options::DASH_Z, '\0', false, |
1195 |
DEFINE_bool(initfirst, options::DASH_Z, '\0', false, |
1194 |
N_("Mark DSO to be initialized first at runtime"), |
1196 |
N_("Mark DSO to be initialized first at runtime"), |
1195 |
NULL); |
1197 |
NULL); |
Lines 1226-1231
class General_options
Link Here
|
1226 |
NULL); |
1228 |
NULL); |
1227 |
DEFINE_bool(noexecstack, options::DASH_Z, '\0', false, |
1229 |
DEFINE_bool(noexecstack, options::DASH_Z, '\0', false, |
1228 |
N_("Mark output as not requiring executable stack"), NULL); |
1230 |
N_("Mark output as not requiring executable stack"), NULL); |
|
|
1231 |
DEFINE_bool(noexecheap, options::DASH_Z, '\0', false, |
1232 |
N_("Mark output as not requiring executable heap"), NULL); |
1229 |
DEFINE_bool(now, options::DASH_Z, '\0', false, |
1233 |
DEFINE_bool(now, options::DASH_Z, '\0', false, |
1230 |
N_("Mark object for immediate function binding"), |
1234 |
N_("Mark object for immediate function binding"), |
1231 |
NULL); |
1235 |
NULL); |
Lines 1327-1332
class General_options
Link Here
|
1327 |
is_stack_executable() const |
1331 |
is_stack_executable() const |
1328 |
{ return this->execstack_status_ == EXECSTACK_YES; } |
1332 |
{ return this->execstack_status_ == EXECSTACK_YES; } |
1329 |
|
1333 |
|
|
|
1334 |
// These are the best way to get access to the execheap state, |
1335 |
// not execheap() and noexecheap() which are hard to use properly. |
1336 |
bool |
1337 |
is_execheap_set() const |
1338 |
{ return this->execheap_status_ != EXECHEAP_FROM_INPUT; } |
1339 |
|
1340 |
bool |
1341 |
is_heap_executable() const |
1342 |
{ return this->execheap_status_ == EXECHEAP_YES; } |
1343 |
|
1330 |
bool |
1344 |
bool |
1331 |
icf_enabled() const |
1345 |
icf_enabled() const |
1332 |
{ return this->icf_status_ != ICF_NONE; } |
1346 |
{ return this->icf_status_ != ICF_NONE; } |
Lines 1451-1456
class General_options
Link Here
|
1451 |
EXECSTACK_NO |
1465 |
EXECSTACK_NO |
1452 |
}; |
1466 |
}; |
1453 |
|
1467 |
|
|
|
1468 |
// Whether to mark the heap as executable. |
1469 |
enum Execheap |
1470 |
{ |
1471 |
// Not set on command line. |
1472 |
EXECHEAP_FROM_INPUT, |
1473 |
// Mark the heap as executable (-z execheap). |
1474 |
EXECHEAP_YES, |
1475 |
// Mark the heap as not executable (-z noexecheap). |
1476 |
EXECHEAP_NO |
1477 |
}; |
1478 |
|
1454 |
enum Icf_status |
1479 |
enum Icf_status |
1455 |
{ |
1480 |
{ |
1456 |
// Do not fold any functions (Default or --icf=none). |
1481 |
// Do not fold any functions (Default or --icf=none). |
Lines 1470-1475
class General_options
Link Here
|
1470 |
{ this->execstack_status_ = value; } |
1495 |
{ this->execstack_status_ = value; } |
1471 |
|
1496 |
|
1472 |
void |
1497 |
void |
|
|
1498 |
set_execheap_status(Execheap value) |
1499 |
{ this->execheap_status_ = value; } |
1500 |
|
1501 |
void |
1473 |
set_do_demangle(bool value) |
1502 |
set_do_demangle(bool value) |
1474 |
{ this->do_demangle_ = value; } |
1503 |
{ this->do_demangle_ = value; } |
1475 |
|
1504 |
|
Lines 1498-1503
class General_options
Link Here
|
1498 |
bool printed_version_; |
1527 |
bool printed_version_; |
1499 |
// Whether to mark the stack as executable. |
1528 |
// Whether to mark the stack as executable. |
1500 |
Execstack execstack_status_; |
1529 |
Execstack execstack_status_; |
|
|
1530 |
// Whether to mark the heap as executable. |
1531 |
Execheap execheap_status_; |
1501 |
// Whether to do code folding. |
1532 |
// Whether to do code folding. |
1502 |
Icf_status icf_status_; |
1533 |
Icf_status icf_status_; |
1503 |
// Whether to do a static link. |
1534 |
// Whether to do a static link. |