aboutsummaryrefslogtreecommitdiff
path: root/gcc/collect2.c
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2003-12-08 04:18:44 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2003-12-07 23:18:44 -0500
commit0eb31ee3566c07d81e5dfeb500215e224b42169f (patch)
treeef24f32400467f1946cffdbca90dcc5187add008 /gcc/collect2.c
parent6f1ec3b946775850e9a6b6209c816cf94a78ae43 (diff)
downloadgcc-0eb31ee3566c07d81e5dfeb500215e224b42169f.zip
gcc-0eb31ee3566c07d81e5dfeb500215e224b42169f.tar.gz
gcc-0eb31ee3566c07d81e5dfeb500215e224b42169f.tar.bz2
collect2.c (GCC_OK_SYMBOL): Add support for AIX C_WEAKEXT.
* collect2.c (GCC_OK_SYMBOL): Add support for AIX C_WEAKEXT. (GCC_UNDEF_SYMBOL): Same. Co-Authored-By: Graham Reed <greed@pobox.com> From-SVN: r74407
Diffstat (limited to 'gcc/collect2.c')
-rw-r--r--gcc/collect2.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/gcc/collect2.c b/gcc/collect2.c
index 73ef344..0d20b4d 100644
--- a/gcc/collect2.c
+++ b/gcc/collect2.c
@@ -2552,7 +2552,7 @@ scan_libraries (const char *prog_name)
#ifdef OBJECT_FORMAT_COFF
-#if defined(EXTENDED_COFF)
+#if defined (EXTENDED_COFF)
# define GCC_SYMBOLS(X) (SYMHEADER(X).isymMax + SYMHEADER(X).iextMax)
# define GCC_SYMENT SYMR
@@ -2565,14 +2565,26 @@ scan_libraries (const char *prog_name)
# 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))
+# 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