> > 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. Considering that the branches were developed simultaneously, I am guessing that at least in one of the merging commits some (sort of) conflict/error migth have pass through without detection. In particular, there are several merging commits after 5.00-pre8, after 5.00-pre9 (both "--once" OK) and 6.00-pre1 ("--once" failure). Some of those merging commits included conflicts, and during the same period there is at least one "Fixup merge botch" commit ( <http://git.zytor.com/?p=syslinux/syslinux.git;a=commit;h=afd28c08dc76 153efcd9f760bcdbeaabda74eb05> ) which happens to be related to libinstaller. It should be noted that there are later commits affecting the ADV too. Additionally, the "efi/adv.c" file in 6.03-pre13 states: *** Core ADV I/O Code consolidated from libinstaller/adv*.c and core/adv.inc with the addition of EFI support *** So although currently the unexpected behavior can be seen under BIOS, there is a chance that the solution might still be under the "efi/" subdirectory. Regards, Ady.
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
> 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.