tcc-0.9.26-dlopenoptional.diff at [dbb450841d]

File build/tcc-patches/0.9.26/tcc-0.9.26-dlopenoptional.diff artifact 438169d89a part of check-in dbb450841d


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;