Mam aplikacji, która robi błąd, gdy próbuję go uruchomić:gcc/LD - utworzyć nową libc.so z __isoc99_sscanf @@ GLIBC_2.7 symbol z glibc.2.6
/lib/libc.so.6: version `GLIBC_2.7' not found
Ale tylko symbol potrzebuje od glibc 2.7 jest
[email protected]@GLIBC_2.7
Chcę napisać mały jednofunkcyjny "biblioteka" z tym symbolem jako alias do __sscanf()
jak mogę to zrobić z gcc/LD?
Mój wariant nie jest akceptowana, ponieważ "@@" symboli
int [email protected]@GLIBC_2.7(const char *, const char *, ...) __attribute__((alias("__sscanf")));
sekunda mój wariant jest
#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");
ale kończy z „Wersja węźle nie znaleziono dla symbolu __isoc99_sscanf @@ GLIBC_2.7 "błąd z linkera.
Aplikacja jest plikiem binarnym, więc już ma __isoc99_scanf – osgx