Hi, Adam Williamson> I think it would be better if someone else confirms there's actually > something to fix.There was indeed the shortcomming that byte values 128 to 255 were treated as whitespace and mapped to "_" resp. "". This would affect non-ASCII characters of UTF-8 or old ISO-8859. But the reason why gcc 5 made a difference to gcc 4.9 is not found yet. The question why poma's observations are not reproducible for you needs an answer, too. Your observations could match e.g. a trailing garbage byte which gcc 5 causes in SYSAPPEND strings and which gets dropped by the now functional whitespace converter. Hopefully some byte in the range of 1 to 31. poma's observations would be explainable if on his system a byte in the range of 128 to 255 in one of the SYSAPPEND strings has to survive. (But why did "unsigned char c;" not solve the problem for poma ? Why did it work with gcc 4.9 ?) One should create a possibility to dump the SYSAPPEND strings. There is a function ./core/sysappend.c:void print_sysappend(void) but i cannot spot any occasion where it gets called. Have a nice day :) Thomas
On Fri, 2015-07-03 at 22:39 +0200, Thomas Schmitt wrote:> Hi, > > Adam Williamson > > I think it would be better if someone else confirms there's > > actually > > something to fix. > > There was indeed the shortcomming that byte values 128 to 255 > were treated as whitespace and mapped to "_" resp. "". > This would affect non-ASCII characters of UTF-8 or old > ISO-8859. > > > But the reason why gcc 5 made a difference to gcc 4.9 > is not found yet. > The question why poma's observations are not reproducible > for you needs an answer, too. > > Your observations could match e.g. a trailing garbage byte > which gcc 5 causes in SYSAPPEND strings and which gets dropped > by the now functional whitespace converter. Hopefully some byte > in the range of 1 to 31. > > poma's observations would be explainable if on his system > a byte in the range of 128 to 255 in one of the SYSAPPEND > strings has to survive. (But why did "unsigned char c;" > not solve the problem for poma ? Why did it work with gcc 4.9 ?) > > One should create a possibility to dump the SYSAPPEND > strings. There is a function > ./core/sysappend.c:void print_sysappend(void) > but i cannot spot any occasion where it gets called. > > > Have a nice day :)I suppose it's possible we were testing with different syslinux configurations. I was building Fedora Rawhide live images as my test, with the volume label '20150702-syslinux-x86_64'. The volume label chosen for live images does in fact appear in the syslinux menu text, for Fedora live images. I don't know what kind of test poma was using. -- Adam Williamson Fedora QA Community Monkey IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net http://www.happyassassin.net
On Jul 3, 2015 4:42 PM, "Thomas Schmitt via Syslinux" <syslinux at zytor.com> wrote:> The question why poma's observations are not reproducible > for you needs an answer, too.This will be exhibited on specific machines, not all. If the particular machine suffers some sort of partial fault that corrupts the appropriate string to contain a character between 128 and 255, that would explain this quite easily.> One should create a possibility to dump the SYSAPPEND > strings. There is a function > ./core/sysappend.c:void print_sysappend(void) > but i cannot spot any occasion where it gets called.A simple COM32. -- -Gene
Gene Cumm wrote:> On Jul 3, 2015 4:42 PM, "Thomas Schmitt via Syslinux" > <syslinux at zytor.com> wrote: > > One should create a possibility to dump the SYSAPPEND > > strings. There is a function > > ./core/sysappend.c:void print_sysappend(void) > > but i cannot spot any occasion where it gets called. > > A simple COM32. > > -- > -Genediff --git a/com32/samples/Makefile b/com32/samples/Makefile index 06e9684..816b073 100644 --- a/com32/samples/Makefile +++ b/com32/samples/Makefile @@ -23,7 +23,7 @@ all: hello.c32 resolv.c32 serialinfo.c32 \ localboot.c32 \ fancyhello.c32 fancyhello.lnx \ keytest.c32 keytest.lnx \ - advdump.c32 entrydump.c32 + advdump.c32 entrydump.c32 sysappend.c32 tidy dist: rm -f *.o *.lo *.a *.lst *.elf .*.d *.tmp diff --git a/com32/samples/sysappend.c b/com32/samples/sysappend.c new file mode 100644 index 0000000..fe3d4c6 --- /dev/null +++ b/com32/samples/sysappend.c @@ -0,0 +1,9 @@ +#include <stdio.h> +#include <stdlib.h> + +int main(int argc __unused, char **argv __unused) +{ + print_sysappend(); + + return 0; +} diff --git a/core/sysappend.c b/core/sysappend.c index 758703e..3fe4ea6 100644 --- a/core/sysappend.c +++ b/core/sysappend.c @@ -126,7 +126,7 @@ void sysappend_set_fs_uuid(void) /* * Print the sysappend strings, in order */ -void print_sysappend(void) +__export void print_sysappend(void) { int i; -- 2.2.0