[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