public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* patch: Update of pep x86_64 support of ld
@ 2007-08-02 11:51 Kai Tietz
  0 siblings, 0 replies; only message in thread
From: Kai Tietz @ 2007-08-02 11:51 UTC (permalink / raw)
  To: binutils

[-- Attachment #1: Type: text/plain, Size: 1705 bytes --]

Hi,

I recognized some troubles in the pe+ support for x86_64 mingw target. It 
warns about '@xx' stuff passed by gcc, but this can be silently ignored by 
setting 'pep_enable_stdcall_fixup' to true for now. In near future when I 
fix spec definition of gcc, the related around 'pep_enable_stdcall_fixup' 
can be removed completly for this target (There are no '@xx' for this 
target at all). I updated for this target the autofilter_symbollist_i386 
list, too.
 
Further I detected that the test-case of ld-pe : direct fails, because the 
shared object detection wasn't merged from pe to pep.

ChangeLog for ld

2007-07-24  Kai Tietz  <kai.tietz@onevision.com>

        * emultempl/pep.em: (pep_enable_stdcall_fixup): Set to value 1.
        gld_xxx_recognized_file: Use pep_bfd_is_dll for detection of 
shared
        objects.
        * pe-dll.c: (autofilter_symbollist_i386): Define set
        for amd64 mingw target.

Cheers,
 i.A. Kai Tietz



|  (\_/)  This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.

------------------------------------------------------------------------------------------
  OneVision Software Entwicklungs GmbH & Co. KG
  Dr.-Leo-Ritter-Straße 9 - 93049 Regensburg
  Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 - www.OneVision.com
  Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
  Handelsregister: HRA 6744, Amtsgericht Regensburg
  Komplementärin: OneVision Software Entwicklungs Verwaltungs GmbH
  Dr.-Leo-Ritter-Straße 9 – 93049 Regensburg
  Handelsregister: HRB 8932, Amtsgericht Regensburg - Geschäftsführer: 
Ulrike Döhler, Manuela Kluger

[-- Attachment #2: pep_update.txt --]
[-- Type: text/plain, Size: 2524 bytes --]

? scripttempl/pep.sc_new
Index: pe-dll.c
===================================================================
RCS file: /cvs/src/src/ld/pe-dll.c,v
retrieving revision 1.99
diff -b -u -r1.99 pe-dll.c
--- pe-dll.c	6 Jul 2007 14:09:41 -0000	1.99
+++ pe-dll.c	2 Aug 2007 11:40:16 -0000
@@ -203,12 +203,21 @@
   { STRING_COMMA_LEN (".text") },
   /* Entry point symbols, and entry hooks.  */
   { STRING_COMMA_LEN ("cygwin_crt0") },
+#ifdef pe_use_x86_64
+  { STRING_COMMA_LEN ("DllMain") },
+  { STRING_COMMA_LEN ("DllEntryPoint") },
+  { STRING_COMMA_LEN ("DllMainCRTStartup") },
+  { STRING_COMMA_LEN ("_cygwin_dll_entry") },
+  { STRING_COMMA_LEN ("_cygwin_crt0_common") },
+  { STRING_COMMA_LEN ("_cygwin_noncygwin_dll_entry") },
+#else
   { STRING_COMMA_LEN ("DllMain@12") },
   { STRING_COMMA_LEN ("DllEntryPoint@0") },
   { STRING_COMMA_LEN ("DllMainCRTStartup@12") },
   { STRING_COMMA_LEN ("_cygwin_dll_entry@12") },
   { STRING_COMMA_LEN ("_cygwin_crt0_common@8") },
   { STRING_COMMA_LEN ("_cygwin_noncygwin_dll_entry@12") },
+#endif
   { STRING_COMMA_LEN ("cygwin_attach_dll") },
   { STRING_COMMA_LEN ("cygwin_premain0") },
   { STRING_COMMA_LEN ("cygwin_premain1") },
Index: emultempl/pep.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/pep.em,v
retrieving revision 1.4
diff -b -u -r1.4 pep.em
--- emultempl/pep.em	19 Jul 2007 19:56:10 -0000	1.4
+++ emultempl/pep.em	2 Aug 2007 11:40:16 -0000
@@ -106,7 +106,7 @@
 static lang_assignment_statement_type *image_base_statement = 0;
 
 #ifdef DLL_SUPPORT
-static int    pep_enable_stdcall_fixup = -1; /* 0=disable 1=enable.  */
+static int    pep_enable_stdcall_fixup = 1; /* 0=disable 1=enable (default).  */
 static char * pep_out_def_filename = NULL;
 static char * pep_implib_filename = NULL;
 static int    pep_enable_auto_image_base = 0;
@@ -1305,19 +1305,8 @@
 #ifdef TARGET_IS_i386pep
   pep_dll_id_target ("pei-x86-64");
 #endif
-  if (bfd_get_format (entry->the_bfd) == bfd_object)
-    {
-      char fbuf[LD_PATHMAX + 1];
-      const char *ext;
-
-      if (REALPATH (entry->filename, fbuf) == NULL)
-	strncpy (fbuf, entry->filename, sizeof (fbuf));
-
-      ext = fbuf + strlen (fbuf) - 4;
-
-      if (strcmp (ext, ".dll") == 0 || strcmp (ext, ".DLL") == 0)
-	return pep_implied_import_dll (fbuf);
-    }
+  if (pep_bfd_is_dll (entry->the_bfd))
+    return pep_implied_import_dll (entry->filename);
 #endif
   return FALSE;
 }
=

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-08-02 11:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-02 11:51 patch: Update of pep x86_64 support of ld Kai Tietz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).