[syslinux] global append changes since version 5

Ady ady-sf at hotmail.com
Sun Mar 23 09:52:24 PDT 2014


> On Sun, Mar 23, 2014 at 7:17 AM, Ady <ady-sf at hotmail.com> wrote:
> 
> > 2_ In prior versions, a specific entry was executed as follows:
> >  <mykernel> <global_append> <myappend_options>
> > corresponding to:
> >
> >  ***
> >  # The following is the global append, not part of a label entry.
> >  APPEND <global_append>
> >
> >  #The following is a sample entry
> >  LABEL <mylabel>
> >  KERNEL <mykernel>
> >  APPEND <myappend_options>
> >  ***
> >
> > In Syslinux 5+, the same entry will ignore the "global append",
> > resulting in:
> >  <mykernel>  <myappend_options>
> >
> > The old command:
> >  <mykernel> <global_append> <myappend_options>
> > can still be achieved by using the cmd.c32 module (see Syslinux
> > wiki).
> 
> I just tried 3.86 and 4.05 and got the same as 5.00+ behavior.  What
> exact version?  I don't see this in menu.c32 either.
> 
> -- 
> -Gene
> 

The way I got to all these points was by focusing on the current 
behavior, much more than the old one. I tested more than 30 cases 
with 6.03-pre5, and just a few bunch with 4.07.

Then I "built" the points based on the new behavior, and I added the 
respective behavior for older versions according to the documentation 
for "global append".

There are two cases where the old behavior is certainly different 
from the new one, not just according to the documentation but also in 
practice: typing in directly in CLI, and with the 'default' 
directive.

Due to your reply, I have re-tested this particular case. You are 
correct regarding the old behavior. When having this case in a 
configuration file, executing <mylabel> from CLI provides the same 
result as when using newer versions:
<mykernel> <myappend_options>

But let's consider the equivalent execution when typing in the whole 
command from CLI, and when executing it from menu.c32.

>From CLI, instead of typing in <mylabel>, let's type the equivalent:
 <mykernel> <myappend_options> 

The automatic result in older versions is:
<mykernel> <global_append> <myappend_options>

 (different than when executing the label from CLI)
while newer versions are consistent with the <mylabel> execution:
 <mykernel> <myappend_options> 

When executing <mylabel> from a menu, the result is again consistent 
in newer versions, while in older versions the result depends on the 
particular whole configuration file.

With older versions, in some cases if a "global append" is used then 
the menu might not be even plausible. Instead, a message might appear 
stating that "Initial menu has no LABEL entries!", which is of course 
not true.

So, going back to my initial description, my main focus was on how 
the new versions are really behaving with regards to the "global 
append" directive, and less about the difference in comparison to 
older versions. In a certain sense, my descriptions should be a base 
to document how the new "global append" directive works, discarding 
the comparisons to how it used to (theoretically) work.

The bottom line is that:
 _ the behavior is different than before; and
 _ the new behavior is better.

Regards,
Ady.


More information about the Syslinux mailing list