string: make memcpy() visible to fix LTO linking errors
It seems that sometimes (happening on ARM64, for example with
turris_mox_defconfig) GCC, when linking with LTO, changes the name of
lib/string.c's memcpy() function to memcpy.isra.0.
This is a problem however when GCC for a code such as this:
struct some_struct *info = get_some_struct();
struct some struct tmpinfo;
tmpinfo = *info;
emits a call to memcpy() by builtin behaviour, to copy *info to tmpinfo.
This then results in the following linking error:
.../lz4.c:93: undefined reference to `memcpy'
.../uuid.c:206: more undefined references to `memcpy' follow
Make memcpy() visible by using the __visible macro to avoid this error.
Signed-off-by:
Marek Behún <marek.behun@nic.cz>
Loading
Please register or sign in to comment