Tengo una aplicación, lo que hace un error al intentar ejecutarlo:gcc/LD - crear una nueva libc.so con __isoc99_sscanf @@ GLIBC_2.7 símbolo de glibc.2.6
/lib/libc.so.6: version `GLIBC_2.7' not found
Pero el único símbolo que necesita de glibc 2.7 es
[email protected]@GLIBC_2.7
Quiero escribir un pequeño sencillo "biblioteca" función con este símbolo como alias para __sscanf()
¿Cómo puedo hacer esto con gcc/ld?
Mi variante no es aceptada porque "@@" símbolos
int [email protected]@GLIBC_2.7(const char *, const char *, ...) __attribute__((alias("__sscanf")));
segundo mi variante es
#include <stdarg.h>
int __isoc99_sscanf1(const char *a, const char *b, va_list args)
{
int i;
va_list ap;
va_copy(ap,args);
i=sscanf(a,b,ap);
va_end(ap);
return i;
}
// __asm__(".symver __isoc99_sscanf,[email protected]@GLIBC_2.7");
__asm__(".symver __isoc99_sscanf1,[email protected]@GLIBC_2.7");
pero finaliza con un "nodo de la versión no encontrado para __isoc99_sscanf símbolo @@ GLIBC_2.7 "error del enlazador.
la aplicación es un archivo binario, por lo que ya tiene __isoc99_scanf – osgx