> On 06/08/2014 02:58 PM, Ady wrote: > >> > >> To be clear, I am not saying there is no bug - there might be. > >> > > > > I performed the following test with several versions of Syslinux: > > > > 1_ Execute: > > 'extlinux --once=non_default_label --install /mnt/sda1' ; > > 2_ In first reboot, the "non_default_label" should be executed; > > 3_ In second reboot, the default label should be executed. > > > > Results: > > _ 4.05 to 4.07: OK. > > _ 5.00-pre1 to 5.00-pre7: fail. > > _ 5.00-pre8: step #2 OK, step #3 buggy. > > _ 5.00-pre9 to 5.11-pre9: OK. > > _ 6.xx and 6.xx-pre*: fail. > > > > As far as I can tell, the problem seems to be that we simply do not read > the ADV before trying access it. > > -hpa... Or, it is being read but some check(sum) fails and thus discarded. If someone wants to catch where the source of the "--once=" problem is located, I'd guess this is a good starting point. Additionally, 5.00-pre1 to 5.00-pre7 also failed, so perhaps the correction was introduced for 5.00-pre8/9 but was not applied to the 6.xx branch on time (nor since). Regards, Ady.
On 06/09/2014 12:14 PM, Ady wrote:> > ... Or, it is being read but some check(sum) fails and thus > discarded. > > If someone wants to catch where the source of the "--once=" problem > is located, I'd guess this is a good starting point. Additionally, > 5.00-pre1 to 5.00-pre7 also failed, so perhaps the correction was > introduced for 5.00-pre8/9 but was not applied to the 6.xx branch on > time (nor since). >Actually, it looks more like this might be the problem: Info: Symbol __muldi3 is defined more than once Info: Symbol __divdi3 is defined more than once Info: Symbol __udivmoddi4 is defined more than once Info: Symbol __ashrdi3 is defined more than once Info: Symbol dev_stdcon_w is defined more than once Info: Symbol __moddi3 is defined more than once Info: Symbol __syslinux_adv_ptr is defined more than once Info: Symbol __negdi2 is defined more than once Info: Symbol __umoddi3 is defined more than once Info: Symbol __lshrdi3 is defined more than once Info: Symbol __dtors_end is defined more than once Info: Symbol __dtors_start is defined more than once Info: Symbol dev_null_r is defined more than once Info: Symbol __ashldi3 is defined more than once Info: Symbol __udivdi3 is defined more than once Info: Symbol __syslinux_adv_size is defined more than once Info: Symbol __ctors_end is defined more than once Info: Symbol __ctors_start is defined more than once -hpa
On 06/09/2014 02:58 PM, H. Peter Anvin wrote:> > Actually, it looks more like this might be the problem: > > Info: Symbol __muldi3 is defined more than once > Info: Symbol __divdi3 is defined more than once > Info: Symbol __udivmoddi4 is defined more than once > Info: Symbol __ashrdi3 is defined more than once > Info: Symbol dev_stdcon_w is defined more than once > Info: Symbol __moddi3 is defined more than once > Info: Symbol __syslinux_adv_ptr is defined more than once > Info: Symbol __negdi2 is defined more than once > Info: Symbol __umoddi3 is defined more than once > Info: Symbol __lshrdi3 is defined more than once > Info: Symbol __dtors_end is defined more than once > Info: Symbol __dtors_start is defined more than once > Info: Symbol dev_null_r is defined more than once > Info: Symbol __ashldi3 is defined more than once > Info: Symbol __udivdi3 is defined more than once > Info: Symbol __syslinux_adv_size is defined more than once > Info: Symbol __ctors_end is defined more than once > Info: Symbol __ctors_start is defined more than once >And, indeed, so it was. Someone wants to help chase down the reasons for the additional duplicate symbols? -hpa
On Jun 09 2014, H. Peter Anvin wrote:> > Actually, it looks more like this might be the problem: > > Info: Symbol __muldi3 is defined more than once > Info: Symbol __divdi3 is defined more than once > Info: Symbol __udivmoddi4 is defined more than once > Info: Symbol __ashrdi3 is defined more than once > Info: Symbol dev_stdcon_w is defined more than once > Info: Symbol __moddi3 is defined more than once > Info: Symbol __syslinux_adv_ptr is defined more than once > Info: Symbol __negdi2 is defined more than once > Info: Symbol __umoddi3 is defined more than once > Info: Symbol __lshrdi3 is defined more than once > Info: Symbol __dtors_end is defined more than once > Info: Symbol __dtors_start is defined more than once > Info: Symbol dev_null_r is defined more than once > Info: Symbol __ashldi3 is defined more than once > Info: Symbol __udivdi3 is defined more than once > Info: Symbol __syslinux_adv_size is defined more than once > Info: Symbol __ctors_end is defined more than once > Info: Symbol __ctors_start is defined more than onceIf this could result in reading the wrong area as the adv - or, especially, thinking the adv size is 0 - it's consistent with the debugging details we've gotten here. (Version 6.02) -- Arlie