aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2014-11-12 17:49:33 -0500
committerKevin O'Connor <kevin@koconnor.net>2014-11-12 17:49:33 -0500
commit83c82769d1246a00e1773764505184cb95d4f663 (patch)
tree96bda1021f58c9f6859427cf66f0405affece30b
parentb0d42bd03225ad61e5421e12b57f633f84637328 (diff)
downloadseabios-83c82769d1246a00e1773764505184cb95d4f663.zip
seabios-83c82769d1246a00e1773764505184cb95d4f663.tar.gz
seabios-83c82769d1246a00e1773764505184cb95d4f663.tar.bz2
Fix build issue on gcc34
Older versions of gcc may not inline on_extra_stack() and thus cause a link error when compiling in 32bit segmented mode. Test for MODE16 explicitly in stack_hop_back() to prevent the problem. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--src/stacks.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/stacks.c b/src/stacks.c
index 6f40cbe..0c033d1 100644
--- a/src/stacks.c
+++ b/src/stacks.c
@@ -430,7 +430,7 @@ stack_hop_back(u32 eax, u32 edx, void *func)
{
if (!MODESEGMENT)
return call16_back(eax, edx, func);
- if (!on_extra_stack())
+ if (!MODE16 || !on_extra_stack())
return ((u32 (*)(u32, u32))func)(eax, edx);
ASSERT16();
u16 bkup_ss;