bug-gnu-utils
[Top][All Lists]
Advanced

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

Re: Missing variable 'pe_data_import_dll'


From: Nick Clifton
Subject: Re: Missing variable 'pe_data_import_dll'
Date: 24 Sep 2001 16:18:53 +0100

Hi Guys,

  OK, Sorry about this.  I have had to revert Charle's patch to fix
  pe_data_import_dll' since it breaks --enable-targets=all builds.

  Instead I have just moved the definition of pe_data_import_dll
  outside of the section of code controlled by DLL_SUPPORT, so that it
  will be available even for targets like the arm-epoc-pe.

Cheers
        Nick


2001-09-24  Nick Clifton  <address@hidden>

        * pe-dll.c (pe_create_import_fixup): Revert previous patch.
        * emultemp/pe.em (pe_data_import_dll): Move definition outside of
        DLL_SUPPORT controlled code.

Index: pe-dll.c
===================================================================
RCS file: /cvs/src/src/ld/pe-dll.c,v
retrieving revision 1.31
diff -p -r1.31 pe-dll.c
*** pe-dll.c    2001/09/24 15:03:01     1.31
--- pe-dll.c    2001/09/24 15:18:12
*************** pe_create_import_fixup (rel)
*** 2069,2076 ****
      }
  
    {
!     bfd *b = make_import_fixup_entry (name, fixup_name,
!                                     pe_get_data_import_dll_name (),
                                      output_bfd);
      add_bfd_to_link (b, b->filename, &link_info);
    }
--- 2069,2078 ----
      }
  
    {
!     extern char * pe_data_import_dll;
!     char * dll_symname = pe_data_import_dll ? "unknown" : pe_data_import_dll;
! 
!     bfd *b = make_import_fixup_entry (name, fixup_name, dll_symname,
                                      output_bfd);
      add_bfd_to_link (b, b->filename, &link_info);
    }

Index: emultempl/pe.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/pe.em,v
retrieving revision 1.53
diff -p -r1.53 pe.em
*** pe.em       2001/09/24 15:03:01     1.53
--- pe.em       2001/09/24 15:18:13
*************** static char *pe_out_def_filename = NULL;
*** 153,159 ****
  static char *pe_implib_filename = NULL;
  static int pe_enable_auto_image_base = 0;
  static char *pe_dll_search_prefix = NULL;
- static char *pe_data_import_dll = NULL;
  #endif
  
  extern const char *output_filename;
--- 153,158 ----
*************** gld_${EMULATION_NAME}_after_parse ()
*** 756,778 ****
      ldlang_add_undef (entry_symbol);
  }
  
! /* Previously, pe-dll.c directly accessed pe_data_import_dll,
!    which was only defined if DLL_SUPPORT.  This cause a build
!    failure on certain targets. At least this function will
!    exist regardless of whether DLL_SUPPORT is defined or not.
!   
!    However, it's still a kludge.  pe-dll.c shouldn't directly
!    call any functions other than the gld_${EMULATION_NAME}_*.  */
! 
! char *
! pe_get_data_import_dll_name ()
! {
! #ifdef DLL_SUPPORT
!   return pe_data_import_dll;
! #else
!   return "unknown";
! #endif
! }
  
  #ifdef DLL_SUPPORT
  static struct bfd_link_hash_entry *pe_undef_found_sym;
--- 755,766 ----
      ldlang_add_undef (entry_symbol);
  }
  
! /* pe-dll.c directly accesses pe_data_import_dll,
!    so it must be defined outside of #ifdef DLL_SUPPORT.
!    Note - this variable is deliberately not initialised.
!    This allows it to be treated as a common varaible, and only
!    exist in one incarnation in a multiple target enabled linker.  */
! char * pe_data_import_dll;
  
  #ifdef DLL_SUPPORT
  static struct bfd_link_hash_entry *pe_undef_found_sym;




reply via email to

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