On 02.07.2015 01:28, Gene Cumm wrote:> On Wed, Jul 1, 2015 at 10:14 AM, poma <pomidorabelisima at gmail.com> wrote: >> On 01.07.2015 12:10, Gene Cumm wrote: >>> On Wed, Jul 1, 2015 at 4:35 AM, poma <pomidorabelisima at gmail.com> wrote: >>>> >>>> To remind you once again. >>>> ISOLINUX >= 6.00 built with GCC >= 5.0.0 causes a broken boot. >>>> This relates specifically to the use of the vesamenu.c32, >>>> menu.c32 works without problemos. >>> >>> isolinux-debug.bin is not for diagnosing issues with *menu.c32. Let's >>> start over since your problem statement has a bit of confusion. >>> >>> 1) You never said if you saw tests to get just the core (isolinux.bin >>> and ldlinux.c32) loaded. Did you try my simple config? >>> >>> >>> #syslinux.cfg-begin >>> DEFAULT linux >>> PROMPT 1 >>> >>> LABEL linux >>> LINUX vmlinuz >>> APPEND initrd=myinitrd.cgz my-options >>> #syslinux.cfg-end >>> >> >> PASSED >> >>> >>> 2) If that passes, the core is OK and let's look at loading simple >>> COM32s like ls.c32. Does ls.c32 work? >>> >> >> PASSED >> >>> 3) If that passes, reading the file system and loading linked >>> libraries are OK. Next, from a "boot: " prompt with the simple >>> config, execute "menu.c32" or "vesamenu.c32" >>> >> >> PASSED -and- PASSED >> >> Patch, pack and drive! >> syslinux-6.04-pre1 > > 1) Does this mean my simple config with menu.c32 and vesamenu.c32 passes? > > 2) Do you still have an issue with your previous config? If so, have > you reviewed it to ensure it's syntax looks good? If you're still > having issues, could you attach the config file (and any additional > config files like those in INCLUDEs and MENU INCLUDEs)? >"PASSED" means *it works* - this is a very standard term. You can find all relevant on the following link: http://goo.gl/Gm4ffO ISOLINUX so you can yourself further analyzed it. There is a bootable/isolinux-6.04 image: Rawhide-Live-Xfce-702-604-boot-only.iso, with the "boot-enable" patch - tantamount to: --- a/com32/menu/readconfig.c +++ b/com32/menu/readconfig.c @@ -299,7 +299,7 @@ char c; while ((c = *src++)) { - if (c <= ' ' || c == '\x7f') { + if (c <= ' ' && c == '\x7f') { ... And that's it. ;) I thank you for your participation.
Hi, poma wrote:> - if (c <= ' ' || c == '\x7f') { > + if (c <= ' ' && c == '\x7f') {As Geert Stappers pointed out (and can be verified by a simple test program), the reinstated term (c <= ' ' && c == '\x7f') evaluates always as false, because ('\x7f' <= ' ') is false. So it is equivalent to removing the code branch if (!was_space) *dst++ = '_'; was_space = true; I understand the function shall convert whitespace to '_', condense groups of neighboring whitespaces to a single '_', discard leading and trailing whitespace. In its current git state it converts "abc" -> "abc" " abc " -> "abc" " a b c " -> "a_b_c" The change to (c <= " " && c == "\x7f") disables this conversion completely. " a b c " -> " a b c " It seems your use case needs the whitespaces whereas SYSLINUX assumes that they are unwanted. This collision of need and software model needs to be investigated and solved. Have a nice day :) Thomas
On Thu, Jul 2, 2015 at 1:32 AM, poma <pomidorabelisima at gmail.com> wrote:> On 02.07.2015 01:28, Gene Cumm wrote: >> On Wed, Jul 1, 2015 at 10:14 AM, poma <pomidorabelisima at gmail.com> wrote: >>> On 01.07.2015 12:10, Gene Cumm wrote: >>>> On Wed, Jul 1, 2015 at 4:35 AM, poma <pomidorabelisima at gmail.com> wrote: >>>>> >>>>> To remind you once again. >>>>> ISOLINUX >= 6.00 built with GCC >= 5.0.0 causes a broken boot. >>>>> This relates specifically to the use of the vesamenu.c32, >>>>> menu.c32 works without problemos. >>>> >>>> isolinux-debug.bin is not for diagnosing issues with *menu.c32. Let's >>>> start over since your problem statement has a bit of confusion. >>>> >>>> 1) You never said if you saw tests to get just the core (isolinux.bin >>>> and ldlinux.c32) loaded. Did you try my simple config? >>>> >>>> >>>> #syslinux.cfg-begin >>>> DEFAULT linux >>>> PROMPT 1 >>>> >>>> LABEL linux >>>> LINUX vmlinuz >>>> APPEND initrd=myinitrd.cgz my-options >>>> #syslinux.cfg-end >>>> >>> >>> PASSED >>> >>>> >>>> 2) If that passes, the core is OK and let's look at loading simple >>>> COM32s like ls.c32. Does ls.c32 work? >>>> >>> >>> PASSED >>> >>>> 3) If that passes, reading the file system and loading linked >>>> libraries are OK. Next, from a "boot: " prompt with the simple >>>> config, execute "menu.c32" or "vesamenu.c32" >>>> >>> >>> PASSED -and- PASSED >>> >>> Patch, pack and drive! >>> syslinux-6.04-pre1 >> >> 1) Does this mean my simple config with menu.c32 and vesamenu.c32 passes? >> >> 2) Do you still have an issue with your previous config? If so, have >> you reviewed it to ensure it's syntax looks good? If you're still >> having issues, could you attach the config file (and any additional >> config files like those in INCLUDEs and MENU INCLUDEs)? >> > > > "PASSED" means *it works* - this is a very standard term.This is true. The confusion is how your system miraculously works now. Did you mean to say that with the application of your patch, it now works?> You can find all relevant on the following link: > http://goo.gl/Gm4ffO > ISOLINUXI see an ISO, a bunch of RPMs (including an SRPM) and a bunch of superfluous text files. It'd be nice to see the size of the ISO (73M) prior to downloading.> so you can yourself further analyzed it.Again, it feels like details are lost.> There is a bootable/isolinux-6.04 image: > Rawhide-Live-Xfce-702-604-boot-only.iso, > with the "boot-enable" patch - tantamount to: > > --- a/com32/menu/readconfig.c > +++ b/com32/menu/readconfig.c > @@ -299,7 +299,7 @@ > char c; > > while ((c = *src++)) { > - if (c <= ' ' || c == '\x7f') { > + if (c <= ' ' && c == '\x7f') { > ... > > > And that's it. ;) > > I thank you for your participation.As Geert Stappers and Thomas Schmitt pointed out, that is never true. Therefore, there's a bug executed within that codeblock relative to your config file, attached. Aside from the fact that you should be using the UI directive, I don't immediately see anything wrong with the config. More investigation is necessary. -- -Gene -------------- next part -------------- A non-text attachment was scrubbed... Name: isolinux.cfg Type: application/octet-stream Size: 2036 bytes Desc: not available URL: <http://www.zytor.com/pipermail/syslinux/attachments/20150702/52b1742f/attachment.obj>
On 02.07.2015 11:10, Thomas Schmitt wrote:> Hi, > > poma wrote: >> - if (c <= ' ' || c == '\x7f') { >> + if (c <= ' ' && c == '\x7f') { > > As Geert Stappers pointed out (and can be verified by a > simple test program), the reinstated term > (c <= ' ' && c == '\x7f') > evaluates always as false, because ('\x7f' <= ' ') is false. > > So it is equivalent to removing the code branch > > if (!was_space) > *dst++ = '_'; > was_space = true; > > > I understand the function shall convert whitespace to '_', > condense groups of neighboring whitespaces to a single '_', > discard leading and trailing whitespace. > > In its current git state it converts > > "abc" -> "abc" > " abc " -> "abc" > " a b c " -> "a_b_c" > > The change to > (c <= " " && c == "\x7f") > disables this conversion completely. > " a b c " -> " a b c " > > > It seems your use case needs the whitespaces whereas SYSLINUX > assumes that they are unwanted. > This collision of need and software model needs to be > investigated and solved. > > > Have a nice day :) > > Thomas >Yeah, I can understand this funky logical "operatourism", I've already tested it with deletia. Perhaps syslinux is not the right place to maneuver, but the challenge for me was to make it less invasive patch, there. *If* this is really my user case, which it really is not - this is the Fedora specificumm, it would be more like the extlinux config that I use on BIOS machines: ui menu.c32 menu title The EXTLINUX bootloader timeout 50 label Rawhide 4.2.0-0.rc0.git4.1.fc23.x86_64 kernel /vmlinuz-4.2.0-0.rc0.git4.1.fc23.x86_64 append root=UUID=... ... initrd /initramfs-4.2.0-0.rc0.git4.1.fc23.x86_64.img Thanks, once again.
On 02.07.2015 12:34, Gene Cumm wrote:> > As Geert Stappers and Thomas Schmitt pointed out, that is never true. > Therefore, there's a bug executed within that codeblock relative to > your config file, attached. >It is not really my config. :)> Aside from the fact that you should be using the UI directive, I don't > immediately see anything wrong with the config. More investigation is > necessary. >Real question arises here, why is the GCC the one that affects the end result.