ich eine Anwendung, die einen Fehler macht, wenn ich versuche, es zu laufen:gcc/ld - ein neues libc.so mit __isoc99_sscanf erstellen @@ GLIBC_2.7 Symbol von glibc.2.6
/lib/libc.so.6: version `GLIBC_2.7' not found
Aber die nur Symbol aus glibc benötigt 2.7 ist
[email protected]@GLIBC_2.7
ich mit diesem Symbol eine kleine einzelne Funktion „Bibliothek“ schreiben will, als Alias __sscanf()
wie kann ich das mit gcc/ld?
Meine Variante nicht akzeptiert wird, weil "@@" Symbole
int [email protected]@GLIBC_2.7(const char *, const char *, ...) __attribute__((alias("__sscanf")));
an zweiter Stelle meine Variante ist
#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");
aber es endet mit „-Version Knoten nicht für Symbol gefunden __isoc99_sscanf @@ GLIBC_2.7 "Fehler vom Linker.
Die Anwendung ist eine Binärdatei, also hat es bereits __isoc99_scanf – osgx