Le dim. 10 avr. 2016 15:53, Pete Batard <p...@akeo.ie> a écrit : > Hi, > > I am using the GRUB codebase to build generic read-only EFI file system > drivers [1] and during that process, I found that some compilers (e.g. > MSVC, but most likely others) may insert implicit calls to memset/memcpy > when initializing or copying structure content, which defeats the use of > grub_memset/grub_memcpy as well as the avoidance of standard libraries. > We alias memcpy/memset to their grub equivalents because of this. Why is the same solution not suitable for you? Where compiler inserts those references is unpredictable.
> > This patch ensures that grub_memset/grub_memcpy are used where required > in the file system sources (as well as some corollary files). > > The patch also removes unnecessary trailing whitespaces for the affected > files. > > A couple of additional notes: > > * The patch also removes page breaks on some files as this is something > my git client (TortoiseGit) does automatically on its own and that > doesn't seem to be configurable. I do hope that this isn't a deal > breaker, as it would be a major PITA for me to rework patches to keep > the breaks in, and I kind of fail to see why we'd want to keep them in > the sources. > > * Yes, the 'const char nl[2] = "\n";' in misc.h does generate an > implicit memcpy(), at least with MSVC for ARM. For what is worth, every > non whitespace change that was applied in this patch stems from looking > at the generated assembly, and isolating the memset/memcpy references. > > * In zfs.c, you'll see that some function calls had to be modified to > get their parameters by reference, as passing them by value was also > generating implicit memcpy calls. > > Regards, > > /Pete > > [1] https://github.com/pbatard/efifs > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel >
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel