Binary compiled with GCC-4.7.2 has a different epilogue/prologue sequence when compared with the same binary emitted by GCC-3.3.6. I'm sure I haven't used fomit-frame-pointer compilation flag. What could be the issue here ? Is the linker doing some optimization here ? It has rendered my executable undebuggable in gdb. Prologue: 0804bfe9 <config_local_policy_ruledef_condition_variable_time_value>: 804bfe9: 55 push %ebp 804bfea: 57 push %edi 804bfeb: 56 push %esi 804bfec: 53 push %ebx 804bfed: e8 0e 89 66 00 call 86b4900 <__x86.get_pc_thunk.bx> Epilogue 804c495: 83 c4 6c add $0x6c,%esp 804c498: 5b pop %ebx 804c499: 5e pop %esi 804c49a: 5f pop %edi 804c49b: 5d pop %ebp 804c49c: c3 ret