On 22/01/2019 16:07, Johannes Thoma wrote:
From memory: the issue in 32-bit builds is that format_decimal() in
core/vsprintf.c will handle only 32-bit (signed) integers and so the
HTTP range request headers cannot be constructed correctly for >2GB.
This limitation in format_decimal() is originally intended to allow
for the binary to be kept as small as possible, by avoiding the need
to link in the 64-bit division code. This is arguably obsolete nowadays.
I have prepared the patch for booting images > 2GB over http also on 32-bit
systems, before I submit it, I would like to do further tests.
How do I run the regression tests (especially the vsprintf_test)?
The easiest way is to build the Linux userspace test suite:
make bin-x86_64-linux/tests.linux bin-i386-linux/tests.linux
You can then run those as normal executables. I would typically run
them under Valgrind, e.g.:
make bin-x86_64-linux/tests.linux bin-i386-linux/tests.linux && \
valgrind ./bin-x86_64-linux/tests.linux && \
valgrind ./bin-i386-linux/tests.linux
You can also build individual test executables using e.g.
make bin-x86_64-linux/vsprintf_test.linux
The tests can run in any environment, so if you really want to then you
can build e.g.
make bin/tests.iso
and boot that ISO on a VM (or physical machine).
And is there a way to compile 'everything' in order to check that my patch
doesn't break other builds?
Yes:
make everything
Thanks,
Michael
_______________________________________________
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel