dotgnu-pnet-commits
[Top][All Lists]
Advanced

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

[Dotgnu-pnet-commits] CVS: pnet/ilalink link_class.c,1.11,1.12 link_lib


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/ilalink link_class.c,1.11,1.12 link_library.c,1.15,1.16 link_main.c,1.16,1.17
Date: Thu, 27 Feb 2003 19:04:22 -0500

Update of /cvsroot/dotgnu-pnet/pnet/ilalink
In directory subversions:/tmp/cvs-serv8422/ilalink

Modified Files:
        link_class.c link_library.c link_main.c 
Log Message:


Handle object files from Visual C++ a little better in the linker.


Index: link_class.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ilalink/link_class.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -r1.11 -r1.12
*** link_class.c        18 Feb 2003 07:23:49 -0000      1.11
--- link_class.c        28 Feb 2003 00:04:20 -0000      1.12
***************
*** 114,118 ****
                                isModule = 1;
                        }
!                       else if(linker->memoryModel != 0)
                        {
                                /* Duplicate classes are valid in C objects, as 
they
--- 114,119 ----
                                isModule = 1;
                        }
!                       else if(linker->memoryModel != 0 ||
!                               !strncmp(ILClass_Name(classInfo), 
"$ArrayType$", 11))
                        {
                                /* Duplicate classes are valid in C objects, as 
they

Index: link_library.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ilalink/link_library.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -r1.15 -r1.16
*** link_library.c      25 Aug 2002 05:27:49 -0000      1.15
--- link_library.c      28 Feb 2003 00:04:20 -0000      1.16
***************
*** 472,475 ****
--- 472,493 ----
                if(libSymbol)
                {
+                       /* Don't report an error if it looks like a PInvoke or
+                          field RVA definition.  This can happen with code
+                          generated by certain C compilers */
+                       if(ILMember_IsMethod(member))
+                       {
+                               if(ILMethod_HasPInvokeImpl((ILMethod *)member))
+                               {
+                                       return 1;
+                               }
+                       }
+                       if(ILMember_IsField(member))
+                       {
+                               if((ILField_Attrs((ILField *)member) &
+                                               IL_META_FIELDDEF_HAS_FIELD_RVA) 
!= 0)
+                               {
+                                       return 1;
+                               }
+                       }
                        fprintf(stderr, "%s : multiply defined\n", name);
                        linker->error = 1;

Index: link_main.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ilalink/link_main.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -r1.16 -r1.17
*** link_main.c 13 Feb 2003 23:19:12 -0000      1.16
--- link_main.c 28 Feb 2003 00:04:20 -0000      1.17
***************
*** 864,876 ****
                        }
                }
-               else if(format == IL_IMAGETYPE_DLL)
-               {
-                       if(ILLinkerHasEntryPoint(linker))
-                       {
-                               fprintf(stderr, "%s: DLL's cannot have entry 
points\n",
-                                               outputFile);
-                               errors = 1;
-                       }
-               }
        }
  
--- 864,867 ----





reply via email to

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