diff -uNr tcc-0.9.26.orig/libtcc.c tcc-0.9.26-1dlopenoptional/libtcc.c
--- tcc-0.9.26.orig/libtcc.c 2013-02-15 08:24:00.000000000 -0600
+++ tcc-0.9.26-1dlopenoptional/libtcc.c 2016-03-20 03:08:47.546782000 -0500
@@ -114,11 +114,9 @@
}
#endif
-#ifndef CONFIG_TCC_STATIC
-void dlclose(void *p)
-{
- FreeLibrary((HMODULE)p);
-}
+#if !defined(CONFIG_TCC_STATIC) || (defined(CONFIG_TCC_STATIC) && defined(CONFIG_TCC_STATIC_NODLOPEN))
+#undef dlclose
+#define dlclose(p) FreeLibrary((HMODULE)p)
#endif
#ifdef LIBTCC_AS_DLL
diff -uNr tcc-0.9.26.orig/tccrun.c tcc-0.9.26-1dlopenoptional/tccrun.c
--- tcc-0.9.26.orig/tccrun.c 2013-02-15 08:24:00.000000000 -0600
+++ tcc-0.9.26-1dlopenoptional/tccrun.c 2014-05-21 23:33:35.056517000 -0500
@@ -674,6 +674,7 @@
/* ------------------------------------------------------------- */
#ifdef CONFIG_TCC_STATIC
+#ifndef CONFIG_TCC_STATIC_NODLOPEN
/* dummy function for profiling */
ST_FUNC void *dlopen(const char *filename, int flag)
{
@@ -688,6 +689,7 @@
{
return "error";
}
+#endif
typedef struct TCCSyms {
char *str;