mirror of
https://github.com/ipxe/ipxe
synced 2025-12-20 03:55:46 +03:00
Import various libgcc functions from syslinux.
Experimentation reveals that gcc ignores -mrtd for the implicit arithmetic functions (e.g. __udivdi3), but not for the implicit memcpy() and memset() functions. Mark the implicit arithmetic functions with __attribute__((cdecl)) to compensate for this. (Note: we cannot mark with with __cdecl, because we define __cdecl to incorporate regparm(0) as well.)
This commit is contained in:
@@ -1,20 +0,0 @@
|
||||
/** @file
|
||||
*
|
||||
* gcc implicit functions
|
||||
*
|
||||
* gcc sometimes likes to insert implicit calls to memcpy().
|
||||
* Unfortunately, there doesn't seem to be any way to prevent it from
|
||||
* doing this, or to force it to use the optimised memcpy() as seen by
|
||||
* C code; it insists on inserting a symbol reference to "memcpy". We
|
||||
* therefore include wrapper functions just to keep gcc happy.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
void * gcc_implicit_memcpy ( void *dest, const void *src,
|
||||
size_t len ) asm ( "memcpy" );
|
||||
|
||||
void * gcc_implicit_memcpy ( void *dest, const void *src, size_t len ) {
|
||||
return memcpy ( dest, src, len );
|
||||
}
|
||||
Reference in New Issue
Block a user