about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libtools/obstack.c12
-rwxr-xr-xsrc/wrapped32/wrappedlibc_private.h2
2 files changed, 13 insertions, 1 deletions
diff --git a/src/libtools/obstack.c b/src/libtools/obstack.c
index 08719adb..2522f37b 100644
--- a/src/libtools/obstack.c
+++ b/src/libtools/obstack.c
@@ -26,6 +26,9 @@
 #include "auxval.h"
 #include "elfloader.h"
 #include "bridge.h"
+#ifdef BOX32
+#include "myalign32.h"
+#endif
 
 typedef void    (*vFv_t)    ();
 typedef int32_t (*iFppp_t)  (void*, void*, void*);
@@ -230,6 +233,15 @@ EXPORT int32_t my_obstack_vprintf(x64emu_t* emu, struct obstack* obstack, void*
     int r = obstack_vprintf(obstack, (const char*)fmt, VARARGS);
     return r;
 }
+#ifdef BOX32
+EXPORT int32_t my32_obstack_vprintf(x64emu_t* emu, struct obstack* obstack, void* fmt, void* b)
+{
+    myStackAlign32((const char*)fmt, b, emu->scratch);
+    PREPARE_VALIST_32;
+    int r = obstack_vprintf(obstack, (const char*)fmt, VARARGS_32);
+    return r;
+}
+#endif
 #endif
 
 EXPORT void* my_obstack_alloc_failed_handler = NULL;
diff --git a/src/wrapped32/wrappedlibc_private.h b/src/wrapped32/wrappedlibc_private.h
index d5f82426..1a2391a4 100755
--- a/src/wrapped32/wrappedlibc_private.h
+++ b/src/wrapped32/wrappedlibc_private.h
@@ -1197,7 +1197,7 @@ GOW(ntohs, WEW)
 //GOM(_obstack_newchunk, vEpi) //%%,noE
 // obstack_printf   // Weak
 // __obstack_printf_chk
-//GOWM(obstack_vprintf, iEEpppp)  //%%
+GOWM(obstack_vprintf, iEEpppp)  //%%
 // __obstack_vprintf_chk
 //GOWM(on_exit, iEEpp)  //%%
 //GO2(__on_exit, iEEpp, my_on_exit)   //%%