[PATCH] [committed] AIX collect2 weak symbol exports

David Edelsohn dje@watson.ibm.com
Mon Dec 8 04:24:00 GMT 2003


	collect2 needs to export WEAKEXT symbols as well for AIX.

David


2003-12-07  David Edelsohn  <edelsohn@gnu.org>
            Graham Reed <greed@pobox.com>

	PR target/13150
        * collect2.c (GCC_OK_SYMBOL): Add support for AIX C_WEAKEXT.
        (GCC_UNDEF_SYMBOL): Same.

Index: collect2.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/collect2.c,v
retrieving revision 1.155
diff -c -p -r1.155 collect2.c
*** collect2.c	2 Nov 2003 00:12:45 -0000	1.155
--- collect2.c	8 Dec 2003 04:10:51 -0000
*************** scan_libraries (const char *prog_name)
*** 2552,2558 ****
  
  #ifdef OBJECT_FORMAT_COFF
  
! #if defined(EXTENDED_COFF)
  
  #   define GCC_SYMBOLS(X)	(SYMHEADER(X).isymMax + SYMHEADER(X).iextMax)
  #   define GCC_SYMENT		SYMR
--- 2552,2558 ----
  
  #ifdef OBJECT_FORMAT_COFF
  
! #if defined (EXTENDED_COFF)
  
  #   define GCC_SYMBOLS(X)	(SYMHEADER(X).isymMax + SYMHEADER(X).iextMax)
  #   define GCC_SYMENT		SYMR
*************** scan_libraries (const char *prog_name)
*** 2565,2578 ****
  
  #   define GCC_SYMBOLS(X)	(HEADER(ldptr).f_nsyms)
  #   define GCC_SYMENT		SYMENT
! #   define GCC_OK_SYMBOL(X) \
!      (((X).n_sclass == C_EXT) && \
!       ((X).n_scnum > N_UNDEF) && \
!       (aix64_flag \
!        || (((X).n_type & N_TMASK) == (DT_NON << N_BTSHFT) \
!            || ((X).n_type & N_TMASK) == (DT_FCN << N_BTSHFT))))
! #   define GCC_UNDEF_SYMBOL(X) \
!      (((X).n_sclass == C_EXT) && ((X).n_scnum == N_UNDEF))
  #   define GCC_SYMINC(X)	((X).n_numaux+1)
  #   define GCC_SYMZERO(X)	0
  
--- 2565,2590 ----
  
  #   define GCC_SYMBOLS(X)	(HEADER(ldptr).f_nsyms)
  #   define GCC_SYMENT		SYMENT
! #   if defined (C_WEAKEXT)
! #     define GCC_OK_SYMBOL(X) \
!        (((X).n_sclass == C_EXT || (X).n_sclass == C_WEAKEXT) && \
!         ((X).n_scnum > N_UNDEF) && \
!         (aix64_flag \
!          || (((X).n_type & N_TMASK) == (DT_NON << N_BTSHFT) \
!              || ((X).n_type & N_TMASK) == (DT_FCN << N_BTSHFT))))
! #     define GCC_UNDEF_SYMBOL(X) \
!        (((X).n_sclass == C_EXT || (X).n_sclass == C_WEAKEXT) && \
!         ((X).n_scnum == N_UNDEF))
! #   else
! #     define GCC_OK_SYMBOL(X) \
!        (((X).n_sclass == C_EXT) && \
!         ((X).n_scnum > N_UNDEF) && \
!         (aix64_flag \
!          || (((X).n_type & N_TMASK) == (DT_NON << N_BTSHFT) \
!              || ((X).n_type & N_TMASK) == (DT_FCN << N_BTSHFT))))
! #     define GCC_UNDEF_SYMBOL(X) \
!        (((X).n_sclass == C_EXT) && ((X).n_scnum == N_UNDEF))
! #   endif
  #   define GCC_SYMINC(X)	((X).n_numaux+1)
  #   define GCC_SYMZERO(X)	0
  



More information about the Gcc-patches mailing list