This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] [committed] AIX collect2 weak symbol exports
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sun, 07 Dec 2003 23:24:48 -0500
- Subject: [PATCH] [committed] AIX collect2 weak symbol exports
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