Commit 6690d24c by Richard Henderson Committed by Richard Henderson

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
parent b8794099
Mon Jun 21 20:10:42 1999 Richard Henderson <rth@cygnus.com>
* 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 <amylaar@cygnus.co.uk> Tue Jun 22 03:17:53 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.c (machine_dependent_reorg): When fixing up fp pcloads, * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
......
...@@ -1567,6 +1567,7 @@ main (argc, argv) ...@@ -1567,6 +1567,7 @@ main (argc, argv)
{ {
notice ("%d constructor(s) found\n", constructors.number); notice ("%d constructor(s) found\n", constructors.number);
notice ("%d destructor(s) found\n", destructors.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 if (constructors.number == 0 && destructors.number == 0
...@@ -2389,6 +2390,7 @@ scan_prog_file (prog_name, which_pass) ...@@ -2389,6 +2390,7 @@ scan_prog_file (prog_name, which_pass)
case 5: case 5:
if (which_pass != PASS_LIB) if (which_pass != PASS_LIB)
add_to_list (&frame_tables, name); add_to_list (&frame_tables, name);
break;
default: /* not a constructor or destructor */ default: /* not a constructor or destructor */
continue; continue;
...@@ -2833,7 +2835,7 @@ scan_libraries (prog_name) ...@@ -2833,7 +2835,7 @@ scan_libraries (prog_name)
#if defined(EXTENDED_COFF) #if defined(EXTENDED_COFF)
# define GCC_SYMBOLS(X) (SYMHEADER(X).isymMax + SYMHEADER(X).iextMax) # define GCC_SYMBOLS(X) (SYMHEADER(X).isymMax + SYMHEADER(X).iextMax)
# define GCC_SYMENT SYMR # 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_SYMINC(X) (1)
# define GCC_SYMZERO(X) (SYMHEADER(X).isymMax) # define GCC_SYMZERO(X) (SYMHEADER(X).isymMax)
# define GCC_CHECK_HDR(X) (PSYMTAB(X) != 0) # define GCC_CHECK_HDR(X) (PSYMTAB(X) != 0)
...@@ -2974,6 +2976,11 @@ scan_prog_file (prog_name, which_pass) ...@@ -2974,6 +2976,11 @@ scan_prog_file (prog_name, which_pass)
break; break;
#endif #endif
case 5:
if (! is_shared)
add_to_list (&frame_tables, name);
break;
default: /* not a constructor or destructor */ default: /* not a constructor or destructor */
#ifdef COLLECT_EXPORT_LIST #ifdef COLLECT_EXPORT_LIST
/* If we are building a shared object on AIX we need /* If we are building a shared object on AIX we need
......
...@@ -2145,6 +2145,11 @@ literal_section () \ ...@@ -2145,6 +2145,11 @@ literal_section () \
} \ } \
while (0) 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. /* This is how to output an insn to push a register on the stack.
It need not be very fast code. */ It need not be very fast code. */
......
...@@ -526,3 +526,9 @@ do { \ ...@@ -526,3 +526,9 @@ do { \
/* We support #pragma. */ /* We support #pragma. */
#define HANDLE_SYSV_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
...@@ -439,10 +439,6 @@ extern int vms_valid_decl_attribute_p (); ...@@ -439,10 +439,6 @@ extern int vms_valid_decl_attribute_p ();
#define ASM_OUTPUT_ALIGN(FILE,LOG) \ #define ASM_OUTPUT_ALIGN(FILE,LOG) \
fprintf (FILE, "\t.align %d\n", 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) \ #define ASM_OUTPUT_SECTION(FILE,SECTION) \
(strcmp (SECTION, ".text") == 0) \ (strcmp (SECTION, ".text") == 0) \
? text_section () \ ? text_section () \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment