From 6690d24c2cd5fe1f37d5d040d9fb071b6fe7bd97 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 21 Jun 1999 13:20:26 -0700 Subject: [PATCH] collect2.c (main): Log frame table count. * collect2.c (main): Log frame table count. (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal. (scan_prog_file) [COFF]: Handle frame tables. * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define. (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define. * alpha/elf.h: Undef them again. * alpha/vms.h: Remove their definitions. From-SVN: r27680 --- gcc/ChangeLog | 11 +++++++++++ gcc/collect2.c | 9 ++++++++- gcc/config/alpha/alpha.h | 5 +++++ gcc/config/alpha/elf.h | 6 ++++++ gcc/config/alpha/vms.h | 4 ---- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f176d7a50dc..b61cd3c54e2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +Mon Jun 21 20:10:42 1999 Richard Henderson + + * collect2.c (main): Log frame table count. + (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal. + (scan_prog_file) [COFF]: Handle frame tables. + + * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define. + (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define. + * alpha/elf.h: Undef them again. + * alpha/vms.h: Remove their definitions. + Tue Jun 22 03:17:53 1999 J"orn Rennecke * sh.c (machine_dependent_reorg): When fixing up fp pcloads, diff --git a/gcc/collect2.c b/gcc/collect2.c index 89151c03f9a..62a79d39e30 100644 --- a/gcc/collect2.c +++ b/gcc/collect2.c @@ -1567,6 +1567,7 @@ main (argc, argv) { notice ("%d constructor(s) found\n", constructors.number); notice ("%d destructor(s) found\n", destructors.number); + notice ("%d frame table(s) found\n", frame_tables.number); } if (constructors.number == 0 && destructors.number == 0 @@ -2389,6 +2390,7 @@ scan_prog_file (prog_name, which_pass) case 5: if (which_pass != PASS_LIB) add_to_list (&frame_tables, name); + break; default: /* not a constructor or destructor */ continue; @@ -2833,7 +2835,7 @@ scan_libraries (prog_name) #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).sc == scText) +# 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) @@ -2974,6 +2976,11 @@ scan_prog_file (prog_name, which_pass) break; #endif + case 5: + if (! is_shared) + add_to_list (&frame_tables, name); + break; + default: /* not a constructor or destructor */ #ifdef COLLECT_EXPORT_LIST /* If we are building a shared object on AIX we need diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h index 85711182a52..42599f91aca 100644 --- a/gcc/config/alpha/alpha.h +++ b/gcc/config/alpha/alpha.h @@ -2145,6 +2145,11 @@ literal_section () \ } \ while (0) +/* To get unaligned data, we have to turn off auto alignment. */ +#define UNALIGNED_SHORT_ASM_OP ".align 0\n\t.word" +#define UNALIGNED_INT_ASM_OP ".align 0\n\t.long" +#define UNALIGNED_DOUBLE_INT_ASM_OP ".align 0\n\t.quad" + /* This is how to output an insn to push a register on the stack. It need not be very fast code. */ diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h index 0e647ef534c..6cea3da5d5b 100644 --- a/gcc/config/alpha/elf.h +++ b/gcc/config/alpha/elf.h @@ -526,3 +526,9 @@ do { \ /* We support #pragma. */ #define HANDLE_SYSV_PRAGMA + +/* Undo the auto-alignment stuff from alpha.h. ELF has unaligned data + pseudos natively. */ +#undef UNALIGNED_SHORT_ASM_OP +#undef UNALIGNED_INT_ASM_OP +#undef UNALIGNED_DOUBLE_INT_ASM_OP diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h index 44cf5bf82df..44388b2cf33 100644 --- a/gcc/config/alpha/vms.h +++ b/gcc/config/alpha/vms.h @@ -439,10 +439,6 @@ extern int vms_valid_decl_attribute_p (); #define ASM_OUTPUT_ALIGN(FILE,LOG) \ fprintf (FILE, "\t.align %d\n", LOG); -#define UNALIGNED_SHORT_ASM_OP ".word" -#define UNALIGNED_INT_ASM_OP ".long" -#define UNALIGNED_DOUBLE_INT_ASM_OP ".quad" - #define ASM_OUTPUT_SECTION(FILE,SECTION) \ (strcmp (SECTION, ".text") == 0) \ ? text_section () \ -- 2.30.2