[ipxe-devel] 64 bit?
Michael Brown
mcb30 at ipxe.org
Tue Jan 22 16:16:00 UTC 2019
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
More information about the ipxe-devel
mailing list