From 63099a2916d2f281aadc6304583bda09909f2a53 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Tue, 4 Feb 2014 21:31:07 -0500 Subject: [PATCH] Add some stuff to libc.so.conf --- etc/libc.so.conf | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/etc/libc.so.conf b/etc/libc.so.conf index 669c50a..48b3b01 100644 --- a/etc/libc.so.conf +++ b/etc/libc.so.conf @@ -1,5 +1,12 @@ # See ltrace.conf(5) for description of syntax of this file. +# XXX ltrace misses long double and long long support +typedef ldouble = double; +typedef llong = long; +typedef ullong = ulong; + +void __libc_start_main(hide(void*), hide(int), array(string, arg2)); + # arpa/inet.h typedef in_addr = struct(hex(uint)); int inet_aton(string, +in_addr*); @@ -233,9 +240,22 @@ void setbuffer(file,addr,ulong); void setlinebuf(file); int rename(string,string); +# xlocale.h +typedef locale_t = void*; +locale_t newlocale(hex(int), string, locale_t); + # stdlib.h -long __strtol_internal(string,addr,int); -ulong __strtoul_internal(string,addr,int); +long __strtol_internal(string, +string*, int); +ulong __strtoul_internal(string, +string*, int); + +double strtod(string, +string*); +float strtof(string, +string*); +ldouble strtold(string, +string*); + +double strtod_l(string, +string*, locale_t); +float strtof_l(string, +string*, locale_t); +ldouble strtold_l(string, +string*, locale_t); + int atexit(addr); addr bsearch(string, addr, ulong, ulong, addr); addr calloc(ulong, ulong); @@ -343,6 +363,10 @@ addr gmtime(addr); addr localtime(addr); ulong strftime(+string2,ulong,string,addr); long time(addr); +# XXX in fact (time_t, long), which may be (llong, long) on 32-bit +# arches. We don't have llong as of this writing. +typedef timespec = struct(long, long); +int nanosleep(timespec*, timespec*); # unistd.h void _exit(int); @@ -482,11 +506,6 @@ wstring_t wcstok(wstring_t, wstring_t, +wstring_t*); ulong wcsftime(+wstring2_t, ulong, wstring_t, addr); -# XXX ltrace misses long double and long long support -typedef ldouble = double; -typedef llong = long; -typedef ullong = ulong; - double wcstod(wstring_t, +wstring_t*); float wcstof(wstring_t, +wstring_t*); ldouble wcstold(wstring_t, +wstring_t*); -- 2.7.4