mirror of
https://github.com/sheumann/hush.git
synced 2024-12-26 10:32:02 +00:00
When compiling with FEATURE_MTAB_SUPPORT disabled, the call to erase_mtab()
can never be made because useMtab is initialized to 0, and all the other assignments of that variable assign 0 to it. Any compiler that can perform simple constant propogation on local variables will optimize away if statements testing against that variable, thus the call to erase_mtab() will never be made. When compiling for arm using gcc 3.3.3 with FEATURE_MTAB_SUPPORT disabled, the linker complains that it can't find erase_mtab(). The arm optimizer isn't exactly the brightest member of the family, and apparently needs to be hit over the head with a hammer to get its' attention...
This commit is contained in:
parent
6417564eeb
commit
f4c684a1ef
@ -116,7 +116,9 @@ extern int umount_main(int argc, char **argv)
|
|||||||
del_loop(m->device);
|
del_loop(m->device);
|
||||||
|
|
||||||
if(curstat) {
|
if(curstat) {
|
||||||
if(useMtab && m) erase_mtab(m->dir);
|
/* Yes, the ENABLE is redundant here, but the optimizer for ARM
|
||||||
|
* can't do simple constant propogation in local variables... */
|
||||||
|
if(ENABLE_FEATURE_MTAB_SUPPORT && useMtab && m) erase_mtab(m->dir);
|
||||||
status = EXIT_FAILURE;
|
status = EXIT_FAILURE;
|
||||||
bb_perror_msg("Couldn't umount %s\n", path);
|
bb_perror_msg("Couldn't umount %s\n", path);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user