summaryrefslogtreecommitdiff
path: root/gcc/collect2.c
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2001-01-25 20:12:30 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2001-01-25 15:12:30 -0500
commit05dba9ee7c8fb0cb0135c6120a21738503a3fe27 (patch)
tree16b8d2b210162126c0bc5180ef78f906750ade88 /gcc/collect2.c
parent0ef8b11bf2d742a69b1612012c91b3f6f28c9e69 (diff)
downloadgcc-05dba9ee7c8fb0cb0135c6120a21738503a3fe27.tar.gz
config.gcc (rs6000-ibm-aix[5-9]*): Change to aix51.h.
* config.gcc (rs6000-ibm-aix[5-9]*): Change to aix51.h. * collect2.c (main): Delete importf. Add ".obj" file extension. (GCC_CHECK_HDR): Handle AIX V5 new magic number. (aix_std_libs): Add additional AIX libraries to skip. * config/rs6000/aix.h (MY_ISCOFF): Add AIX V5 new magic number. * config/rs6000/aix51.h: New file. From-SVN: r39271
Diffstat (limited to 'gcc/collect2.c')
-rw-r--r--gcc/collect2.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/gcc/collect2.c b/gcc/collect2.c
index c24cefaa913..1541f7cbf22 100644
--- a/gcc/collect2.c
+++ b/gcc/collect2.c
@@ -1,7 +1,7 @@
/* Collect static initialization info into data structures that can be
traversed by C++ initialization and finalization routines.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000 Free Software Foundation, Inc.
+ 1999, 2000, 2001 Free Software Foundation, Inc.
Contributed by Chris Smith (csmith@convex.com).
Heavily modified by Michael Meissner (meissner@cygnus.com),
Per Bothner (bothner@cygnus.com), and John Gilmore (gnu@cygnus.com).
@@ -850,7 +850,6 @@ main (argc, argv)
FILE *outf;
#ifdef COLLECT_EXPORT_LIST
FILE *exportf;
- FILE *importf;
#endif
const char *ld_file_name;
const char *p;
@@ -1219,7 +1218,8 @@ main (argc, argv)
}
else if ((p = strrchr (arg, '.')) != (char *) 0
&& (strcmp (p, ".o") == 0 || strcmp (p, ".a") == 0
- || strcmp (p, ".so") == 0 || strcmp (p, ".lo") == 0))
+ || strcmp (p, ".so") == 0 || strcmp (p, ".lo") == 0
+ || strcmp (p, ".obj") == 0))
{
if (first_file)
{
@@ -2664,13 +2664,16 @@ scan_libraries (prog_name)
#ifdef OBJECT_FORMAT_COFF
#if defined(EXTENDED_COFF)
+
# define GCC_SYMBOLS(X) (SYMHEADER(X).isymMax + SYMHEADER(X).iextMax)
# define GCC_SYMENT SYMR
# define GCC_OK_SYMBOL(X) ((X).st == stProc || (X).st == stGlobal)
# define GCC_SYMINC(X) (1)
# define GCC_SYMZERO(X) (SYMHEADER(X).isymMax)
# define GCC_CHECK_HDR(X) (PSYMTAB(X) != 0)
+
#else
+
# define GCC_SYMBOLS(X) (HEADER(ldptr).f_nsyms)
# define GCC_SYMENT SYMENT
# define GCC_OK_SYMBOL(X) \
@@ -2683,11 +2686,20 @@ scan_libraries (prog_name)
(((X).n_sclass == C_EXT) && ((X).n_scnum == N_UNDEF))
# define GCC_SYMINC(X) ((X).n_numaux+1)
# define GCC_SYMZERO(X) 0
+
+/* 0757 = U803XTOCMAGIC (AIX 4.3) and 0767 = U64_TOCMAGIC (AIX V5) */
+#ifdef _AIX51
+# define GCC_CHECK_HDR(X) \
+ ((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
+ || (HEADER (X).f_magic == 0767 && aix64_flag))
+#else
# define GCC_CHECK_HDR(X) \
((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
|| (HEADER (X).f_magic == 0757 && aix64_flag))
#endif
+#endif
+
extern char *ldgetname ();
/* COFF version to scan the name list of the loaded program for
@@ -2913,12 +2925,18 @@ if (debug) fprintf (stderr, "found: %s\n", lib_buf);
static const char *aix_std_libs[] = {
"/unix",
"/lib/libc.a",
+ "/lib/libm.a",
"/lib/libc_r.a",
+ "/lib/libm_r.a",
"/usr/lib/libc.a",
+ "/usr/lib/libm.a",
"/usr/lib/libc_r.a",
+ "/usr/lib/libm_r.a",
"/usr/lib/threads/libc.a",
"/usr/ccs/lib/libc.a",
+ "/usr/ccs/lib/libm.a",
"/usr/ccs/lib/libc_r.a",
+ "/usr/ccs/lib/libm_r.a",
NULL
};