tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tinycc-devel] updated library search path patch against cvs


From: Ahilan Anantha
Subject: [Tinycc-devel] updated library search path patch against cvs
Date: Tue, 17 May 2005 16:46:28 -0700
User-agent: Mozilla Thunderbird 1.0.2-1.3.3 (X11/20050513)


Apologies for providing a patch against 0.9.22 instead of CVS!

Here's a new patch against CVS for the library search patch problem.

Cheers,

Ahilan
--- tcc.c.orig  2005-05-17 16:32:22.000000000 -0700
+++ tcc.c       2005-05-17 16:30:45.000000000 -0700
@@ -9696,19 +9696,6 @@
     tcc_define_symbol(s, "__PTRDIFF_TYPE__", "int");
     tcc_define_symbol(s, "__WCHAR_TYPE__", "int");
     
-    /* default library paths */
-#ifdef TCC_TARGET_PE
-    {
-        char buf[1024];
-        snprintf(buf, sizeof(buf), "%s/lib", tcc_lib_path);
-        tcc_add_library_path(s, buf);
-    }
-#else
-    tcc_add_library_path(s, "/usr/local/lib");
-    tcc_add_library_path(s, "/usr/lib");
-    tcc_add_library_path(s, "/lib");
-#endif
-
     /* no section zero */
     dynarray_add((void ***)&s->sections, &s->nb_sections, NULL);
 
@@ -9954,23 +9941,26 @@
     char buf[1024];
     int i;
     
-    /* first we look for the dynamic library if not static linking */
-    if (!s->static_link) {
+    /* look for the library */
+    for(i = 0; i < s->nb_library_paths; i++) {
+       /* if dynamically linking, prefer the dynamic library
+          to the shared library */
+       if (!s->static_link) {
 #ifdef TCC_TARGET_PE
-        snprintf(buf, sizeof(buf), "%s.def", libraryname);
+           snprintf(buf, sizeof(buf), "%s/%s.def", 
+                    s->library_paths[i], libraryname);
 #else
-        snprintf(buf, sizeof(buf), "lib%s.so", libraryname);
+           snprintf(buf, sizeof(buf), "%s/lib%s.so", 
+                    s->library_paths[i], libraryname);
 #endif
-        if (tcc_add_dll(s, buf, 0) == 0)
-            return 0;
-    }
-
-    /* then we look for the static library */
-    for(i = 0; i < s->nb_library_paths; i++) {
-        snprintf(buf, sizeof(buf), "%s/lib%s.a", 
-                 s->library_paths[i], libraryname);
-        if (tcc_add_file_internal(s, buf, 0) == 0)
-            return 0;
+           if (tcc_add_file_internal(s, buf, 0) == 0)
+               return 0;
+       }
+
+       snprintf(buf, sizeof(buf), "%s/lib%s.a", 
+                s->library_paths[i], libraryname);
+       if (tcc_add_file_internal(s, buf, 0) == 0)
+           return 0;
     }
     return -1;
 }
@@ -10539,6 +10529,19 @@
 
     optind = parse_args(s, argc - 1, argv + 1) + 1;
 
+    /* default library paths */
+#ifdef TCC_TARGET_PE
+    {
+        char buf[1024];
+        snprintf(buf, sizeof(buf), "%s/lib", tcc_lib_path);
+        tcc_add_library_path(s, buf);
+    }
+#else
+    tcc_add_library_path(s, "/usr/local/lib");
+    tcc_add_library_path(s, "/usr/lib");
+    tcc_add_library_path(s, "/lib");
+#endif
+
     if (print_search_dirs) {
         /* enough for Linux kernel */
         printf("install: %s/\n", tcc_lib_path);

reply via email to

[Prev in Thread] Current Thread [Next in Thread]