mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-25 03:55:32 +08:00
See the ChangeLog on the branch for more details.
* configure.in: Merge in changes from newppc-branch. * configure: Regenerate. * config/rs6000/*: Merge in changes from newppc-branch. Also correct copyright notices. From-SVN: r32575
This commit is contained in:
parent
1282214677
commit
9ebbca7d73
@ -1,3 +1,12 @@
|
||||
2000-03-15 Geoff Keating <geoffk@cygnus.com>
|
||||
|
||||
See the ChangeLog on the branch for more details.
|
||||
|
||||
* configure.in: Merge in changes from newppc-branch.
|
||||
* configure: Regenerate.
|
||||
* config/rs6000/*: Merge in changes from newppc-branch.
|
||||
Also correct copyright notices.
|
||||
|
||||
Wed Mar 15 15:43:38 2000 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* acconfig.h (HAVE_GAS_WEAK): New define.
|
||||
|
544
gcc/config/rs6000/aix.h
Normal file
544
gcc/config/rs6000/aix.h
Normal file
@ -0,0 +1,544 @@
|
||||
/* Definitions of target machine for GNU compiler,
|
||||
for IBM RS/6000 POWER running AIX.
|
||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Yes! We are AIX! */
|
||||
#define DEFAULT_ABI ABI_AIX
|
||||
#define TARGET_OBJECT_FORMAT OBJECT_XCOFF
|
||||
|
||||
/* The RS/6000 uses the XCOFF format. */
|
||||
|
||||
#define XCOFF_DEBUGGING_INFO
|
||||
|
||||
/* Define if the object format being used is COFF or a superset. */
|
||||
#define OBJECT_FORMAT_COFF
|
||||
|
||||
/* Define the magic numbers that we recognize as COFF.
|
||||
|
||||
AIX 4.3 adds U803XTOCMAGIC (0757) for 64-bit objects, but collect2.c
|
||||
does not include files in the correct order to conditionally define
|
||||
the symbolic name in this macro.
|
||||
|
||||
The AIX linker accepts import/export files as object files,
|
||||
so accept "#!" (0x2321) magic number. */
|
||||
#define MY_ISCOFF(magic) \
|
||||
((magic) == U802WRMAGIC || (magic) == U802ROMAGIC \
|
||||
|| (magic) == U802TOCMAGIC || (magic) == 0757 || (magic) == 0x2321)
|
||||
|
||||
/* This is the only version of nm that collect2 can work with. */
|
||||
#define REAL_NM_FILE_NAME "/usr/ucb/nm"
|
||||
|
||||
/* We don't have GAS for the RS/6000 yet, so don't write out special
|
||||
.stabs in cc1plus. */
|
||||
|
||||
#define FASCIST_ASSEMBLER
|
||||
|
||||
/* AIX does not have any init/fini or ctor/dtor sections, so create
|
||||
static constructors and destructors as normal functions. */
|
||||
/* #define ASM_OUTPUT_CONSTRUCTOR(file, name) */
|
||||
/* #define ASM_OUTPUT_DESTRUCTOR(file, name) */
|
||||
|
||||
/* The prefix to add to user-visible assembler symbols. */
|
||||
#define USER_LABEL_PREFIX "."
|
||||
|
||||
/* Don't turn -B into -L if the argument specifies a relative file name. */
|
||||
#define RELATIVE_PREFIX_NOT_LINKDIR
|
||||
|
||||
/* Names to predefine in the preprocessor for this target machine. */
|
||||
|
||||
#define CPP_PREDEFINES "-D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_LONG_LONG \
|
||||
-Asystem(unix) -Asystem(aix) -Acpu(rs6000) -Amachine(rs6000)"
|
||||
|
||||
/* Tell the assembler to assume that all undefined names are external.
|
||||
|
||||
Don't do this until the fixed IBM assembler is more generally available.
|
||||
When this becomes permanently defined, the ASM_OUTPUT_EXTERNAL,
|
||||
ASM_OUTPUT_EXTERNAL_LIBCALL, and RS6000_OUTPUT_BASENAME macros will no
|
||||
longer be needed. Also, the extern declaration of mcount in ASM_FILE_START
|
||||
will no longer be needed. */
|
||||
|
||||
/* #define ASM_SPEC "-u %(asm_cpu)" */
|
||||
|
||||
/* Default location of syscalls.exp under AIX */
|
||||
#ifndef CROSS_COMPILE
|
||||
#define LINK_SYSCALLS_SPEC "-bI:/lib/syscalls.exp"
|
||||
#else
|
||||
#define LINK_SYSCALLS_SPEC ""
|
||||
#endif
|
||||
|
||||
/* Default location of libg.exp under AIX */
|
||||
#ifndef CROSS_COMPILE
|
||||
#define LINK_LIBG_SPEC "-bexport:/usr/lib/libg.exp"
|
||||
#else
|
||||
#define LINK_LIBG_SPEC ""
|
||||
#endif
|
||||
|
||||
/* Define the options for the binder: Start text at 512, align all segments
|
||||
to 512 bytes, and warn if there is text relocation.
|
||||
|
||||
The -bhalt:4 option supposedly changes the level at which ld will abort,
|
||||
but it also suppresses warnings about multiply defined symbols and is
|
||||
used by the AIX cc command. So we use it here.
|
||||
|
||||
-bnodelcsect undoes a poor choice of default relating to multiply-defined
|
||||
csects. See AIX documentation for more information about this.
|
||||
|
||||
-bM:SRE tells the linker that the output file is Shared REusable. Note
|
||||
that to actually build a shared library you will also need to specify an
|
||||
export list with the -Wl,-bE option. */
|
||||
|
||||
#define LINK_SPEC "-T512 -H512 %{!r:-btextro} -bhalt:4 -bnodelcsect\
|
||||
%{static:-bnso %(link_syscalls) } \
|
||||
%{!shared:%{g*: %(link_libg) }} %{shared:-bM:SRE}"
|
||||
|
||||
/* Profiled library versions are used by linking with special directories. */
|
||||
#define LIB_SPEC "%{pg:-L/lib/profiled -L/usr/lib/profiled}\
|
||||
%{p:-L/lib/profiled -L/usr/lib/profiled} %{!shared:%{g*:-lg}} -lc"
|
||||
|
||||
/* Define the extra sections we need. We define three: one is the read-only
|
||||
data section which is used for constants. This is a csect whose name is
|
||||
derived from the name of the input file. The second is for initialized
|
||||
global variables. This is a csect whose name is that of the variable.
|
||||
The third is the TOC. */
|
||||
|
||||
#define EXTRA_SECTIONS \
|
||||
read_only_data, private_data, read_only_private_data, toc, bss
|
||||
|
||||
/* Define the routines to implement these extra sections.
|
||||
BIGGEST_ALIGNMENT is 64, so align the sections that much. */
|
||||
|
||||
#define EXTRA_SECTION_FUNCTIONS \
|
||||
\
|
||||
void \
|
||||
read_only_data_section () \
|
||||
{ \
|
||||
if (in_section != read_only_data) \
|
||||
{ \
|
||||
fprintf (asm_out_file, "\t.csect %s[RO],3\n", \
|
||||
xcoff_read_only_section_name); \
|
||||
in_section = read_only_data; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
void \
|
||||
private_data_section () \
|
||||
{ \
|
||||
if (in_section != private_data) \
|
||||
{ \
|
||||
fprintf (asm_out_file, "\t.csect %s[RW],3\n", \
|
||||
xcoff_private_data_section_name); \
|
||||
in_section = private_data; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
void \
|
||||
read_only_private_data_section () \
|
||||
{ \
|
||||
if (in_section != read_only_private_data) \
|
||||
{ \
|
||||
fprintf (asm_out_file, "\t.csect %s[RO],3\n", \
|
||||
xcoff_private_data_section_name); \
|
||||
in_section = read_only_private_data; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
void \
|
||||
toc_section () \
|
||||
{ \
|
||||
if (TARGET_MINIMAL_TOC) \
|
||||
{ \
|
||||
/* toc_section is always called at least once from ASM_FILE_START, \
|
||||
so this is guaranteed to always be defined once and only once \
|
||||
in each file. */ \
|
||||
if (! toc_initialized) \
|
||||
{ \
|
||||
fputs ("\t.toc\nLCTOC..1:\n", asm_out_file); \
|
||||
fputs ("\t.tc toc_table[TC],toc_table[RW]\n", asm_out_file); \
|
||||
toc_initialized = 1; \
|
||||
} \
|
||||
\
|
||||
if (in_section != toc) \
|
||||
fprintf (asm_out_file, "\t.csect toc_table[RW]%s\n", \
|
||||
(TARGET_32BIT ? "" : ",3")); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
if (in_section != toc) \
|
||||
fputs ("\t.toc\n", asm_out_file); \
|
||||
} \
|
||||
in_section = toc; \
|
||||
}
|
||||
|
||||
/* Define the name of our readonly data section. */
|
||||
|
||||
#define READONLY_DATA_SECTION read_only_data_section
|
||||
|
||||
/* Select the section for an initialized data object.
|
||||
|
||||
On the RS/6000, we have a special section for all variables except those
|
||||
that are static. */
|
||||
|
||||
#define SELECT_SECTION(EXP,RELOC) \
|
||||
{ \
|
||||
if ((TREE_CODE (EXP) == STRING_CST \
|
||||
&& ! flag_writable_strings) \
|
||||
|| (TREE_CODE_CLASS (TREE_CODE (EXP)) == 'd' \
|
||||
&& TREE_READONLY (EXP) && ! TREE_THIS_VOLATILE (EXP) \
|
||||
&& DECL_INITIAL (EXP) \
|
||||
&& (DECL_INITIAL (EXP) == error_mark_node \
|
||||
|| TREE_CONSTANT (DECL_INITIAL (EXP))) \
|
||||
&& ! (RELOC))) \
|
||||
{ \
|
||||
if (TREE_PUBLIC (EXP)) \
|
||||
read_only_data_section (); \
|
||||
else \
|
||||
read_only_private_data_section (); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
if (TREE_PUBLIC (EXP)) \
|
||||
data_section (); \
|
||||
else \
|
||||
private_data_section (); \
|
||||
} \
|
||||
}
|
||||
|
||||
/* Select section for constant in constant pool.
|
||||
|
||||
On RS/6000, all constants are in the private read-only data area.
|
||||
However, if this is being placed in the TOC it must be output as a
|
||||
toc entry. */
|
||||
|
||||
#define SELECT_RTX_SECTION(MODE, X) \
|
||||
{ if (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P (X)) \
|
||||
toc_section (); \
|
||||
else \
|
||||
read_only_private_data_section (); \
|
||||
}
|
||||
|
||||
/* Indicate that jump tables go in the text section. */
|
||||
|
||||
#define JUMP_TABLES_IN_TEXT_SECTION 1
|
||||
|
||||
/* Enable AIX XL compiler calling convention breakage compatibility. */
|
||||
#undef TARGET_XL_CALL
|
||||
#define MASK_XL_CALL 0x40000000
|
||||
#define TARGET_XL_CALL (target_flags & MASK_XL_CALL)
|
||||
#undef SUBTARGET_SWITCHES
|
||||
#define SUBTARGET_SWITCHES \
|
||||
{"xl-call", MASK_XL_CALL, \
|
||||
"Always pass floating-point arguments in memory" }, \
|
||||
{"no-xl-call", - MASK_XL_CALL, \
|
||||
"Don't always pass floating-point arguments in memory" }, \
|
||||
SUBSUBTARGET_SWITCHES
|
||||
#define SUBSUBTARGET_SWITCHES
|
||||
|
||||
/* Define any extra SPECS that the compiler needs to generate. */
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "link_syscalls", LINK_SYSCALLS_SPEC }, \
|
||||
{ "link_libg", LINK_LIBG_SPEC }
|
||||
|
||||
/* FP save and restore routines. */
|
||||
#define SAVE_FP_PREFIX "._savef"
|
||||
#define SAVE_FP_SUFFIX ""
|
||||
#define RESTORE_FP_PREFIX "._restf"
|
||||
#define RESTORE_FP_SUFFIX ""
|
||||
|
||||
/* Define cutoff for using external functions to save floating point. */
|
||||
#define FP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) == 62 || (FIRST_REG) == 63)
|
||||
|
||||
/* Function name to call to do profiling. */
|
||||
#define RS6000_MCOUNT ".__mcount"
|
||||
|
||||
/* AIX always has a TOC. */
|
||||
#define TARGET_NO_TOC 0
|
||||
#define TARGET_TOC 1
|
||||
|
||||
/* AIX allows r13 to be used. */
|
||||
#define FIXED_R13 0
|
||||
|
||||
/* This outputs NAME to FILE up to the first null or '['. */
|
||||
|
||||
#define RS6000_OUTPUT_BASENAME(FILE, NAME) \
|
||||
{ \
|
||||
const char *_p; \
|
||||
\
|
||||
STRIP_NAME_ENCODING (_p, (NAME)); \
|
||||
assemble_name ((FILE), _p); \
|
||||
}
|
||||
|
||||
/* This is how to output the definition of a user-level label named NAME,
|
||||
such as the label on a static function or variable NAME. */
|
||||
|
||||
#define ASM_OUTPUT_LABEL(FILE,NAME) \
|
||||
do { RS6000_OUTPUT_BASENAME (FILE, NAME); fputs (":\n", FILE); } while (0)
|
||||
|
||||
/* This is how to output a command to make the user-level label named NAME
|
||||
defined for reference from other files. */
|
||||
|
||||
#define ASM_GLOBALIZE_LABEL(FILE,NAME) \
|
||||
do { fputs ("\t.globl ", FILE); \
|
||||
RS6000_OUTPUT_BASENAME (FILE, NAME); putc ('\n', FILE);} while (0)
|
||||
|
||||
/* Remove any trailing [DS] or the like from the symbol name. */
|
||||
|
||||
#define STRIP_NAME_ENCODING(VAR,NAME) \
|
||||
do \
|
||||
{ \
|
||||
const char *_name = (NAME); \
|
||||
size_t _len; \
|
||||
if (*_name == '*') \
|
||||
_name++; \
|
||||
_len = strlen (_name); \
|
||||
if (_name[_len - 1] != ']') \
|
||||
(VAR) = _name; \
|
||||
else \
|
||||
{ \
|
||||
char *_new_name = (char *) alloca (_len + 1); \
|
||||
strcpy (_new_name, _name); \
|
||||
_new_name[_len - 4] = '\0'; \
|
||||
(VAR) = _new_name; \
|
||||
} \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Output at beginning of assembler file.
|
||||
|
||||
Initialize the section names for the RS/6000 at this point.
|
||||
|
||||
Specify filename, including full path, to assembler.
|
||||
|
||||
We want to go into the TOC section so at least one .toc will be emitted.
|
||||
Also, in order to output proper .bs/.es pairs, we need at least one static
|
||||
[RW] section emitted.
|
||||
|
||||
We then switch back to text to force the gcc2_compiled. label and the space
|
||||
allocated after it (when profiling) into the text section.
|
||||
|
||||
Finally, declare mcount when profiling to make the assembler happy. */
|
||||
|
||||
#define ASM_FILE_START(FILE) \
|
||||
{ \
|
||||
rs6000_gen_section_name (&xcoff_bss_section_name, \
|
||||
main_input_filename, ".bss_"); \
|
||||
rs6000_gen_section_name (&xcoff_private_data_section_name, \
|
||||
main_input_filename, ".rw_"); \
|
||||
rs6000_gen_section_name (&xcoff_read_only_section_name, \
|
||||
main_input_filename, ".ro_"); \
|
||||
\
|
||||
fprintf (FILE, "\t.file\t\"%s\"\n", main_input_filename); \
|
||||
if (TARGET_64BIT) \
|
||||
fputs ("\t.machine\t\"ppc64\"\n", FILE); \
|
||||
toc_section (); \
|
||||
if (write_symbols != NO_DEBUG) \
|
||||
private_data_section (); \
|
||||
text_section (); \
|
||||
if (profile_flag) \
|
||||
fprintf (FILE, "\t.extern %s\n", RS6000_MCOUNT); \
|
||||
rs6000_file_start (FILE, TARGET_CPU_DEFAULT); \
|
||||
}
|
||||
|
||||
/* Output at end of assembler file.
|
||||
|
||||
On the RS/6000, referencing data should automatically pull in text. */
|
||||
|
||||
#define ASM_FILE_END(FILE) \
|
||||
{ \
|
||||
text_section (); \
|
||||
fputs ("_section_.text:\n", FILE); \
|
||||
data_section (); \
|
||||
fputs (TARGET_32BIT \
|
||||
? "\t.long _section_.text\n" : "\t.llong _section_.text\n", FILE); \
|
||||
}
|
||||
|
||||
/* This macro produces the initial definition of a function name.
|
||||
On the RS/6000, we need to place an extra '.' in the function name and
|
||||
output the function descriptor.
|
||||
|
||||
The csect for the function will have already been created by the
|
||||
`text_section' call previously done. We do have to go back to that
|
||||
csect, however.
|
||||
|
||||
The third and fourth parameters to the .function pseudo-op (16 and 044)
|
||||
are placeholders which no longer have any use. */
|
||||
|
||||
#define ASM_DECLARE_FUNCTION_NAME(FILE,NAME,DECL) \
|
||||
{ if (TREE_PUBLIC (DECL)) \
|
||||
{ \
|
||||
fputs ("\t.globl .", FILE); \
|
||||
RS6000_OUTPUT_BASENAME (FILE, NAME); \
|
||||
putc ('\n', FILE); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
fputs ("\t.lglobl .", FILE); \
|
||||
RS6000_OUTPUT_BASENAME (FILE, NAME); \
|
||||
putc ('\n', FILE); \
|
||||
} \
|
||||
fputs ("\t.csect ", FILE); \
|
||||
RS6000_OUTPUT_BASENAME (FILE, NAME); \
|
||||
fputs (TARGET_32BIT ? "[DS]\n" : "[DS],3\n", FILE); \
|
||||
RS6000_OUTPUT_BASENAME (FILE, NAME); \
|
||||
fputs (":\n", FILE); \
|
||||
fputs (TARGET_32BIT ? "\t.long ." : "\t.llong .", FILE); \
|
||||
RS6000_OUTPUT_BASENAME (FILE, NAME); \
|
||||
fputs (", TOC[tc0], 0\n", FILE); \
|
||||
fputs (TARGET_32BIT \
|
||||
? "\t.csect .text[PR]\n." : "\t.csect .text[PR],3\n.", FILE); \
|
||||
RS6000_OUTPUT_BASENAME (FILE, NAME); \
|
||||
fputs (":\n", FILE); \
|
||||
if (write_symbols == XCOFF_DEBUG) \
|
||||
xcoffout_declare_function (FILE, DECL, NAME); \
|
||||
}
|
||||
|
||||
/* This is how to output a reference to a user-level label named NAME.
|
||||
`assemble_name' uses this. */
|
||||
|
||||
#define ASM_OUTPUT_LABELREF(FILE,NAME) \
|
||||
fputs (NAME, FILE)
|
||||
|
||||
/* This says how to output an external. */
|
||||
|
||||
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
|
||||
{ rtx _symref = XEXP (DECL_RTL (DECL), 0); \
|
||||
if ((TREE_CODE (DECL) == VAR_DECL \
|
||||
|| TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
&& (NAME)[strlen (NAME) - 1] != ']') \
|
||||
{ \
|
||||
char *_name = (char *) permalloc (strlen (XSTR (_symref, 0)) + 5); \
|
||||
strcpy (_name, XSTR (_symref, 0)); \
|
||||
strcat (_name, TREE_CODE (DECL) == FUNCTION_DECL ? "[DS]" : "[RW]"); \
|
||||
XSTR (_symref, 0) = _name; \
|
||||
} \
|
||||
}
|
||||
|
||||
/* This is how to output an internal numbered label where
|
||||
PREFIX is the class of label and NUM is the number within the class. */
|
||||
|
||||
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
|
||||
fprintf (FILE, "%s..%d:\n", PREFIX, NUM)
|
||||
|
||||
/* This is how to output an internal label prefix. rs6000.c uses this
|
||||
when generating traceback tables. */
|
||||
|
||||
#define ASM_OUTPUT_INTERNAL_LABEL_PREFIX(FILE,PREFIX) \
|
||||
fprintf (FILE, "%s..", PREFIX)
|
||||
|
||||
/* This is how to output a label for a jump table. Arguments are the same as
|
||||
for ASM_OUTPUT_INTERNAL_LABEL, except the insn for the jump table is
|
||||
passed. */
|
||||
|
||||
#define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,TABLEINSN) \
|
||||
{ ASM_OUTPUT_ALIGN (FILE, 2); ASM_OUTPUT_INTERNAL_LABEL (FILE, PREFIX, NUM); }
|
||||
|
||||
/* This is how to store into the string LABEL
|
||||
the symbol_ref name of an internal numbered label where
|
||||
PREFIX is the class of label and NUM is the number within the class.
|
||||
This is suitable for output with `assemble_name'. */
|
||||
|
||||
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
|
||||
sprintf (LABEL, "*%s..%d", PREFIX, NUM)
|
||||
|
||||
/* This is how to output an assembler line to define N characters starting
|
||||
at P to FILE. */
|
||||
|
||||
#define ASM_OUTPUT_ASCII(FILE, P, N) output_ascii ((FILE), (P), (N))
|
||||
|
||||
/* This is how to advance the location counter by SIZE bytes. */
|
||||
|
||||
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
|
||||
fprintf (FILE, "\t.space %d\n", (SIZE))
|
||||
|
||||
/* This says how to output an assembler line
|
||||
to define a global common symbol. */
|
||||
|
||||
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGNMENT) \
|
||||
do { fputs (".comm ", (FILE)); \
|
||||
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
|
||||
if ( (SIZE) > 4) \
|
||||
fprintf ((FILE), ",%d,3\n", (SIZE)); \
|
||||
else \
|
||||
fprintf( (FILE), ",%d\n", (SIZE)); \
|
||||
} while (0)
|
||||
|
||||
/* These are various definitions for DWARF output. They could just
|
||||
use '.long' or '.word', but that aligns to a 4-byte boundary which
|
||||
is not what is required. So we define a million macros... */
|
||||
|
||||
#define ASM_OUTPUT_DWARF_ADDR_VAR(FILE, LABEL, LENGTH) \
|
||||
do { fprintf ((FILE), "\t.vbyte\t%d,", LENGTH); \
|
||||
assemble_name (FILE, LABEL); \
|
||||
} while (0)
|
||||
|
||||
#define ASM_OUTPUT_DWARF_DELTA_VAR(FILE, LABEL1, LABEL2, LENGTH) \
|
||||
do { fprintf ((FILE), "\t.vbyte\t%d,", LENGTH); \
|
||||
assemble_name (FILE, LABEL1); \
|
||||
fprintf (FILE, "-"); \
|
||||
assemble_name (FILE, LABEL2); \
|
||||
} while (0)
|
||||
|
||||
#define ASM_OUTPUT_DWARF_DELTA2(FILE, LABEL1, LABEL2) \
|
||||
ASM_OUTPUT_DWARF_DELTA_VAR (FILE, LABEL1, LABEL2, 2)
|
||||
|
||||
#define ASM_OUTPUT_DWARF_DELTA4(FILE, LABEL1, LABEL2) \
|
||||
ASM_OUTPUT_DWARF_DELTA_VAR (FILE, LABEL1, LABEL2, 4)
|
||||
|
||||
#define ASM_OUTPUT_DWARF_DELTA(FILE, LABEL1, LABEL2) \
|
||||
ASM_OUTPUT_DWARF_DELTA_VAR (FILE, LABEL1, LABEL2, DWARF_OFFSET_SIZE)
|
||||
|
||||
#define ASM_OUTPUT_DWARF_ADDR_DELTA(FILE, LABEL1, LABEL2) \
|
||||
ASM_OUTPUT_DWARF_DELTA_VAR (FILE, LABEL1, LABEL2, \
|
||||
POINTER_SIZE / BITS_PER_UNIT)
|
||||
|
||||
#define ASM_OUTPUT_DWARF_ADDR(FILE, LABEL) \
|
||||
ASM_OUTPUT_DWARF_ADDR_VAR (FILE, LABEL, POINTER_SIZE / BITS_PER_UNIT)
|
||||
|
||||
#define ASM_OUTPUT_DWARF_DATA4(FILE, VALUE) \
|
||||
fprintf ((FILE), "\t.vbyte\t4,0x%x", (unsigned) (VALUE))
|
||||
|
||||
#define ASM_OUTPUT_DWARF_DATA2(FILE, VALUE) \
|
||||
fprintf ((FILE), "\t.vbyte\t2,0x%x", (unsigned) (VALUE))
|
||||
|
||||
#define ASM_OUTPUT_DWARF_OFFSET4(FILE, LABEL) \
|
||||
ASM_OUTPUT_DWARF_ADDR_VAR (FILE, LABEL, 4)
|
||||
|
||||
#define ASM_OUTPUT_DWARF_OFFSET(FILE, LABEL) \
|
||||
ASM_OUTPUT_DWARF_ADDR_VAR (FILE, LABEL, DWARF_OFFSET_SIZE)
|
||||
|
||||
/* dwarf2out keys off this, but we don't have to have a real definition. */
|
||||
#define UNALIGNED_INT_ASM_OP bite_me
|
||||
|
||||
/* Output before instructions.
|
||||
Text section for 64-bit target may contain 64-bit address jump table. */
|
||||
#define TEXT_SECTION_ASM_OP (TARGET_32BIT \
|
||||
? "\t.csect .text[PR]" : "\t.csect .text[PR],3")
|
||||
|
||||
/* Output before writable data.
|
||||
Align entire section to BIGGEST_ALIGNMENT. */
|
||||
#define DATA_SECTION_ASM_OP "\t.csect .data[RW],3"
|
||||
|
||||
/* __throw will restore its own return address to be the same as the
|
||||
return address of the function that the throw is being made to.
|
||||
This is unfortunate, because we want to check the original
|
||||
return address to see if we need to restore the TOC.
|
||||
So we have to squirrel it away with this. */
|
||||
#define SETUP_FRAME_ADDRESSES() rs6000_aix_emit_builtin_unwind_init ()
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Definitions of target machine for GNU compiler,
|
||||
for IBM RS/6000 running AIX version 3.1.
|
||||
Copyright (C) 1993,1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993,1997, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Richard Kenner (kenner@nyu.edu)
|
||||
|
||||
This file is part of GNU CC.
|
||||
@ -22,6 +22,45 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
#include "rs6000/rs6000.h"
|
||||
#include "rs6000/aix.h"
|
||||
|
||||
/* Output something to declare an external symbol to the assembler. Most
|
||||
assemblers don't need this.
|
||||
|
||||
If we haven't already, add "[RW]" (or "[DS]" for a function) to the
|
||||
name. Normally we write this out along with the name. In the few cases
|
||||
where we can't, it gets stripped off. */
|
||||
|
||||
#undef ASM_OUTPUT_EXTERNAL
|
||||
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
|
||||
{ rtx _symref = XEXP (DECL_RTL (DECL), 0); \
|
||||
if ((TREE_CODE (DECL) == VAR_DECL \
|
||||
|| TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
&& (NAME)[strlen (NAME) - 1] != ']') \
|
||||
{ \
|
||||
char *_name = (char *) permalloc (strlen (XSTR (_symref, 0)) + 5); \
|
||||
strcpy (_name, XSTR (_symref, 0)); \
|
||||
strcat (_name, TREE_CODE (DECL) == FUNCTION_DECL ? "[DS]" : "[RW]"); \
|
||||
XSTR (_symref, 0) = _name; \
|
||||
} \
|
||||
fputs ("\t.extern ", FILE); \
|
||||
assemble_name (FILE, XSTR (_symref, 0)); \
|
||||
if (TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
{ \
|
||||
fputs ("\n\t.extern .", FILE); \
|
||||
RS6000_OUTPUT_BASENAME (FILE, XSTR (_symref, 0)); \
|
||||
} \
|
||||
putc ('\n', FILE); \
|
||||
}
|
||||
|
||||
/* Similar, but for libcall. We only have to worry about the function name,
|
||||
not that of the descriptor. */
|
||||
|
||||
#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \
|
||||
{ fputs ("\t.extern .", FILE); \
|
||||
assemble_name (FILE, XSTR (FUN, 0)); \
|
||||
putc ('\n', FILE); \
|
||||
}
|
||||
|
||||
/* AIX 3.2 defined _AIX32, but older versions do not. */
|
||||
#undef CPP_PREDEFINES
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Definitions of target machine for GNU compiler,
|
||||
for IBM RS/6000 POWER running AIX version 3.x with the fixed assembler.
|
||||
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Jason Merrill (jason@cygnus.com).
|
||||
|
||||
This file is part of GNU CC.
|
||||
@ -21,15 +21,8 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
/* Enable AIX XL compiler calling convention breakage compatibility. */
|
||||
#define MASK_XL_CALL 0x40000000
|
||||
#define TARGET_XL_CALL (target_flags & MASK_XL_CALL)
|
||||
#undef SUBTARGET_SWITCHES
|
||||
#define SUBTARGET_SWITCHES \
|
||||
{"xl-call", MASK_XL_CALL}, \
|
||||
{"no-xl-call", - MASK_XL_CALL},
|
||||
|
||||
#include "rs6000/rs6000.h"
|
||||
#include "rs6000/aix.h"
|
||||
|
||||
/* Tell the assembler to assume that all undefined names are external. */
|
||||
|
||||
@ -68,21 +61,3 @@ Boston, MA 02111-1307, USA. */
|
||||
%{mcpu=common: milli.exp%s} \
|
||||
%{shared:-bM:SRE}"
|
||||
#endif
|
||||
|
||||
/* These are not necessary when we pass -u to the assembler, and undefining
|
||||
them saves a great deal of space in object files. */
|
||||
|
||||
#undef ASM_OUTPUT_EXTERNAL
|
||||
#undef ASM_OUTPUT_EXTERNAL_LIBCALL
|
||||
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
|
||||
{ rtx _symref = XEXP (DECL_RTL (DECL), 0); \
|
||||
if ((TREE_CODE (DECL) == VAR_DECL \
|
||||
|| TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
&& (NAME)[strlen (NAME) - 1] != ']') \
|
||||
{ \
|
||||
char *_name = (char *) permalloc (strlen (XSTR (_symref, 0)) + 5); \
|
||||
strcpy (_name, XSTR (_symref, 0)); \
|
||||
strcat (_name, TREE_CODE (DECL) == FUNCTION_DECL ? "[DS]" : "[RW]"); \
|
||||
XSTR (_symref, 0) = _name; \
|
||||
} \
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Definitions of target machine for GNU compiler,
|
||||
for IBM RS/6000 POWER running AIX version 4.1.
|
||||
Copyright (C) 1994, 1995, 1996, 1998, 1998, 1999
|
||||
Copyright (C) 1994, 95, 1996, 1997, 1998, 1999, 2000
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by David Edelsohn (edelsohn@gnu.org).
|
||||
|
||||
@ -22,51 +22,19 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
/* Enable AIX XL compiler calling convention breakage compatibility. */
|
||||
#define MASK_XL_CALL 0x40000000
|
||||
#define TARGET_XL_CALL (target_flags & MASK_XL_CALL)
|
||||
#undef SUBTARGET_SWITCHES
|
||||
#define SUBTARGET_SWITCHES \
|
||||
{"xl-call", MASK_XL_CALL}, \
|
||||
{"no-xl-call", - MASK_XL_CALL}, \
|
||||
{"threads", 0}, \
|
||||
{"pe", 0},
|
||||
|
||||
#include "rs6000/rs6000.h"
|
||||
#include "rs6000/aix.h"
|
||||
|
||||
#undef SUBSUBTARGET_SWITCHES
|
||||
#define SUBSUBTARGET_SWITCHES \
|
||||
{"threads", 0, \
|
||||
"Use the thread library and reentrant C library" }, \
|
||||
{"pe", 0, \
|
||||
"Support message passing with the Parallel Environment" },
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "-u %(asm_cpu)"
|
||||
|
||||
/* Common ASM definitions used by ASM_SPEC amonst the various targets
|
||||
for handling -mcpu=xxx switches. */
|
||||
#undef ASM_CPU_SPEC
|
||||
#define ASM_CPU_SPEC \
|
||||
"%{!mcpu*: \
|
||||
%{mpower: %{!mpower2: -mpwr}} \
|
||||
%{mpower2: -mpwr2} \
|
||||
%{mpowerpc*: -mppc} \
|
||||
%{!mpower*: %{!mpowerpc*: %(asm_default)}}} \
|
||||
%{mcpu=common: -mcom} \
|
||||
%{mcpu=power: -mpwr} \
|
||||
%{mcpu=power2: -mpwr2} \
|
||||
%{mcpu=powerpc: -mppc} \
|
||||
%{mcpu=rios: -mpwr} \
|
||||
%{mcpu=rios1: -mpwr} \
|
||||
%{mcpu=rios2: -mpwr2} \
|
||||
%{mcpu=rsc: -mpwr} \
|
||||
%{mcpu=rsc1: -mpwr} \
|
||||
%{mcpu=403: -mppc} \
|
||||
%{mcpu=505: -mppc} \
|
||||
%{mcpu=601: -m601} \
|
||||
%{mcpu=602: -mppc} \
|
||||
%{mcpu=603: -m603} \
|
||||
%{mcpu=603e: -m603} \
|
||||
%{mcpu=604: -m604} \
|
||||
%{mcpu=604e: -m604} \
|
||||
%{mcpu=620: -mppc} \
|
||||
%{mcpu=821: -mppc} \
|
||||
%{mcpu=860: -mppc}"
|
||||
|
||||
#undef ASM_DEFAULT_SPEC
|
||||
#define ASM_DEFAULT_SPEC "-mcom"
|
||||
|
||||
@ -80,35 +48,6 @@ Boston, MA 02111-1307, USA. */
|
||||
%{mthreads: -D_THREAD_SAFE}\
|
||||
%(cpp_cpu)"
|
||||
|
||||
/* Common CPP definitions used by CPP_SPEC among the various targets
|
||||
for handling -mcpu=xxx switches. */
|
||||
#undef CPP_CPU_SPEC
|
||||
#define CPP_CPU_SPEC \
|
||||
"%{!mcpu*: \
|
||||
%{mpower: %{!mpower2: -D_ARCH_PWR}} \
|
||||
%{mpower2: -D_ARCH_PWR2} \
|
||||
%{mpowerpc*: -D_ARCH_PPC} \
|
||||
%{!mpower*: %{!mpowerpc*: %(cpp_default)}}} \
|
||||
%{mcpu=common: -D_ARCH_COM} \
|
||||
%{mcpu=power: -D_ARCH_PWR} \
|
||||
%{mcpu=power2: -D_ARCH_PWR2} \
|
||||
%{mcpu=powerpc: -D_ARCH_PPC} \
|
||||
%{mcpu=rios: -D_ARCH_PWR} \
|
||||
%{mcpu=rios1: -D_ARCH_PWR} \
|
||||
%{mcpu=rios2: -D_ARCH_PWR2} \
|
||||
%{mcpu=rsc: -D_ARCH_PWR} \
|
||||
%{mcpu=rsc1: -D_ARCH_PWR} \
|
||||
%{mcpu=403: -D_ARCH_PPC} \
|
||||
%{mcpu=505: -D_ARCH_PPC} \
|
||||
%{mcpu=601: -D_ARCH_PPC -D_ARCH_PWR} \
|
||||
%{mcpu=602: -D_ARCH_PPC} \
|
||||
%{mcpu=603: -D_ARCH_PPC} \
|
||||
%{mcpu=603e: -D_ARCH_PPC} \
|
||||
%{mcpu=604: -D_ARCH_PPC} \
|
||||
%{mcpu=620: -D_ARCH_PPC} \
|
||||
%{mcpu=821: -D_ARCH_PPC} \
|
||||
%{mcpu=860: -D_ARCH_PPC}"
|
||||
|
||||
#undef CPP_DEFAULT_SPEC
|
||||
#define CPP_DEFAULT_SPEC "-D_ARCH_COM"
|
||||
|
||||
@ -130,24 +69,6 @@ Boston, MA 02111-1307, USA. */
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS { "mcpu=common" }
|
||||
|
||||
/* These are not necessary when we pass -u to the assembler, and undefining
|
||||
them saves a great deal of space in object files. */
|
||||
|
||||
#undef ASM_OUTPUT_EXTERNAL
|
||||
#undef ASM_OUTPUT_EXTERNAL_LIBCALL
|
||||
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
|
||||
{ rtx _symref = XEXP (DECL_RTL (DECL), 0); \
|
||||
if ((TREE_CODE (DECL) == VAR_DECL \
|
||||
|| TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
&& (NAME)[strlen (NAME) - 1] != ']') \
|
||||
{ \
|
||||
char *_name = (char *) permalloc (strlen (XSTR (_symref, 0)) + 5); \
|
||||
strcpy (_name, XSTR (_symref, 0)); \
|
||||
strcat (_name, TREE_CODE (DECL) == FUNCTION_DECL ? "[DS]" : "[RW]"); \
|
||||
XSTR (_symref, 0) = _name; \
|
||||
} \
|
||||
}
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC "%{pg:-L/lib/profiled -L/usr/lib/profiled}\
|
||||
%{p:-L/lib/profiled -L/usr/lib/profiled} %{!shared:%{g*:-lg}}\
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Definitions of target machine for GNU compiler,
|
||||
for IBM RS/6000 POWER running AIX version 4.3.
|
||||
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Contributed by David Edelsohn (edelsohn@gnu.org).
|
||||
|
||||
This file is part of GNU CC.
|
||||
@ -21,17 +21,20 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
/* Enable AIX XL compiler calling convention breakage compatibility. */
|
||||
#define MASK_XL_CALL 0x40000000
|
||||
#define TARGET_XL_CALL (target_flags & MASK_XL_CALL)
|
||||
#undef SUBTARGET_SWITCHES
|
||||
#define SUBTARGET_SWITCHES \
|
||||
{"aix64", MASK_64BIT | MASK_POWERPC64 | MASK_POWERPC}, \
|
||||
{"aix32", - (MASK_64BIT | MASK_POWERPC64)}, \
|
||||
{"xl-call", MASK_XL_CALL}, \
|
||||
{"no-xl-call", - MASK_XL_CALL}, \
|
||||
{"threads", 0}, \
|
||||
{"pe", 0},
|
||||
#include "rs6000/rs6000.h"
|
||||
#include "rs6000/aix.h"
|
||||
|
||||
/* AIX 4.3 and above support 64-bit executables. */
|
||||
#undef SUBSUBTARGET_SWITCHES
|
||||
#define SUBSUBTARGET_SWITCHES \
|
||||
{"aix64", MASK_64BIT | MASK_POWERPC64 | MASK_POWERPC, \
|
||||
"Compile for 64-bit pointers" }, \
|
||||
{"aix32", - (MASK_64BIT | MASK_POWERPC64), \
|
||||
"Compile for 32-bit pointers" }, \
|
||||
{"threads", 0, \
|
||||
"Use the thread library and reentrant C library" }, \
|
||||
{"pe", 0, \
|
||||
"Support message passing with the Parallel Environment" },
|
||||
|
||||
/* Sometimes certain combinations of command options do not make sense
|
||||
on a particular target machine. You can define a macro
|
||||
@ -57,8 +60,6 @@ do { \
|
||||
} \
|
||||
} while (0);
|
||||
|
||||
#include "rs6000/rs6000.h"
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "-u %{maix64:-a64 -mppc64} %(asm_cpu)"
|
||||
|
||||
@ -161,24 +162,6 @@ do { \
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS { "mcpu=common" }
|
||||
|
||||
/* These are not necessary when we pass -u to the assembler, and undefining
|
||||
them saves a great deal of space in object files. */
|
||||
|
||||
#undef ASM_OUTPUT_EXTERNAL
|
||||
#undef ASM_OUTPUT_EXTERNAL_LIBCALL
|
||||
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
|
||||
{ rtx _symref = XEXP (DECL_RTL (DECL), 0); \
|
||||
if ((TREE_CODE (DECL) == VAR_DECL \
|
||||
|| TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
&& (NAME)[strlen (NAME) - 1] != ']') \
|
||||
{ \
|
||||
char *_name = (char *) permalloc (strlen (XSTR (_symref, 0)) + 5); \
|
||||
strcpy (_name, XSTR (_symref, 0)); \
|
||||
strcat (_name, TREE_CODE (DECL) == FUNCTION_DECL ? "[DS]" : "[RW]"); \
|
||||
XSTR (_symref, 0) = _name; \
|
||||
} \
|
||||
}
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC "%{pg:-L/lib/profiled -L/usr/lib/profiled}\
|
||||
%{p:-L/lib/profiled -L/usr/lib/profiled}\
|
||||
@ -214,7 +197,6 @@ do { \
|
||||
#undef RS6000_CALL_GLUE
|
||||
#define RS6000_CALL_GLUE "{cror 31,31,31|nop}"
|
||||
|
||||
#if 0
|
||||
/* AIX 4.2 and above provides initialization and finalization function
|
||||
support from linker command line. */
|
||||
#undef HAS_INIT_SECTION
|
||||
@ -222,4 +204,3 @@ do { \
|
||||
|
||||
#undef LD_INIT_SWITCH
|
||||
#define LD_INIT_SWITCH "-binitfini"
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Definitions of target machine for GNU compiler, for BeOS.
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Fred Fish (fnf@cygnus.com), based on aix41.h
|
||||
from David Edelsohn (edelsohn@npac.syr.edu).
|
||||
|
||||
@ -21,6 +21,9 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
#include "rs6000/rs6000.h"
|
||||
#include "rs6000/aix.h"
|
||||
|
||||
/* Enable AIX XL compiler calling convention breakage compatibility. */
|
||||
#define MASK_XL_CALL 0x40000000
|
||||
#define TARGET_XL_CALL (target_flags & MASK_XL_CALL)
|
||||
@ -31,8 +34,6 @@ Boston, MA 02111-1307, USA. */
|
||||
{"threads", 0}, \
|
||||
{"pe", 0},
|
||||
|
||||
#include "rs6000/rs6000.h"
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "-u %(asm_cpu)"
|
||||
|
||||
@ -79,24 +80,6 @@ Boston, MA 02111-1307, USA. */
|
||||
#undef MULTILIB_DEFAULTS
|
||||
#define MULTILIB_DEFAULTS { "mcpu=powerpc" }
|
||||
|
||||
/* These are not necessary when we pass -u to the assembler, and undefining
|
||||
them saves a great deal of space in object files. */
|
||||
|
||||
#undef ASM_OUTPUT_EXTERNAL
|
||||
#undef ASM_OUTPUT_EXTERNAL_LIBCALL
|
||||
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
|
||||
{ rtx _symref = XEXP (DECL_RTL (DECL), 0); \
|
||||
if ((TREE_CODE (DECL) == VAR_DECL \
|
||||
|| TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
&& (NAME)[strlen (NAME) - 1] != ']') \
|
||||
{ \
|
||||
char *_name = (char *) permalloc (strlen (XSTR (_symref, 0)) + 5); \
|
||||
strcpy (_name, XSTR (_symref, 0)); \
|
||||
strcat (_name, TREE_CODE (DECL) == FUNCTION_DECL ? "[DS]" : "[RW]"); \
|
||||
XSTR (_symref, 0) = _name; \
|
||||
} \
|
||||
}
|
||||
|
||||
/* These empty definitions get rid of the attempt to link in crt0.o
|
||||
and any libraries like libc.a.
|
||||
On BeOS the ld executable is actually a linker front end that first runs
|
||||
|
@ -1,67 +0,0 @@
|
||||
/* Operating system specific defines to be used when targeting GCC for
|
||||
hosting on Windows NT 3.x, using the Cygnus API
|
||||
|
||||
This is different to the winnt.h file, since that is used
|
||||
to build GCC for use with a windows style library and tool
|
||||
set, winnt.h uses the Microsoft tools to do that.
|
||||
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
/* Ugly hack */
|
||||
#include "rs6000/win-nt.h"
|
||||
|
||||
|
||||
#ifdef CPP_PREDEFINES
|
||||
#undef CPP_PREDEFINES
|
||||
#endif
|
||||
|
||||
#define CPP_PREDEFINES "-D_WIN32 -DWINNT -D__CYGWIN__ -D__CYGWIN32__ -DPOSIX \
|
||||
-D_POWER -D_ARCH_PPC -D__PPC__ -Asystem(winnt) -Acpu(powerpc) -Amachine(powerpc)"
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "-remap %{posix: -D_POSIX_SOURCE} %(cpp_cpu)"
|
||||
|
||||
/* We have to dynamic link to get to the system DLLs. All of libc, libm and
|
||||
the Unix stuff is in cygwin.dll. The import library is called
|
||||
'libcygwin.a'. For Windows applications, include more libraries, but
|
||||
always include kernel32. We'd like to specific subsystem windows to
|
||||
ld, but that doesn't work just yet. */
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC "-lcygwin %{mwindows:-luser32 -lgdi32 -lcomdlg32} -lkernel32"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{v:-V}"
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC "crti%O%s crt0%O%s"
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC "crtn%O%s"
|
||||
|
||||
#define PTRDIFF_TYPE "int"
|
||||
#define WCHAR_UNSIGNED 1
|
||||
#define WCHAR_TYPE_SIZE 16
|
||||
#define WCHAR_TYPE "short unsigned int"
|
||||
|
||||
#define DBX_DEBUGGING_INFO
|
||||
#undef SDB_DEBUGGING_INFO
|
||||
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
|
@ -1,6 +1,6 @@
|
||||
# crti.s for eabi
|
||||
|
||||
# Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996, 2000 Free Software Foundation, Inc.
|
||||
# Written By Michael Meissner
|
||||
#
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
@ -102,6 +102,11 @@ __SBSS2_START__:
|
||||
.type __EXCEPT_START__,@object
|
||||
__EXCEPT_START__:
|
||||
|
||||
.section ".eh_frame","aw"
|
||||
.globl __EH_FRAME_BEGIN__
|
||||
.type __EH_FRAME_BEGIN__,@object
|
||||
__EH_FRAME_BEGIN__:
|
||||
|
||||
# Head of __init function used for static constructors in Solaris
|
||||
.section ".init","ax"
|
||||
.align 2
|
||||
|
@ -1,6 +1,6 @@
|
||||
# crtn.s for eabi
|
||||
|
||||
# Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996, 2000 Free Software Foundation, Inc.
|
||||
# Written By Michael Meissner
|
||||
#
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
@ -94,6 +94,12 @@ __SBSS2_END__:
|
||||
.type __EXCEPT_END__,@object
|
||||
__EXCEPT_END__:
|
||||
|
||||
.section ".eh_frame","aw"
|
||||
.globl __EH_FRAME_END__
|
||||
.type __EH_FRAME_END__,@object
|
||||
__EH_FRAME_END__:
|
||||
.long 0
|
||||
|
||||
# Tail of __init used for static constructors in Solaris
|
||||
.section ".init","ax"
|
||||
lwz 0,12(1)
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* Stripped down support to run global constructors and destructors on
|
||||
embedded PowerPC systems.
|
||||
|
||||
Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Michael Meissner (meissner@cygnus.com).
|
||||
|
||||
This file is part of GNU CC.
|
||||
@ -28,65 +28,77 @@ Boston, MA 02111-1307, USA. */
|
||||
This exception does not however invalidate any other reasons why
|
||||
the executable file might be covered by the GNU General Public License. */
|
||||
|
||||
#include "tm.h"
|
||||
#include "defaults.h"
|
||||
#include <stddef.h>
|
||||
#include "frame.h"
|
||||
#include "gbl-ctors.h"
|
||||
|
||||
/* Declare a pointer to void function type. */
|
||||
|
||||
typedef void (*func_ptr) (void);
|
||||
/* FIXME: This file should share code with all the other
|
||||
constructor/destructor implementations in crtstuff.c and libgcc2.c. */
|
||||
|
||||
/* Declare the set of symbols use as begin and end markers for the lists
|
||||
of global object constructors and global object destructors. */
|
||||
|
||||
extern func_ptr __CTOR_LIST__[];
|
||||
extern func_ptr __CTOR_END__ [];
|
||||
extern func_ptr __DTOR_LIST__[];
|
||||
extern func_ptr __DTOR_END__ [];
|
||||
extern func_ptr __CTOR_LIST__[] asm ("__CTOR_LIST__");
|
||||
extern func_ptr __CTOR_END__ [] asm ("__CTOR_END__");
|
||||
extern func_ptr __DTOR_LIST__[] asm ("__DTOR_LIST__");
|
||||
extern func_ptr __DTOR_END__ [] asm ("__DTOR_END__");
|
||||
extern unsigned char __EH_FRAME_BEGIN__[] asm ("__EH_FRAME_BEGIN__");
|
||||
|
||||
extern void __do_global_ctors (void);
|
||||
extern void __do_global_dtors (void);
|
||||
|
||||
extern void __init (), __fini ();
|
||||
|
||||
/* The Solaris linker seems to incorrectly relocate PC relative relocations
|
||||
to a different section (ie, calls to __init, __fini), so avoid it by
|
||||
using a function pointer. */
|
||||
static void (*init_ptr) (void) = __init;
|
||||
static void (*fini_ptr) (void) = __fini;
|
||||
|
||||
void (*__atexit)(func_ptr);
|
||||
|
||||
/* Call all global constructors */
|
||||
void
|
||||
__do_global_ctors (void)
|
||||
{
|
||||
func_ptr *ptr = &__CTOR_END__[0] - 1;
|
||||
func_ptr *start = &__CTOR_LIST__[0];
|
||||
func_ptr *p = __CTOR_END__ - 1;
|
||||
|
||||
#ifdef EH_FRAME_SECTION
|
||||
{
|
||||
static struct object object;
|
||||
__register_frame_info (__EH_FRAME_BEGIN__, &object);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Call the constructors collected in the .ctors section. */
|
||||
for ( ; p >= __CTOR_LIST__; p--)
|
||||
if (*p)
|
||||
(*p)();
|
||||
|
||||
if (__atexit)
|
||||
__atexit (__do_global_dtors);
|
||||
|
||||
/* Call the constructors collected in the .ctors section. */
|
||||
for ( ; ptr >= start; ptr--)
|
||||
if (*ptr)
|
||||
(*ptr)();
|
||||
|
||||
/* Call the initialization function in the .init section. */
|
||||
(*init_ptr) ();
|
||||
__init ();
|
||||
}
|
||||
|
||||
/* Call all global destructors */
|
||||
void
|
||||
__do_global_dtors (void)
|
||||
{
|
||||
func_ptr *ptr = &__DTOR_LIST__[0];
|
||||
func_ptr *end = &__DTOR_END__[0];
|
||||
static func_ptr *p = __DTOR_LIST__ + 1;
|
||||
static int completed = 0;
|
||||
|
||||
if (completed)
|
||||
return;
|
||||
|
||||
/* Call the termination function in the .fini section. */
|
||||
(*fini_ptr) ();
|
||||
__fini ();
|
||||
|
||||
/* Call the destructors collected in the .dtors section. Run
|
||||
the destructors in reverse order. */
|
||||
for ( ; ptr < end; ptr++)
|
||||
if (*ptr)
|
||||
(*ptr)();
|
||||
while (p < __DTOR_END__)
|
||||
{
|
||||
p++;
|
||||
(*(p-1)) ();
|
||||
}
|
||||
|
||||
#ifdef EH_FRAME_SECTION_ASM_OP
|
||||
if (__deregister_frame_info)
|
||||
__deregister_frame_info (__EH_FRAME_BEGIN__);
|
||||
#endif
|
||||
completed = 1;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Core target definitions for GNU compiler
|
||||
for IBM RS/6000 PowerPC targeted to embedded ELF systems.
|
||||
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Cygnus Support.
|
||||
|
||||
This file is part of GNU CC.
|
||||
@ -28,6 +28,7 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Invoke an initializer function to set up the GOT */
|
||||
#define NAME__MAIN "__eabi"
|
||||
#define INVOKE__main
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (PowerPC Embedded)");
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Definitions for Rs6000 running LynxOS.
|
||||
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc.
|
||||
Contributed by David Henkel-Wallace, Cygnus Support (gumby@cygnus.com)
|
||||
|
||||
This file is part of GNU CC.
|
||||
@ -96,7 +96,6 @@ do { \
|
||||
#undef OBJECT_FORMAT_ROSE
|
||||
#undef MD_EXEC_PREFIX
|
||||
#undef REAL_LD_FILE_NAME
|
||||
#undef REAL_NM_FILE_NAME
|
||||
#undef REAL_STRIP_FILE_NAME
|
||||
|
||||
/* LynxOS doesn't have mcount. */
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Core target definitions for GNU compiler
|
||||
for IBM RS/6000 PowerPC running NetWare
|
||||
Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
|
||||
Copyright (C) 1994, 1995, 1996, 1998, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Cygnus Support.
|
||||
|
||||
This file is part of GNU CC.
|
||||
@ -34,24 +34,11 @@ Boston, MA 02111-1307, USA. */
|
||||
#undef PROCESSOR_DEFAULT
|
||||
#define PROCESSOR_DEFAULT PROCESSOR_PPC601
|
||||
|
||||
/* Don't generate XCOFF debugging information. */
|
||||
|
||||
#undef XCOFF_DEBUGGING_INFO
|
||||
|
||||
/* Don't use the COFF object file format. */
|
||||
|
||||
#undef OBJECT_FORMAT_COFF
|
||||
|
||||
/* The XCOFF support uses weird symbol suffixes, which we don't want
|
||||
for ELF. */
|
||||
|
||||
#undef STRIP_NAME_ENCODING
|
||||
|
||||
/* Don't bother to output .extern pseudo-ops. They are not needed by
|
||||
ELF assemblers. */
|
||||
|
||||
#undef ASM_OUTPUT_EXTERNAL
|
||||
|
||||
/* Undefine some things which are defined by the generic svr4.h. */
|
||||
|
||||
#undef ASM_FILE_END
|
||||
|
@ -1,48 +0,0 @@
|
||||
# crti.s for Windows NT
|
||||
|
||||
# Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
# Written By Michael Meissner
|
||||
#
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 2, or (at your option) any
|
||||
# later version.
|
||||
#
|
||||
# In addition to the permissions in the GNU General Public License, the
|
||||
# Free Software Foundation gives you unlimited permission to link the
|
||||
# compiled version of this file with other programs, and to distribute
|
||||
# those programs without any restriction coming from the use of this
|
||||
# file. (The General Public License restrictions do apply in other
|
||||
# respects; for example, they cover modification of the file, and
|
||||
# distribution when not linked into another program.)
|
||||
#
|
||||
# This file is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
# Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception, if you link this library with files
|
||||
# compiled with GCC to produce an executable, this does not cause
|
||||
# the resulting executable to be covered by the GNU General Public License.
|
||||
# This exception does not however invalidate any other reasons why
|
||||
# the executable file might be covered by the GNU General Public License.
|
||||
#
|
||||
|
||||
# This file just supplies labeled starting points for the static constructors
|
||||
# and destructors. It is linked in first before other modules.
|
||||
|
||||
.file "crti.s"
|
||||
.ident "GNU C crti.s"
|
||||
|
||||
.section .ctors,"w"
|
||||
.globl __CTOR_LIST__
|
||||
__CTOR_LIST__:
|
||||
|
||||
.section .dtors,"w"
|
||||
.globl __DTOR_LIST__
|
||||
__DTOR_LIST__:
|
@ -1,48 +0,0 @@
|
||||
# crtn.s for Windows NT
|
||||
|
||||
# Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
# Written By Michael Meissner
|
||||
#
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation; either version 2, or (at your option) any
|
||||
# later version.
|
||||
#
|
||||
# In addition to the permissions in the GNU General Public License, the
|
||||
# Free Software Foundation gives you unlimited permission to link the
|
||||
# compiled version of this file with other programs, and to distribute
|
||||
# those programs without any restriction coming from the use of this
|
||||
# file. (The General Public License restrictions do apply in other
|
||||
# respects; for example, they cover modification of the file, and
|
||||
# distribution when not linked into another program.)
|
||||
#
|
||||
# This file is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
# Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception, if you link this library with files
|
||||
# compiled with GCC to produce an executable, this does not cause
|
||||
# the resulting executable to be covered by the GNU General Public License.
|
||||
# This exception does not however invalidate any other reasons why
|
||||
# the executable file might be covered by the GNU General Public License.
|
||||
#
|
||||
|
||||
# This file just supplies labeled ending points for the static constructors
|
||||
# and destructors. It is linked in last after other modules.
|
||||
|
||||
.file "crtn.s"
|
||||
.ident "GNU C crtn.s"
|
||||
|
||||
.section .ctors,"w"
|
||||
.globl __CTOR_END__
|
||||
__CTOR_END__:
|
||||
|
||||
.section .dtors,"w"
|
||||
.globl __DTOR_END__
|
||||
__DTOR_END__:
|
@ -1,42 +0,0 @@
|
||||
# Allocate stack for NT, inserting stack probes every 4k pages
|
||||
|
||||
.file "ntstack.asm"
|
||||
|
||||
# Setup MS Structured-Exception-Handling
|
||||
.pdata
|
||||
.align 2
|
||||
.ualong ..__allocate_stack,__allocate_stack.e,0,0,__allocate_stack.b
|
||||
|
||||
# Switch to the relocation section
|
||||
.reldata
|
||||
.globl __allocate_stack
|
||||
.globl ..__allocate_stack
|
||||
__allocate_stack:
|
||||
.ualong ..__allocate_stack,.toc
|
||||
|
||||
.text
|
||||
.align 2
|
||||
..__allocate_stack:
|
||||
.function ..__allocate_stack
|
||||
__allocate_stack.b:
|
||||
addi 3,3,15 # round up to 16 byte alignment
|
||||
lwz 0,0(1) # old stack link
|
||||
rlwinm 3,3,0,0,28
|
||||
srawi. 4,3,12 # get # of pages to check
|
||||
neg 3,3 # negate so we can use stwux
|
||||
bgt- 0,.Lcheck
|
||||
stwux 0,1,3 # small request, just decrement and return
|
||||
blr
|
||||
|
||||
.Lcheck:
|
||||
mtctr 4 # number of pages to check
|
||||
mr 5,1 # tmp pointer
|
||||
.Lloop:
|
||||
lwzu 6,-4096(5) # touch the page
|
||||
bdnz+ .Lloop # and loop back
|
||||
|
||||
stwux 0,1,3 # update stack pointer
|
||||
blr
|
||||
|
||||
__allocate_stack.e:
|
||||
FE_MOT_RESVD..__allocate_stack:
|
162
gcc/config/rs6000/rs6000-protos.h
Normal file
162
gcc/config/rs6000/rs6000-protos.h
Normal file
@ -0,0 +1,162 @@
|
||||
/* Definitions of target machine for GNU compiler, for IBM RS/6000.
|
||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Declare functions in rs6000.c */
|
||||
|
||||
#ifdef RTX_CODE
|
||||
|
||||
#ifdef TREE_CODE
|
||||
extern void init_cumulative_args PARAMS ((CUMULATIVE_ARGS *, tree, rtx, int));
|
||||
extern void rs6000_va_start PARAMS ((int, tree, rtx));
|
||||
#endif /* TREE_CODE */
|
||||
|
||||
extern struct rtx_def *rs6000_got_register PARAMS ((rtx));
|
||||
extern struct rtx_def *find_addr_reg PARAMS ((rtx));
|
||||
extern int any_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int short_cint_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int u_short_cint_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int non_short_cint_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int gpc_reg_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int cc_reg_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int cc_reg_not_cr0_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int reg_or_short_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int reg_or_neg_short_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int reg_or_u_short_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int reg_or_cint_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int reg_or_u_cint_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int got_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int got_no_const_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int num_insns_constant PARAMS ((rtx, enum machine_mode));
|
||||
extern int easy_fp_constant PARAMS ((rtx, enum machine_mode));
|
||||
extern int volatile_mem_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int offsettable_mem_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int mem_or_easy_const_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int add_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int non_add_cint_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int non_logical_cint_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int non_logical_u_cint_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int logical_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int logical_u_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int mask_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int mask64_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int and64_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int and_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int count_register_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int xer_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int reg_or_mem_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int lwa_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int call_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int current_file_function_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int input_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int small_data_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern int constant_pool_expr_p PARAMS ((rtx));
|
||||
extern int toc_relative_expr_p PARAMS ((rtx));
|
||||
extern int expand_block_move PARAMS ((rtx[]));
|
||||
extern int load_multiple_operation PARAMS ((rtx, enum machine_mode));
|
||||
extern int store_multiple_operation PARAMS ((rtx, enum machine_mode));
|
||||
extern int branch_comparison_operator PARAMS ((rtx, enum machine_mode));
|
||||
extern int scc_comparison_operator PARAMS ((rtx, enum machine_mode));
|
||||
extern int trap_comparison_operator PARAMS ((rtx, enum machine_mode));
|
||||
extern int includes_lshift_p PARAMS ((rtx, rtx));
|
||||
extern int includes_rshift_p PARAMS ((rtx, rtx));
|
||||
extern int registers_ok_for_quad_peep PARAMS ((rtx, rtx));
|
||||
extern int addrs_ok_for_quad_peep PARAMS ((rtx, rtx));
|
||||
extern enum reg_class secondary_reload_class PARAMS ((enum reg_class,
|
||||
enum machine_mode, rtx));
|
||||
extern int ccr_bit PARAMS ((rtx, int));
|
||||
extern void print_operand PARAMS ((FILE *, rtx, int));
|
||||
extern void print_operand_address PARAMS ((FILE *, rtx));
|
||||
extern void output_toc PARAMS ((FILE *, rtx, int));
|
||||
extern int rs6000_adjust_cost PARAMS ((rtx, rtx, rtx, int));
|
||||
extern int rs6000_adjust_priority PARAMS ((rtx, int));
|
||||
extern void rs6000_initialize_trampoline PARAMS ((rtx, rtx, rtx));
|
||||
extern struct rtx_def *rs6000_longcall_ref PARAMS ((rtx));
|
||||
extern void rs6000_fatal_bad_address PARAMS ((rtx));
|
||||
extern int stmw_operation PARAMS ((rtx, enum machine_mode));
|
||||
extern int mtcrf_operation PARAMS ((rtx, enum machine_mode));
|
||||
extern int lmw_operation PARAMS ((rtx, enum machine_mode));
|
||||
extern struct rtx_def *create_TOC_reference PARAMS ((rtx));
|
||||
extern void rs6000_emit_eh_toc_restore PARAMS ((rtx));
|
||||
extern rtx rs6000_legitimize_address PARAMS ((rtx, rtx, enum machine_mode));
|
||||
extern void rs6000_select_rtx_section PARAMS ((enum machine_mode, rtx));
|
||||
#endif /* RTX_CODE */
|
||||
|
||||
#ifdef TREE_CODE
|
||||
extern void function_arg_advance PARAMS ((CUMULATIVE_ARGS *, enum machine_mode,
|
||||
tree, int));
|
||||
extern int function_arg_boundary PARAMS ((enum machine_mode, tree));
|
||||
extern struct rtx_def *function_arg PARAMS ((CUMULATIVE_ARGS *,
|
||||
enum machine_mode, tree, int));
|
||||
extern int function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS *,
|
||||
enum machine_mode, tree, int));
|
||||
extern int function_arg_pass_by_reference PARAMS ((CUMULATIVE_ARGS *,
|
||||
enum machine_mode,
|
||||
tree, int));
|
||||
extern void setup_incoming_varargs PARAMS ((CUMULATIVE_ARGS *,
|
||||
enum machine_mode, tree,
|
||||
int *, int));
|
||||
extern struct rtx_def *rs6000_va_arg PARAMS ((tree, tree));
|
||||
extern void output_mi_thunk PARAMS ((FILE *, tree, int, tree));
|
||||
extern int rs6000_comp_type_attributes PARAMS ((tree, tree));
|
||||
extern int rs6000_valid_decl_attribute_p PARAMS ((tree, tree, tree, tree));
|
||||
extern int rs6000_valid_type_attribute_p PARAMS ((tree, tree, tree, tree));
|
||||
extern void rs6000_set_default_type_attributes PARAMS ((tree));
|
||||
extern void rs6000_encode_section_info PARAMS ((tree));
|
||||
extern void rs6000_select_section PARAMS ((tree, int));
|
||||
#ifdef ARGS_SIZE_RTX
|
||||
/* expr.h defines ARGS_SIZE_RTX and `enum direction' */
|
||||
extern enum direction function_arg_padding PARAMS ((enum machine_mode, tree));
|
||||
#endif /* ARGS_SIZE_RTX */
|
||||
#endif /* TREE_CODE */
|
||||
|
||||
extern void optimization_options PARAMS ((int, int));
|
||||
extern void rs6000_override_options PARAMS ((const char *));
|
||||
extern void rs6000_file_start PARAMS ((FILE *, const char *));
|
||||
extern struct rtx_def *rs6000_float_const PARAMS ((const char *,
|
||||
enum machine_mode));
|
||||
extern int direct_return PARAMS ((void));
|
||||
extern int get_issue_rate PARAMS ((void));
|
||||
extern union tree_node *rs6000_build_va_list PARAMS ((void));
|
||||
extern void rs6000_save_machine_status PARAMS ((struct function *));
|
||||
extern void rs6000_restore_machine_status PARAMS ((struct function *));
|
||||
extern void rs6000_init_expanders PARAMS ((void));
|
||||
extern int first_reg_to_save PARAMS ((void));
|
||||
extern int first_fp_reg_to_save PARAMS ((void));
|
||||
extern rs6000_stack_t *rs6000_stack_info PARAMS ((void));
|
||||
extern void output_prolog PARAMS ((FILE *, int));
|
||||
extern void output_epilog PARAMS ((FILE *, int));
|
||||
extern void output_ascii PARAMS ((FILE *, const char *, int));
|
||||
extern void rs6000_gen_section_name PARAMS ((char **, const char *,
|
||||
const char *));
|
||||
extern void output_function_profiler PARAMS ((FILE *, int));
|
||||
extern int rs6000_trampoline_size PARAMS ((void));
|
||||
extern void toc_section PARAMS ((void));
|
||||
extern void sdata_section PARAMS ((void));
|
||||
extern void sdata2_section PARAMS ((void));
|
||||
extern void sbss_section PARAMS ((void));
|
||||
extern void private_data_section PARAMS ((void));
|
||||
extern int get_TOC_alias_set PARAMS ((void));
|
||||
extern int uses_TOC PARAMS ((void));
|
||||
extern void rs6000_emit_prologue PARAMS ((void));
|
||||
extern void rs6000_emit_load_toc_table PARAMS ((int));
|
||||
extern void rs6000_aix_emit_builtin_unwind_init PARAMS ((void));
|
||||
extern void rs6000_emit_epilogue PARAMS ((int));
|
||||
extern void debug_stack_info PARAMS ((rs6000_stack_t *));
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
/* Definitions of target machine for GNU compiler,
|
||||
for IBM RS/6000 running AIX version 3.1.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
|
||||
Contributed by David Reese (Dave.Reese@East.Sun.COM)
|
||||
|
||||
This file is part of GNU CC.
|
||||
@ -65,9 +65,6 @@ Boston, MA 02111-1307, USA. */
|
||||
#undef CPP_ENDIAN_LITTLE_SPEC
|
||||
#define CPP_ENDIAN_LITTLE_SPEC CPP_ENDIAN_SOLARIS_SPEC
|
||||
|
||||
/* Don't turn -B into -L if the argument specifies a relative file name. */
|
||||
#undef RELATIVE_PREFIX_NOT_LINKDIR
|
||||
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
#undef TARGET_VERSION
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
/* Target definitions for GNU compiler for a little endian PowerPC
|
||||
running System V.4
|
||||
Copyright (C) 1995, Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Cygnus Support.
|
||||
|
||||
This file is part of GNU CC.
|
||||
@ -34,7 +34,9 @@ Boston, MA 02111-1307, USA. */
|
||||
#undef LINK_TARGET_SPEC
|
||||
#define LINK_TARGET_SPEC "\
|
||||
%{mbig: -oformat elf32-powerpc } %{mbig-endian: -oformat elf32-powerpc } \
|
||||
%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: %{mcall-linux: -oformat elf32-powerpc}}}}}"
|
||||
%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
|
||||
%{mcall-linux: -oformat elf32-powerpc} \
|
||||
}}}}"
|
||||
|
||||
/* Define this macro as a C expression for the initializer of an
|
||||
array of string to tell the driver program which options are
|
||||
|
@ -49,3 +49,11 @@ MULTILIB_MATCHES = msoft-float=mcpu?403 \
|
||||
LIBGCC = stmp-multilib
|
||||
INSTALL_LIBGCC = install-multilib
|
||||
|
||||
|
||||
# Both 32-bit and 64-bit objects in archives
|
||||
AR_FLAGS_FOR_TARGET=-X32_64 rc
|
||||
|
||||
# We need -lld for collect2 (actually this only matters
|
||||
# for a native compiler, but this is as good a place as any
|
||||
# to define the symbol).
|
||||
CLIB=-lld
|
||||
|
@ -39,7 +39,7 @@ MULTILIB_MATCHES_FLOAT = msoft-float=mcpu?401 \
|
||||
msoft-float=mcpu?823 \
|
||||
msoft-float=mcpu?860
|
||||
MULTILIB_MATCHES_ENDIAN = mlittle=mlittle-endian mbig=mbig-endian
|
||||
MULTILIB_MATCHES_SYSV = mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi
|
||||
MULTILIB_MATCHES_SYSV = mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux
|
||||
|
||||
LIBGCC = stmp-multilib
|
||||
INSTALL_LIBGCC = install-multilib
|
||||
|
@ -3,16 +3,17 @@
|
||||
|
||||
MULTILIB_OPTIONS = msoft-float \
|
||||
mlittle/mbig \
|
||||
mcall-sysv/mcall-aix/mcall-linux
|
||||
mcall-sysv/mcall-aix \
|
||||
fleading-underscore
|
||||
|
||||
MULTILIB_DIRNAMES = nof \
|
||||
le be \
|
||||
cs ca lin
|
||||
cs ca \
|
||||
und
|
||||
|
||||
MULTILIB_EXTRA_OPTS = mrelocatable-lib mno-eabi mstrict-align
|
||||
MULTILIB_EXCEPTIONS = *mbig/*mcall-linux* \
|
||||
*mlittle/*mcall-linux* \
|
||||
*msoft-float/*mcall-linux*
|
||||
MULTILIB_EXCEPTIONS = *mcall-aix/*fleading-underscore* \
|
||||
*mlittle/*mcall-aix*
|
||||
|
||||
MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT} \
|
||||
${MULTILIB_MATCHES_ENDIAN} \
|
||||
|
@ -1,41 +0,0 @@
|
||||
# Do not build libgcc1.
|
||||
LIBGCC1 =
|
||||
CROSS_LIBGCC1 =
|
||||
|
||||
EXTRA_PARTS = crti.o crtn.o
|
||||
|
||||
# These are really part of libgcc1, but this will cause them to be
|
||||
# built correctly, so... [taken from t-sparclite]
|
||||
LIB2FUNCS_EXTRA = ntstack.S
|
||||
|
||||
# We want fine grained libraries, so use the new code to build the
|
||||
# floating point emulation libraries.
|
||||
FPBIT = fp-bit.c
|
||||
DPBIT = dp-bit.c
|
||||
|
||||
|
||||
dp-bit.c: $(srcdir)/config/fp-bit.c
|
||||
cat $(srcdir)/config/fp-bit.c > dp-bit.c
|
||||
|
||||
fp-bit.c: $(srcdir)/config/fp-bit.c
|
||||
echo '#define FLOAT' > fp-bit.c
|
||||
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
|
||||
|
||||
ntstack.S: $(srcdir)/config/rs6000/ntstack.asm
|
||||
cat $(srcdir)/config/rs6000/ntstack.asm > ntstack.S
|
||||
|
||||
# For NT we build crti.o and crtn.o which serve to add begin and
|
||||
# end labels for the static constructors and destructors.
|
||||
|
||||
# Assemble startup files.
|
||||
crti.s: $(srcdir)/config/rs6000/nt-ci.asm
|
||||
cat $(srcdir)/config/rs6000/nt-ci.asm >crti.s
|
||||
|
||||
crtn.s: $(srcdir)/config/rs6000/nt-cn.asm
|
||||
cat $(srcdir)/config/rs6000/nt-cn.asm >crtn.s
|
||||
|
||||
crti.o: crti.s
|
||||
$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o crti.o crti.s
|
||||
|
||||
crtn.o: crtn.s
|
||||
$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o crtn.o crtn.s
|
@ -1,6 +1,6 @@
|
||||
/* Special support for trampolines
|
||||
*
|
||||
* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
* Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
|
||||
* Written By Michael Meissner
|
||||
*
|
||||
* This file is free software; you can redistribute it and/or modify it
|
||||
@ -33,21 +33,20 @@
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*/
|
||||
|
||||
/* Set up trampolines */
|
||||
/* Set up trampolines. */
|
||||
|
||||
.file "tramp.asm"
|
||||
.section ".text"
|
||||
#include "ppc-asm.h"
|
||||
|
||||
.globl __trampoline_initial
|
||||
.type __trampoline_initial,@object
|
||||
.type trampoline_initial,@object
|
||||
.align 2
|
||||
__trampoline_initial:
|
||||
trampoline_initial:
|
||||
mflr r0
|
||||
bl 1f
|
||||
.Lfunc = .-__trampoline_initial
|
||||
.Lfunc = .-trampoline_initial
|
||||
.long 0 /* will be replaced with function address */
|
||||
.Lchain = .-__trampoline_initial
|
||||
.Lchain = .-trampoline_initial
|
||||
.long 0 /* will be replaced with static chain */
|
||||
1: mflr r11
|
||||
mtlr r0
|
||||
@ -56,17 +55,9 @@ __trampoline_initial:
|
||||
mtctr r0
|
||||
bctr
|
||||
|
||||
__trampoline_size = .-__trampoline_initial
|
||||
.size __trampoline_initial,__trampoline_size
|
||||
trampoline_size = .-trampoline_initial
|
||||
.size trampoline_initial,trampoline_size
|
||||
|
||||
.section ".got2","aw"
|
||||
.LCTOC1 = .+32768
|
||||
.Ltramp = .-.LCTOC1
|
||||
.long __trampoline_initial-4
|
||||
|
||||
.section ".text"
|
||||
.LCL0:
|
||||
.long .LCTOC1-.LCF0
|
||||
|
||||
/* R3 = stack address to store trampoline */
|
||||
/* R4 = length of trampoline area */
|
||||
@ -74,18 +65,16 @@ __trampoline_size = .-__trampoline_initial
|
||||
/* R6 = static chain */
|
||||
|
||||
FUNC_START(__trampoline_setup)
|
||||
mflr r0 /* save return address */
|
||||
bl .LCF0 /* load up __trampoline_initial into r7 */
|
||||
mflr r0 /* save return address */
|
||||
bl .LCF0 /* load up __trampoline_initial into r7 */
|
||||
.LCF0:
|
||||
mflr r11
|
||||
lwz r12,(.LCL0-.LCF0)(r11)
|
||||
add r11,r12,r11
|
||||
lwz r7,.Ltramp(r11) /* trampoline address -4 */
|
||||
addi r7,r11,trampoline_initial-4-.LCF0 /* trampoline address -4 */
|
||||
|
||||
li r8,__trampoline_size /* verify that the trampoline is big enough */
|
||||
li r8,trampoline_size /* verify that the trampoline is big enough */
|
||||
cmpw cr1,r8,r4
|
||||
srwi r4,r4,2 /* # words to move */
|
||||
addi r9,r3,-4 /* adjust pointer for lwzu */
|
||||
srwi r4,r4,2 /* # words to move */
|
||||
addi r9,r3,-4 /* adjust pointer for lwzu */
|
||||
mtctr r4
|
||||
blt cr1,.Labort
|
||||
|
||||
@ -115,6 +104,6 @@ FUNC_START(__trampoline_setup)
|
||||
blr
|
||||
|
||||
.Labort:
|
||||
bl abort
|
||||
bl FUNC_NAME(abort)
|
||||
FUNC_END(__trampoline_setup)
|
||||
/* END CYGNUS LOCAL -- waiting for FSF sources to be restored/meissner */
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Definitions of target machine for GNU compiler. Vxworks PowerPC version.
|
||||
Copyright (C) 1996, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@ -18,62 +18,41 @@ along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* This file primarily exists to give specs for the PowerPC running on
|
||||
VxWorks. */
|
||||
/* This file just exists to give specs for the PowerPC running on VxWorks. */
|
||||
|
||||
#include "rs6000/sysv4.h"
|
||||
|
||||
/* ??? This file redefines CPP_SPEC which is wrong. It should instead define
|
||||
one of the extra specs that gets included in CPP_SPEC. For instance,
|
||||
CPP_OS_DEFAULT_SPEC. The mrelocatable line was copied from CPP_SYSV_SPEC.
|
||||
There is probably other stuff missing. */
|
||||
/* Reset defaults */
|
||||
#undef CPP_OS_DEFAULT_SPEC
|
||||
#define CPP_OS_DEFAULT_SPEC "%(cpp_os_vxworks)"
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_sysv) %(cpp_endian) %(cpp_cpu) \
|
||||
%{mads: %(cpp_os_ads) } \
|
||||
%{myellowknife: %(cpp_os_yellowknife) } \
|
||||
%{mmvme: %(cpp_os_mvme) } \
|
||||
%{msim: %(cpp_os_sim) } \
|
||||
%{mcall-linux: %(cpp_os_linux) } \
|
||||
%{mcall-solaris: %(cpp_os_solaris) } \
|
||||
%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mcall-linux: %{!mcall-solaris: %(cpp_os_default) }}}}}} \
|
||||
%{!DCPU=*: \
|
||||
%{!mcpu*: -DCPU=PPC603} \
|
||||
%{mcpu=powerpc: -DCPU=PPC603} \
|
||||
%{mcpu=403: -DCPU=PPC403} \
|
||||
%{mcpu=601: -DCPU=PPC601} \
|
||||
%{mcpu=603: -DCPU=PPC603} \
|
||||
%{mcpu=604: -DCPU=PPC604}}"
|
||||
#undef LIB_DEFAULT_SPEC
|
||||
#define LIB_DEFAULT_SPEC "%(lib_vxworks)"
|
||||
|
||||
#undef STARTFILE_DEFAULT_SPEC
|
||||
#define STARTFILE_DEFAULT_SPEC "%(startfile_vxworks)"
|
||||
|
||||
#undef ENDFILE_DEFAULT_SPEC
|
||||
#define ENDFILE_DEFAULT_SPEC "%(endfile_vxworks)"
|
||||
|
||||
#undef LINK_START_DEFAULT_SPEC
|
||||
#define LINK_START_DEFAULT_SPEC "%(link_start_vxworks)"
|
||||
|
||||
#undef LINK_OS_DEFAULT_SPEC
|
||||
#define LINK_OS_DEFAULT_SPEC "%(link_os_vxworks)"
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "\
|
||||
-D__vxworks -Asystem(vxworks) -Asystem(embedded) \
|
||||
-D__vxworks -D__vxworks__ -Asystem(vxworks) -Asystem(embedded) \
|
||||
-Acpu(powerpc) -Amachine(powerpc)"
|
||||
|
||||
/* VxWorks does all the library stuff itself. */
|
||||
/* Don't define _LITTLE_ENDIAN or _BIG_ENDIAN */
|
||||
#undef CPP_ENDIAN_BIG_SPEC
|
||||
#define CPP_ENDIAN_BIG_SPEC "-D__BIG_ENDIAN__ -Amachine(bigendian)"
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC ""
|
||||
|
||||
/* VxWorks uses object files, not loadable images. make linker just
|
||||
combine objects. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "-r"
|
||||
|
||||
/* VxWorks provides the functionality of crt0.o and friends itself. */
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC ""
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC ""
|
||||
#undef CPP_ENDIAN_LITTLE_SPEC
|
||||
#define CPP_ENDIAN_LITTLE_SPEC "-D__LITTLE_ENDIAN__ -Amachine(littleendian)"
|
||||
|
||||
/* We use stabs-in-elf for debugging */
|
||||
#undef PREFERRED_DEBUGGING_TYPE
|
||||
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
|
||||
|
||||
/* VxWorks normally doesn't have an unaligned handler, so make -mstrict-align
|
||||
the default. */
|
||||
#undef SUBTARGET_DEFAULT
|
||||
#define SUBTARGET_DEFAULT MASK_STRICT_ALIGN
|
||||
|
58
gcc/config/rs6000/vxppcle.h
Normal file
58
gcc/config/rs6000/vxppcle.h
Normal file
@ -0,0 +1,58 @@
|
||||
/* Definitions of target machine for GNU compiler. Vxworks PowerPC version.
|
||||
Copyright (C) 1996, 1998 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* This file just exists to give specs for the PowerPC running on VxWorks. */
|
||||
|
||||
#include "rs6000/sysv4le.h"
|
||||
|
||||
/* Reset defaults */
|
||||
#undef CPP_OS_DEFAULT_SPEC
|
||||
#define CPP_OS_DEFAULT_SPEC "%(cpp_os_vxworks)"
|
||||
|
||||
#undef LIB_DEFAULT_SPEC
|
||||
#define LIB_DEFAULT_SPEC "%(lib_vxworks)"
|
||||
|
||||
#undef STARTFILE_DEFAULT_SPEC
|
||||
#define STARTFILE_DEFAULT_SPEC "%(startfile_vxworks)"
|
||||
|
||||
#undef ENDFILE_DEFAULT_SPEC
|
||||
#define ENDFILE_DEFAULT_SPEC "%(endfile_vxworks)"
|
||||
|
||||
#undef LINK_START_DEFAULT_SPEC
|
||||
#define LINK_START_DEFAULT_SPEC "%(link_start_vxworks)"
|
||||
|
||||
#undef LINK_OS_DEFAULT_SPEC
|
||||
#define LINK_OS_DEFAULT_SPEC "%(link_os_vxworks)"
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "\
|
||||
-D__vxworks -D__vxworks__ -Asystem(vxworks) -Asystem(embedded) \
|
||||
-Acpu(powerpc) -Amachine(powerpc)"
|
||||
|
||||
/* Don't define _LITTLE_ENDIAN or _BIG_ENDIAN */
|
||||
#undef CPP_ENDIAN_BIG_SPEC
|
||||
#define CPP_ENDIAN_BIG_SPEC "-D__BIG_ENDIAN__ -Amachine(bigendian)"
|
||||
|
||||
#undef CPP_ENDIAN_LITTLE_SPEC
|
||||
#define CPP_ENDIAN_LITTLE_SPEC "-D__LITTLE_ENDIAN__ -Amachine(littleendian)"
|
||||
|
||||
/* We use stabs-in-elf for debugging */
|
||||
#undef PREFERRED_DEBUGGING_TYPE
|
||||
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
|
@ -1,483 +0,0 @@
|
||||
/* Definitions of target machine for GNU compiler, for PowerPC
|
||||
running Windows/NT.
|
||||
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
Contributed by Cygnus Support.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Say this is Windows/NT for the other config files. */
|
||||
#define WINDOWS_NT 1
|
||||
#define COFF_WITH_PE 1
|
||||
|
||||
/* Default ABI to compile code for */
|
||||
#define DEFAULT_ABI ABI_NT
|
||||
|
||||
#define CPP_DEFAULT_SPEC "-D_ARCH_PPC"
|
||||
|
||||
#define ASM_DEFAULT_SPEC "-mppc"
|
||||
|
||||
/* Pseudo target that we can test in the md file. */
|
||||
#define TARGET_WINDOWS_NT 1
|
||||
|
||||
#include "rs6000/rs6000.h"
|
||||
|
||||
#undef TARGET_DEFAULT
|
||||
#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS)
|
||||
|
||||
#undef PROCESSOR_DEFAULT
|
||||
#define PROCESSOR_DEFAULT PROCESSOR_POWERPC
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "-DWIN32 -D_WIN32 \
|
||||
-DWINNT -D__STDC__=0 -DALMOST_STDC \
|
||||
-D_POWER -D_ARCH_PPC -D__PPC__ -Asystem(winnt) -Acpu(powerpc) -Amachine(powerpc)"
|
||||
|
||||
#if 0
|
||||
#include "winnt/win-nt.h"
|
||||
#endif
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC "%{mwindows:-subsystem:windows -entry:WinMainCRTStartup \
|
||||
USER32.LIB GDI32.LIB COMDLG32.LIB WINSPOOL.LIB} \
|
||||
%{!mwindows:-subsystem console -e mainCRTStartup} \
|
||||
%{mcrtmt:LIBCMT.LIB KERNEL32.LIB} %{!mcrtmt:-lkernel32 -lcygwin} \
|
||||
%{v}"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{v:-V}"
|
||||
|
||||
/* Allow switches specified in LIB_SPEC, but don't do anything with them
|
||||
in the compiler. */
|
||||
#undef SUBTARGET_SWITCHES
|
||||
#define SUBTARGET_SWITCHES \
|
||||
{ "windows", 0 }, \
|
||||
{ "crtmt", 0 },
|
||||
|
||||
#undef XCOFF_DEBUGGING_INFO
|
||||
|
||||
/* this is pure coff, not xcoff */
|
||||
#define SDB_DEBUGGING_INFO
|
||||
#define DBX_DEBUGGING_INFO
|
||||
|
||||
#undef SDB_DELIM
|
||||
#define SDB_DELIM ";"
|
||||
|
||||
#undef PREFERRED_DEBUGGING_TYPE
|
||||
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
|
||||
|
||||
/* NT always runs little endian */
|
||||
#undef BYTES_BIG_ENDIAN
|
||||
#define BYTES_BIG_ENDIAN 0
|
||||
|
||||
#undef WORDS_BIG_ENDIAN
|
||||
#define WORDS_BIG_ENDIAN 0
|
||||
|
||||
/* Define cutoff for using external functions to save floating point.
|
||||
Currently on NT, always use inline stores */
|
||||
#undef FP_SAVE_INLINE
|
||||
#define FP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) < 64)
|
||||
|
||||
/* Note, little endian systems trap on unaligned addresses, so never
|
||||
turn off strict alignment in that case. */
|
||||
|
||||
#undef STRICT_ALIGNMENT
|
||||
#define STRICT_ALIGNMENT 1
|
||||
|
||||
/* Align stack to 16 byte boundaries */
|
||||
#undef STACK_BOUNDARY
|
||||
#define STACK_BOUNDARY 128
|
||||
|
||||
/* No data type wants to be aligned rounder than this. */
|
||||
#undef BIGGEST_ALIGNMENT
|
||||
#define BIGGEST_ALIGNMENT 128
|
||||
|
||||
/* NT aligns internal doubles in structures on dword boundaries. */
|
||||
#undef BIGGEST_FIELD_ALIGNMENT
|
||||
#define BIGGEST_FIELD_ALIGNMENT 64
|
||||
|
||||
#undef ADJUST_FIELD_ALIGN
|
||||
#undef ROUND_TYPE_ALIGN
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (PowerPC PE)");
|
||||
|
||||
#undef TARGET_DEFAULT
|
||||
#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_NO_FP_IN_TOC | MASK_NO_SUM_IN_TOC)
|
||||
|
||||
/* MEM representing address to save the TOC register */
|
||||
#undef RS6000_SAVE_TOC
|
||||
#define RS6000_SAVE_TOC gen_rtx_MEM (Pmode, \
|
||||
plus_constant (virtual_incoming_args_rtx,
|
||||
-RS6000_SAVE_AREA - 8))
|
||||
|
||||
/* Windows NT specifies that r13 is reserved to the OS, so it is not available
|
||||
to the normal user. */
|
||||
|
||||
#undef FIXED_R13
|
||||
#define FIXED_R13 1
|
||||
|
||||
/* This says how to output an assembler line
|
||||
to define a global common symbol. */
|
||||
|
||||
#undef ASM_OUTPUT_ALIGNED_COMMON
|
||||
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGNMENT) \
|
||||
do { fputs ("\t.comm \t", (FILE)); \
|
||||
assemble_name ((FILE), (NAME)); \
|
||||
if ( (SIZE) > 4) \
|
||||
fprintf ((FILE), ",%d,%d\n", (SIZE), 3); \
|
||||
else \
|
||||
fprintf( (FILE), ",%d\n", (SIZE)); \
|
||||
} while (0)
|
||||
|
||||
#undef ASM_OUTPUT_ALIGNED_LOCAL
|
||||
|
||||
/* This says how to output an assembler line
|
||||
to define a global common symbol. */
|
||||
|
||||
#undef ASM_OUTPUT_COMMON
|
||||
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
|
||||
do { fputs ("\t.comm \t", (FILE)); \
|
||||
assemble_name ((FILE), (NAME)); \
|
||||
fprintf ((FILE), ",%d\n", (SIZE)); } while (0)
|
||||
|
||||
/* This says how to output an assembler line
|
||||
to define an aligned local common symbol. */
|
||||
|
||||
#undef ASM_OUTPUT_ALIGNED_LOCAL
|
||||
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
|
||||
do { \
|
||||
bss_section (); \
|
||||
ASM_OUTPUT_ALIGN (FILE, exact_log2 (ALIGN / BITS_PER_UNIT)); \
|
||||
ASM_OUTPUT_LABEL (FILE, NAME); \
|
||||
ASM_OUTPUT_SKIP (FILE, SIZE); \
|
||||
} while (0)
|
||||
|
||||
/* Describe how to emit uninitialized external linkage items */
|
||||
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
|
||||
do { \
|
||||
ASM_GLOBALIZE_LABEL (FILE, NAME); \
|
||||
ASM_OUTPUT_ALIGNED_LOCAL (FILE, NAME, SIZE, ALIGN); \
|
||||
} while (0)
|
||||
|
||||
/* This says out to put a global symbol in the BSS section */
|
||||
#undef ASM_OUTPUT_ALIGNED_BSS
|
||||
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
|
||||
asm_output_aligned_bss ((FILE), (DECL), (NAME), (SIZE), (ALIGN))
|
||||
|
||||
|
||||
/* Stuff to force fit us into the Motorola PPC assembler */
|
||||
|
||||
#undef ASM_FILE_START
|
||||
#define ASM_FILE_START(FILE) \
|
||||
do { \
|
||||
output_file_directive ((FILE), main_input_filename); \
|
||||
rs6000_file_start (FILE, TARGET_CPU_DEFAULT); \
|
||||
data_section (); \
|
||||
} while (0)
|
||||
|
||||
#undef ASM_FILE_END
|
||||
|
||||
#undef ASM_DECLARE_FUNCTION_NAME
|
||||
#define ASM_DECLARE_FUNCTION_NAME(FILE,NAME,DECL) \
|
||||
{ \
|
||||
tree exception_args; \
|
||||
int i; \
|
||||
\
|
||||
if (TREE_PUBLIC (DECL)) \
|
||||
{ \
|
||||
fprintf (FILE, "\t.globl .."); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, "\n"); \
|
||||
} \
|
||||
\
|
||||
fprintf (FILE, "\n#\tFunction: '.."); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fputs ("'\n", FILE); \
|
||||
fputs ("#\tText in section: <default>\n\n", FILE); \
|
||||
fputs ("#\tSetup MS Structured-Exception-Handling\n", FILE); \
|
||||
fputs ("\t.pdata\n", FILE); \
|
||||
fputs ("\t.align 2\n", FILE); \
|
||||
fputs ("\t.ualong ..", FILE); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fputs (",", FILE); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fputs (".e,", FILE); \
|
||||
exception_args = lookup_attribute ("exception", \
|
||||
TYPE_ATTRIBUTES (TREE_TYPE (DECL))); \
|
||||
\
|
||||
if (exception_args) \
|
||||
exception_args = TREE_VALUE (exception_args); \
|
||||
\
|
||||
for (i = 0; i < 2; i++) \
|
||||
{ \
|
||||
if (!exception_args) \
|
||||
fputs ("0,", FILE); \
|
||||
else \
|
||||
{ \
|
||||
tree field = TREE_VALUE (exception_args); \
|
||||
exception_args = TREE_PURPOSE (exception_args); \
|
||||
if (TREE_CODE (field) == STRING_CST) \
|
||||
fprintf (FILE, "%.*s,", TREE_STRING_LENGTH (field), \
|
||||
TREE_STRING_POINTER (field)); \
|
||||
else if (TREE_CODE (field) == IDENTIFIER_NODE) \
|
||||
fprintf (FILE, "%.*s,", IDENTIFIER_LENGTH (field), \
|
||||
IDENTIFIER_POINTER (field)); \
|
||||
else \
|
||||
abort (); \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, ".b\n\n"); \
|
||||
fprintf (FILE, "#\tSwitch to the relocation section\n"); \
|
||||
fprintf (FILE, "\t.reldata\n"); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, ":\n"); \
|
||||
fprintf (FILE, "\t.ualong .."); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, ",.toc\n"); \
|
||||
\
|
||||
if (lookup_attribute ("dllexport", \
|
||||
TYPE_ATTRIBUTES (TREE_TYPE (DECL)))) \
|
||||
{ \
|
||||
fprintf (FILE, "\t.globl __imp_"); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, "\n__imp_"); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, ":\n\t.ulong "); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, "\n"); \
|
||||
} \
|
||||
\
|
||||
fprintf (FILE, "\t.section .text\n\t.align 2\n.."); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, ":\n"); \
|
||||
fprintf (FILE, "\t.function\t.."); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, "\n"); \
|
||||
}
|
||||
|
||||
/* This is how to output an assembler line defining a `double' constant. */
|
||||
|
||||
#undef ASM_OUTPUT_DOUBLE
|
||||
#define ASM_OUTPUT_DOUBLE(FILE, VALUE) \
|
||||
{ \
|
||||
if (REAL_VALUE_ISINF (VALUE) \
|
||||
|| REAL_VALUE_ISNAN (VALUE) \
|
||||
|| REAL_VALUE_MINUS_ZERO (VALUE)) \
|
||||
{ \
|
||||
long t[2]; \
|
||||
REAL_VALUE_TO_TARGET_DOUBLE ((VALUE), t); \
|
||||
fprintf (FILE, "\t.ualong 0x%lx\n\t.long 0x%lx\n", \
|
||||
t[0] & 0xffffffff, t[1] & 0xffffffff); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
char str[30]; \
|
||||
REAL_VALUE_TO_DECIMAL (VALUE, "%.20e", str); \
|
||||
fprintf (FILE, "\t.double %s\n", str); \
|
||||
} \
|
||||
}
|
||||
|
||||
/* This is how to output an assembler line defining a `float' constant. */
|
||||
|
||||
#undef ASM_OUTPUT_FLOAT
|
||||
#define ASM_OUTPUT_FLOAT(FILE, VALUE) \
|
||||
{ \
|
||||
if (REAL_VALUE_ISINF (VALUE) \
|
||||
|| REAL_VALUE_ISNAN (VALUE) \
|
||||
|| REAL_VALUE_MINUS_ZERO (VALUE)) \
|
||||
{ \
|
||||
long t; \
|
||||
REAL_VALUE_TO_TARGET_SINGLE ((VALUE), t); \
|
||||
fprintf (FILE, "\t.ualong 0x%lx\n", t & 0xffffffff); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
char str[30]; \
|
||||
REAL_VALUE_TO_DECIMAL ((VALUE), "%.20e", str); \
|
||||
fprintf (FILE, "\t.float %s\n", str); \
|
||||
} \
|
||||
}
|
||||
|
||||
/* Output before instructions. */
|
||||
#undef TEXT_SECTION_ASM_OP
|
||||
#define TEXT_SECTION_ASM_OP "\t.text"
|
||||
|
||||
/* Output before writable data. */
|
||||
#undef DATA_SECTION_ASM_OP
|
||||
#define DATA_SECTION_ASM_OP "\t.data"
|
||||
|
||||
/* Output to the bss section. */
|
||||
#undef BSS_SECTION_ASM_OP
|
||||
#define BSS_SECTION_ASM_OP "\t.section .bss"
|
||||
|
||||
/* Define the extra sections we need. We define a dummy TOC section,
|
||||
plus sections to hold the list of static constructors (.ctors) and
|
||||
destructors (.dtors). */
|
||||
|
||||
#undef READONLY_DATA_SECTION
|
||||
#undef EXTRA_SECTIONS
|
||||
#define EXTRA_SECTIONS in_toc, in_ctors, in_dtors
|
||||
|
||||
/* Define the routines to implement these extra sections. */
|
||||
|
||||
#undef EXTRA_SECTION_FUNCTIONS
|
||||
#define EXTRA_SECTION_FUNCTIONS \
|
||||
CTORS_SECTION_FUNCTION \
|
||||
DTORS_SECTION_FUNCTION \
|
||||
TOC_SECTION_FUNCTION \
|
||||
|
||||
#define TOC_SECTION_FUNCTION \
|
||||
void \
|
||||
toc_section () \
|
||||
{ \
|
||||
}
|
||||
|
||||
#define CTORS_SECTION_ASM_OP ".section\t.ctors"
|
||||
#define CTORS_SECTION_FUNCTION \
|
||||
void \
|
||||
ctors_section () \
|
||||
{ \
|
||||
if (in_section != in_ctors) \
|
||||
{ \
|
||||
fprintf (asm_out_file, "%s\n", CTORS_SECTION_ASM_OP); \
|
||||
in_section = in_ctors; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define DTORS_SECTION_ASM_OP ".section\t.dtors"
|
||||
#define DTORS_SECTION_FUNCTION \
|
||||
void \
|
||||
dtors_section () \
|
||||
{ \
|
||||
if (in_section != in_dtors) \
|
||||
{ \
|
||||
fprintf (asm_out_file, "%s\n", DTORS_SECTION_ASM_OP); \
|
||||
in_section = in_dtors; \
|
||||
} \
|
||||
}
|
||||
|
||||
#undef SELECT_SECTION
|
||||
#undef SELECT_RTX_SECTION
|
||||
|
||||
/* Make sure __main gets called */
|
||||
#define INVOKE__main 1
|
||||
|
||||
/* A C statement (sans semicolon) to output an element in the table of
|
||||
global constructors. */
|
||||
#undef ASM_OUTPUT_CONSTRUCTOR
|
||||
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
|
||||
do { \
|
||||
ctors_section (); \
|
||||
fprintf (FILE, "\t.ualong "); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, "\n"); \
|
||||
} while (0)
|
||||
|
||||
/* A C statement (sans semicolon) to output an element in the table of
|
||||
global destructors. */
|
||||
#undef ASM_OUTPUT_DESTRUCTOR
|
||||
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
|
||||
do { \
|
||||
dtors_section (); \
|
||||
fprintf (FILE, "\t.ualong "); \
|
||||
assemble_name (FILE, NAME); \
|
||||
fprintf (FILE, "\n"); \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* Text to write out after a CALL that may be replaced by glue code by
|
||||
the loader. The motorola asm demands that, for dll support, a .znop
|
||||
be issued after a bl instruction, and the symbol on the .znop is the
|
||||
symbol on the bl instruction */
|
||||
|
||||
#undef RS6000_CALL_GLUE
|
||||
#define RS6000_CALL_GLUE "nop #\tFIXME: only works for non-dll calls."
|
||||
|
||||
#define RS6000_CALL_GLUE2 ".znop "
|
||||
|
||||
#undef ASM_OUTPUT_SPECIAL_POOL_ENTRY
|
||||
|
||||
/* Output something to declare an external symbol to the assembler. Most
|
||||
assemblers don't need this. */
|
||||
|
||||
#undef ASM_OUTPUT_EXTERNAL
|
||||
|
||||
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
|
||||
{ \
|
||||
char *_name; \
|
||||
rtx _symref = XEXP (DECL_RTL (DECL), 0); \
|
||||
if ((TREE_CODE (DECL) == VAR_DECL \
|
||||
|| TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
&& (NAME)[strlen (NAME) - 1] != ']') \
|
||||
{ \
|
||||
_name = (char *) permalloc (strlen (XSTR (_symref, 0)) + 5); \
|
||||
strcpy (_name, XSTR (_symref, 0)); \
|
||||
XSTR (_symref, 0) = _name; \
|
||||
} \
|
||||
else \
|
||||
_name = XSTR (_symref, 0); \
|
||||
\
|
||||
if (DECL_FUNCTION_CODE (DECL) == 0) \
|
||||
{ \
|
||||
fputs ("\t.extern ", FILE); \
|
||||
assemble_name (FILE, _name); \
|
||||
putc ('\n', FILE); \
|
||||
if (TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
{ \
|
||||
fputs ("\t.extern ..", FILE); \
|
||||
assemble_name (FILE, _name); \
|
||||
putc ('\n', FILE); \
|
||||
} \
|
||||
} \
|
||||
}
|
||||
|
||||
/* Similar, but for libcall. We only have to worry about the function name,
|
||||
not that of the descriptor. */
|
||||
|
||||
#undef ASM_OUTPUT_EXTERNAL_LIBCALL
|
||||
|
||||
#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \
|
||||
{ fprintf (FILE, "\t.extern .."); \
|
||||
assemble_name (FILE, XSTR (FUN, 0)); \
|
||||
fprintf (FILE, "\n"); \
|
||||
}
|
||||
|
||||
/* The prefix to add to user-visible assembler symbols. */
|
||||
|
||||
#define USER_LABEL_PREFIX ".."
|
||||
|
||||
/* Eliminate AIX style constant pool processing */
|
||||
#undef LEGITIMATE_CONSTANT_POOL_BASE_P
|
||||
#define LEGITIMATE_CONSTANT_POOL_BASE_P(X) 0
|
||||
|
||||
#undef LEGITIMATE_CONSTANT_POOL_ADDRESS_P
|
||||
#define LEGITIMATE_CONSTANT_POOL_ADDRESS_P(X) 0
|
||||
|
||||
#undef ASM_OUTPUT_SPECIAL_POOL_ENTRY
|
||||
|
||||
#undef ASM_IDENTIFY_GCC
|
||||
#define ASM_IDENTIFY_GCC(x)
|
||||
|
||||
/* Output assembler code for a block containing the constant parts
|
||||
of a trampoline, leaving space for the variable parts.
|
||||
|
||||
The trampoline should set the static chain pointer to value placed
|
||||
into the trampoline and should branch to the specified routine. */
|
||||
#define TRAMPOLINE_TEMPLATE(FILE) rs6000_trampoline_template (FILE)
|
@ -2,11 +2,3 @@
|
||||
|
||||
# Show we need to use the C version of ALLOCA
|
||||
ALLOCA=alloca.o
|
||||
|
||||
# We need -lld for collect2 (actually this only matters
|
||||
# for a native compiler, but this is as good a place as any
|
||||
# to define the symbol).
|
||||
CLIB=-lld
|
||||
|
||||
# f771 and cc1plus overflow the AIX TOC
|
||||
BOOT_LDFLAGS=-Wl,-bbigtoc
|
||||
|
@ -1,12 +0,0 @@
|
||||
# configuration for IBM RS/6000 running AIX 4.1+
|
||||
|
||||
# Show we need to use the C version of ALLOCA
|
||||
ALLOCA=alloca.o
|
||||
|
||||
# We need -lld for collect2 (actually this only matters
|
||||
# for a native compiler, but this is as good a place as any
|
||||
# to define the symbol).
|
||||
CLIB=-lld
|
||||
|
||||
# f771 and cc1plus overflow the AIX TOC, however gld doesn't support -bbigtoc
|
||||
# BOOT_LDFLAGS=-Wl,-bbigtoc
|
@ -1,15 +0,0 @@
|
||||
# configuration for IBM RS/6000 running AIX 4.3+
|
||||
|
||||
# Show we need to use the C version of ALLOCA
|
||||
ALLOCA=alloca.o
|
||||
|
||||
# We need -lld for collect2 (actually this only matters
|
||||
# for a native compiler, but this is as good a place as any
|
||||
# to define the symbol).
|
||||
CLIB=-lld
|
||||
|
||||
# f771 and cc1plus overflow the AIX TOC
|
||||
BOOT_LDFLAGS=-Wl,-bbigtoc
|
||||
|
||||
# Both 32-bit and 64-bit objects in archives
|
||||
AR_FOR_TARGET=ar -X32_64
|
253
gcc/configure
vendored
253
gcc/configure
vendored
@ -1369,7 +1369,7 @@ else
|
||||
fi
|
||||
|
||||
# Find some useful tools
|
||||
for ac_prog in mawk gawk nawk awk
|
||||
for ac_prog in gawk mawk nawk awk
|
||||
do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
@ -5694,6 +5694,15 @@ for machine in $build $host $target; do
|
||||
extra_headers=ppc-asm.h
|
||||
thread_file='vxworks'
|
||||
;;
|
||||
powerpcle-wrs-vxworks*)
|
||||
cpu_type=rs6000
|
||||
xm_file="rs6000/xm-sysv4.h"
|
||||
xm_defines="USG POSIX"
|
||||
tm_file=rs6000/vxppcle.h
|
||||
tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
|
||||
extra_headers=ppc-asm.h
|
||||
thread_file='vxworks'
|
||||
;;
|
||||
powerpcle-*-sysv* | powerpcle-*-elf*)
|
||||
tm_file=rs6000/sysv4le.h
|
||||
xm_file="rs6000/xm-sysv4.h"
|
||||
@ -5722,27 +5731,6 @@ for machine in $build $host $target; do
|
||||
fi
|
||||
extra_headers=ppc-asm.h
|
||||
;;
|
||||
powerpcle-*-winnt* )
|
||||
tm_file=rs6000/win-nt.h
|
||||
tmake_file=rs6000/t-winnt
|
||||
# extra_objs=pe.o
|
||||
if test x$enable_threads = xyes; then
|
||||
thread_file='win32'
|
||||
fi
|
||||
extra_headers=ppc-asm.h
|
||||
;;
|
||||
powerpcle-*-pe | powerpcle-*-cygwin*)
|
||||
tm_file=rs6000/cygwin.h
|
||||
xm_file="rs6000/xm-cygwin.h ${xm_file}"
|
||||
tmake_file=rs6000/t-winnt
|
||||
xmake_file=rs6000/x-cygwin
|
||||
# extra_objs=pe.o
|
||||
if test x$enable_threads = xyes; then
|
||||
thread_file='win32'
|
||||
fi
|
||||
exeext=.exe
|
||||
extra_headers=ppc-asm.h
|
||||
;;
|
||||
powerpcle-*-solaris2*)
|
||||
tm_file=rs6000/sol2.h
|
||||
xm_file="rs6000/xm-sysv4.h"
|
||||
@ -5781,36 +5769,21 @@ for machine in $build $host $target; do
|
||||
else
|
||||
tmake_file=rs6000/t-newas
|
||||
fi
|
||||
if test "$gnu_ld" = yes
|
||||
then
|
||||
xmake_file=rs6000/x-aix41-gld
|
||||
else
|
||||
xmake_file=rs6000/x-aix41
|
||||
fi
|
||||
xmake_file=rs6000/x-aix41
|
||||
float_format=none
|
||||
use_collect2=yes
|
||||
;;
|
||||
rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
|
||||
tm_file=rs6000/aix43.h
|
||||
if test x$host != x$target
|
||||
then
|
||||
tmake_file=rs6000/t-xaix43
|
||||
else
|
||||
tmake_file=rs6000/t-aix43
|
||||
fi
|
||||
xmake_file=rs6000/x-aix43
|
||||
tmake_file=rs6000/t-aix43
|
||||
xmake_file=rs6000/x-aix41
|
||||
float_format=none
|
||||
use_collect2=yes
|
||||
;;
|
||||
rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
|
||||
tm_file=rs6000/aix43.h
|
||||
if test x$host != x$target
|
||||
then
|
||||
tmake_file=rs6000/t-xaix43
|
||||
else
|
||||
tmake_file=rs6000/t-aix43
|
||||
fi
|
||||
xmake_file=rs6000/x-aix43
|
||||
tmake_file=rs6000/t-aix43
|
||||
xmake_file=rs6000/x-aix41
|
||||
float_format=none
|
||||
use_collect2=yes
|
||||
;;
|
||||
@ -6678,7 +6651,7 @@ fi
|
||||
|
||||
|
||||
echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6
|
||||
echo "configure:6682: checking for strerror in -lcposix" >&5
|
||||
echo "configure:6655: checking for strerror in -lcposix" >&5
|
||||
ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -6686,7 +6659,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lcposix $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6690 "configure"
|
||||
#line 6663 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -6697,7 +6670,7 @@ int main() {
|
||||
strerror()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:6674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -6720,12 +6693,12 @@ fi
|
||||
|
||||
|
||||
echo $ac_n "checking for working const""... $ac_c" 1>&6
|
||||
echo "configure:6724: checking for working const" >&5
|
||||
echo "configure:6697: checking for working const" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6729 "configure"
|
||||
#line 6702 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
@ -6774,7 +6747,7 @@ ccp = (char const *const *) p;
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6778: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6751: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
ac_cv_c_const=yes
|
||||
else
|
||||
@ -6795,21 +6768,21 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for inline""... $ac_c" 1>&6
|
||||
echo "configure:6799: checking for inline" >&5
|
||||
echo "configure:6772: checking for inline" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
ac_cv_c_inline=no
|
||||
for ac_kw in inline __inline__ __inline; do
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6806 "configure"
|
||||
#line 6779 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
} $ac_kw foo() {
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6813: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
ac_cv_c_inline=$ac_kw; break
|
||||
else
|
||||
@ -6835,12 +6808,12 @@ EOF
|
||||
esac
|
||||
|
||||
echo $ac_n "checking for off_t""... $ac_c" 1>&6
|
||||
echo "configure:6839: checking for off_t" >&5
|
||||
echo "configure:6812: checking for off_t" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6844 "configure"
|
||||
#line 6817 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <sys/types.h>
|
||||
#if STDC_HEADERS
|
||||
@ -6868,12 +6841,12 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for size_t""... $ac_c" 1>&6
|
||||
echo "configure:6872: checking for size_t" >&5
|
||||
echo "configure:6845: checking for size_t" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6877 "configure"
|
||||
#line 6850 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <sys/types.h>
|
||||
#if STDC_HEADERS
|
||||
@ -6903,19 +6876,19 @@ fi
|
||||
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
|
||||
# for constant arguments. Useless!
|
||||
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
|
||||
echo "configure:6907: checking for working alloca.h" >&5
|
||||
echo "configure:6880: checking for working alloca.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6912 "configure"
|
||||
#line 6885 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <alloca.h>
|
||||
int main() {
|
||||
char *p = alloca(2 * sizeof(int));
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:6892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
ac_cv_header_alloca_h=yes
|
||||
else
|
||||
@ -6936,12 +6909,12 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for alloca""... $ac_c" 1>&6
|
||||
echo "configure:6940: checking for alloca" >&5
|
||||
echo "configure:6913: checking for alloca" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6945 "configure"
|
||||
#line 6918 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
@ -6969,7 +6942,7 @@ int main() {
|
||||
char *p = (char *) alloca(1);
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:6946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
ac_cv_func_alloca_works=yes
|
||||
else
|
||||
@ -7001,12 +6974,12 @@ EOF
|
||||
|
||||
|
||||
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
|
||||
echo "configure:7005: checking whether alloca needs Cray hooks" >&5
|
||||
echo "configure:6978: checking whether alloca needs Cray hooks" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7010 "configure"
|
||||
#line 6983 "configure"
|
||||
#include "confdefs.h"
|
||||
#if defined(CRAY) && ! defined(CRAY2)
|
||||
webecray
|
||||
@ -7031,12 +7004,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
|
||||
if test $ac_cv_os_cray = yes; then
|
||||
for ac_func in _getb67 GETB67 getb67; do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:7035: checking for $ac_func" >&5
|
||||
echo "configure:7008: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7040 "configure"
|
||||
#line 7013 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -7059,7 +7032,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -7086,7 +7059,7 @@ done
|
||||
fi
|
||||
|
||||
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
|
||||
echo "configure:7090: checking stack direction for C alloca" >&5
|
||||
echo "configure:7063: checking stack direction for C alloca" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -7094,7 +7067,7 @@ else
|
||||
ac_cv_c_stack_direction=0
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7098 "configure"
|
||||
#line 7071 "configure"
|
||||
#include "confdefs.h"
|
||||
find_stack_direction ()
|
||||
{
|
||||
@ -7113,7 +7086,7 @@ main ()
|
||||
exit (find_stack_direction() < 0);
|
||||
}
|
||||
EOF
|
||||
if { (eval echo configure:7117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:7090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_c_stack_direction=1
|
||||
else
|
||||
@ -7138,17 +7111,17 @@ for ac_hdr in unistd.h
|
||||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
echo "configure:7142: checking for $ac_hdr" >&5
|
||||
echo "configure:7115: checking for $ac_hdr" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7147 "configure"
|
||||
#line 7120 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$ac_hdr>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:7152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:7125: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -7177,12 +7150,12 @@ done
|
||||
for ac_func in getpagesize
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:7181: checking for $ac_func" >&5
|
||||
echo "configure:7154: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7186 "configure"
|
||||
#line 7159 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -7205,7 +7178,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -7230,7 +7203,7 @@ fi
|
||||
done
|
||||
|
||||
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
|
||||
echo "configure:7234: checking for working mmap" >&5
|
||||
echo "configure:7207: checking for working mmap" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -7238,7 +7211,7 @@ else
|
||||
ac_cv_func_mmap_fixed_mapped=no
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7242 "configure"
|
||||
#line 7215 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
/* Thanks to Mike Haertel and Jim Avera for this test.
|
||||
@ -7378,7 +7351,7 @@ main()
|
||||
}
|
||||
|
||||
EOF
|
||||
if { (eval echo configure:7382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:7355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_func_mmap_fixed_mapped=yes
|
||||
else
|
||||
@ -7406,17 +7379,17 @@ unistd.h sys/param.h
|
||||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
echo "configure:7410: checking for $ac_hdr" >&5
|
||||
echo "configure:7383: checking for $ac_hdr" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7415 "configure"
|
||||
#line 7388 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$ac_hdr>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:7420: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:7393: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -7446,12 +7419,12 @@ done
|
||||
strdup __argz_count __argz_stringify __argz_next
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:7450: checking for $ac_func" >&5
|
||||
echo "configure:7423: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7455 "configure"
|
||||
#line 7428 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -7474,7 +7447,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -7503,12 +7476,12 @@ done
|
||||
for ac_func in stpcpy
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:7507: checking for $ac_func" >&5
|
||||
echo "configure:7480: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7512 "configure"
|
||||
#line 7485 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -7531,7 +7504,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -7565,19 +7538,19 @@ EOF
|
||||
|
||||
if test $ac_cv_header_locale_h = yes; then
|
||||
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
|
||||
echo "configure:7569: checking for LC_MESSAGES" >&5
|
||||
echo "configure:7542: checking for LC_MESSAGES" >&5
|
||||
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7574 "configure"
|
||||
#line 7547 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <locale.h>
|
||||
int main() {
|
||||
return LC_MESSAGES
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
am_cv_val_LC_MESSAGES=yes
|
||||
else
|
||||
@ -7598,7 +7571,7 @@ EOF
|
||||
fi
|
||||
fi
|
||||
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
|
||||
echo "configure:7602: checking whether NLS is requested" >&5
|
||||
echo "configure:7575: checking whether NLS is requested" >&5
|
||||
# Check whether --enable-nls or --disable-nls was given.
|
||||
if test "${enable_nls+set}" = set; then
|
||||
enableval="$enable_nls"
|
||||
@ -7618,7 +7591,7 @@ fi
|
||||
EOF
|
||||
|
||||
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
|
||||
echo "configure:7622: checking whether included gettext is requested" >&5
|
||||
echo "configure:7595: checking whether included gettext is requested" >&5
|
||||
# Check whether --with-included-gettext or --without-included-gettext was given.
|
||||
if test "${with_included_gettext+set}" = set; then
|
||||
withval="$with_included_gettext"
|
||||
@ -7637,17 +7610,17 @@ fi
|
||||
|
||||
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
|
||||
echo "configure:7641: checking for libintl.h" >&5
|
||||
echo "configure:7614: checking for libintl.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7646 "configure"
|
||||
#line 7619 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <libintl.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:7651: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:7624: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -7664,19 +7637,19 @@ fi
|
||||
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
|
||||
echo "$ac_t""yes" 1>&6
|
||||
echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
|
||||
echo "configure:7668: checking for gettext in libc" >&5
|
||||
echo "configure:7641: checking for gettext in libc" >&5
|
||||
if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7673 "configure"
|
||||
#line 7646 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <libintl.h>
|
||||
int main() {
|
||||
return (int) gettext ("")
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
gt_cv_func_gettext_libc=yes
|
||||
else
|
||||
@ -7692,7 +7665,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
|
||||
|
||||
if test "$gt_cv_func_gettext_libc" != "yes"; then
|
||||
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
|
||||
echo "configure:7696: checking for bindtextdomain in -lintl" >&5
|
||||
echo "configure:7669: checking for bindtextdomain in -lintl" >&5
|
||||
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -7700,7 +7673,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lintl $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7704 "configure"
|
||||
#line 7677 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -7711,7 +7684,7 @@ int main() {
|
||||
bindtextdomain()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -7727,12 +7700,12 @@ fi
|
||||
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
|
||||
echo "$ac_t""yes" 1>&6
|
||||
echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
|
||||
echo "configure:7731: checking for gettext in libintl" >&5
|
||||
echo "configure:7704: checking for gettext in libintl" >&5
|
||||
if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
|
||||
echo "configure:7736: checking for gettext in -lintl" >&5
|
||||
echo "configure:7709: checking for gettext in -lintl" >&5
|
||||
ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -7740,7 +7713,7 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-lintl $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7744 "configure"
|
||||
#line 7717 "configure"
|
||||
#include "confdefs.h"
|
||||
/* Override any gcc2 internal prototype to avoid an error. */
|
||||
/* We use char because int might match the return type of a gcc2
|
||||
@ -7751,7 +7724,7 @@ int main() {
|
||||
gettext()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -7790,7 +7763,7 @@ EOF
|
||||
# Extract the first word of "msgfmt", so it can be a program name with args.
|
||||
set dummy msgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:7794: checking for $ac_word" >&5
|
||||
echo "configure:7767: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -7824,12 +7797,12 @@ fi
|
||||
for ac_func in dcgettext
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:7828: checking for $ac_func" >&5
|
||||
echo "configure:7801: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7833 "configure"
|
||||
#line 7806 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
@ -7852,7 +7825,7 @@ $ac_func();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
@ -7879,7 +7852,7 @@ done
|
||||
# Extract the first word of "gmsgfmt", so it can be a program name with args.
|
||||
set dummy gmsgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:7883: checking for $ac_word" >&5
|
||||
echo "configure:7856: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -7915,7 +7888,7 @@ fi
|
||||
# Extract the first word of "xgettext", so it can be a program name with args.
|
||||
set dummy xgettext; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:7919: checking for $ac_word" >&5
|
||||
echo "configure:7892: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -7947,7 +7920,7 @@ else
|
||||
fi
|
||||
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 7951 "configure"
|
||||
#line 7924 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
@ -7955,7 +7928,7 @@ extern int _nl_msg_cat_cntr;
|
||||
return _nl_msg_cat_cntr
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:7959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
CATOBJEXT=.gmo
|
||||
DATADIRNAME=share
|
||||
@ -7978,7 +7951,7 @@ fi
|
||||
|
||||
if test "$CATOBJEXT" = "NONE"; then
|
||||
echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6
|
||||
echo "configure:7982: checking whether catgets can be used" >&5
|
||||
echo "configure:7955: checking whether catgets can be used" >&5
|
||||
# Check whether --with-catgets or --without-catgets was given.
|
||||
if test "${with_catgets+set}" = set; then
|
||||
withval="$with_catgets"
|
||||
@ -7991,7 +7964,7 @@ fi
|
||||
|
||||
if test "$nls_cv_use_catgets" = "yes"; then
|
||||
echo $ac_n "checking for main in -li""... $ac_c" 1>&6
|
||||
echo "configure:7995: checking for main in -li" >&5
|
||||
echo "configure:7968: checking for main in -li" >&5
|
||||
ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'`
|
||||
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -7999,14 +7972,14 @@ else
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="-li $LIBS"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 8003 "configure"
|
||||
#line 7976 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
main()
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:8010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:7983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||
else
|
||||
@ -8034,12 +8007,12 @@ else
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for catgets""... $ac_c" 1>&6
|
||||
echo "configure:8038: checking for catgets" >&5
|
||||
echo "configure:8011: checking for catgets" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 8043 "configure"
|
||||
#line 8016 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char catgets(); below. */
|
||||
@ -8062,7 +8035,7 @@ catgets();
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:8066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:8039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_catgets=yes"
|
||||
else
|
||||
@ -8084,7 +8057,7 @@ EOF
|
||||
# Extract the first word of "gencat", so it can be a program name with args.
|
||||
set dummy gencat; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:8088: checking for $ac_word" >&5
|
||||
echo "configure:8061: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -8120,7 +8093,7 @@ fi
|
||||
# Extract the first word of "gmsgfmt", so it can be a program name with args.
|
||||
set dummy gmsgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:8124: checking for $ac_word" >&5
|
||||
echo "configure:8097: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -8157,7 +8130,7 @@ fi
|
||||
# Extract the first word of "msgfmt", so it can be a program name with args.
|
||||
set dummy msgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:8161: checking for $ac_word" >&5
|
||||
echo "configure:8134: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -8192,7 +8165,7 @@ fi
|
||||
# Extract the first word of "xgettext", so it can be a program name with args.
|
||||
set dummy xgettext; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:8196: checking for $ac_word" >&5
|
||||
echo "configure:8169: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -8250,7 +8223,7 @@ fi
|
||||
# Extract the first word of "msgfmt", so it can be a program name with args.
|
||||
set dummy msgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:8254: checking for $ac_word" >&5
|
||||
echo "configure:8227: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -8284,7 +8257,7 @@ fi
|
||||
# Extract the first word of "gmsgfmt", so it can be a program name with args.
|
||||
set dummy gmsgfmt; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:8288: checking for $ac_word" >&5
|
||||
echo "configure:8261: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -8320,7 +8293,7 @@ fi
|
||||
# Extract the first word of "xgettext", so it can be a program name with args.
|
||||
set dummy xgettext; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:8324: checking for $ac_word" >&5
|
||||
echo "configure:8297: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -8413,7 +8386,7 @@ fi
|
||||
LINGUAS=
|
||||
else
|
||||
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
|
||||
echo "configure:8417: checking for catalogs to be installed" >&5
|
||||
echo "configure:8390: checking for catalogs to be installed" >&5
|
||||
NEW_LINGUAS=
|
||||
for lang in ${LINGUAS=$ALL_LINGUAS}; do
|
||||
case "$ALL_LINGUAS" in
|
||||
@ -8441,17 +8414,17 @@ echo "configure:8417: checking for catalogs to be installed" >&5
|
||||
if test "$CATOBJEXT" = ".cat"; then
|
||||
ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
|
||||
echo "configure:8445: checking for linux/version.h" >&5
|
||||
echo "configure:8418: checking for linux/version.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 8450 "configure"
|
||||
#line 8423 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <linux/version.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:8455: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:8428: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
@ -8526,7 +8499,7 @@ fi
|
||||
|
||||
|
||||
echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6
|
||||
echo "configure:8530: checking whether windows registry support is requested" >&5
|
||||
echo "configure:8503: checking whether windows registry support is requested" >&5
|
||||
if test x$enable_win32_registry != xno; then
|
||||
cat >> confdefs.h <<\EOF
|
||||
#define ENABLE_WIN32_REGISTRY 1
|
||||
@ -8555,7 +8528,7 @@ esac
|
||||
|
||||
if test x$enable_win32_registry != xno; then
|
||||
echo $ac_n "checking registry key on windows hosts""... $ac_c" 1>&6
|
||||
echo "configure:8559: checking registry key on windows hosts" >&5
|
||||
echo "configure:8532: checking registry key on windows hosts" >&5
|
||||
cat >> confdefs.h <<EOF
|
||||
#define WIN32_REGISTRY_KEY "$gcc_cv_win32_registry_key"
|
||||
EOF
|
||||
@ -8731,7 +8704,7 @@ fi
|
||||
|
||||
# Figure out what assembler alignment features are present.
|
||||
echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6
|
||||
echo "configure:8735: checking assembler alignment features" >&5
|
||||
echo "configure:8708: checking assembler alignment features" >&5
|
||||
gcc_cv_as=
|
||||
gcc_cv_as_alignment_features=
|
||||
gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
|
||||
@ -8852,7 +8825,7 @@ fi
|
||||
echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6
|
||||
|
||||
echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6
|
||||
echo "configure:8856: checking assembler subsection support" >&5
|
||||
echo "configure:8829: checking assembler subsection support" >&5
|
||||
gcc_cv_as_subsections=
|
||||
if test x$gcc_cv_as != x; then
|
||||
# Check if we have .subsection
|
||||
@ -8892,7 +8865,7 @@ fi
|
||||
echo "$ac_t""$gcc_cv_as_subsections" 1>&6
|
||||
|
||||
echo $ac_n "checking assembler weak support""... $ac_c" 1>&6
|
||||
echo "configure:8896: checking assembler weak support" >&5
|
||||
echo "configure:8869: checking assembler weak support" >&5
|
||||
gcc_cv_as_weak=
|
||||
if test x$gcc_cv_as != x; then
|
||||
# Check if we have .weak
|
||||
@ -8911,7 +8884,7 @@ echo "$ac_t""$gcc_cv_as_weak" 1>&6
|
||||
case "$target" in
|
||||
sparc*-*-*)
|
||||
echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6
|
||||
echo "configure:8915: checking assembler .register pseudo-op support" >&5
|
||||
echo "configure:8888: checking assembler .register pseudo-op support" >&5
|
||||
if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -8941,7 +8914,7 @@ EOF
|
||||
case "$tm_file" in
|
||||
*64*)
|
||||
echo $ac_n "checking for 64 bit support in assembler ($gcc_cv_as)""... $ac_c" 1>&6
|
||||
echo "configure:8945: checking for 64 bit support in assembler ($gcc_cv_as)" >&5
|
||||
echo "configure:8918: checking for 64 bit support in assembler ($gcc_cv_as)" >&5
|
||||
if eval "test \"`echo '$''{'gcc_cv_as_flags64'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -8986,7 +8959,7 @@ EOF
|
||||
|
||||
if test "x$gcc_cv_as_flags64" != xno; then
|
||||
echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6
|
||||
echo "configure:8990: checking for assembler offsetable %lo() support" >&5
|
||||
echo "configure:8963: checking for assembler offsetable %lo() support" >&5
|
||||
if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -9025,7 +8998,7 @@ EOF
|
||||
|
||||
i[34567]86-*-*)
|
||||
echo $ac_n "checking assembler instructions""... $ac_c" 1>&6
|
||||
echo "configure:9029: checking assembler instructions" >&5
|
||||
echo "configure:9002: checking assembler instructions" >&5
|
||||
gcc_cv_as_instructions=
|
||||
if test x$gcc_cv_as != x; then
|
||||
set "filds fists" "filds mem; fists mem"
|
||||
|
@ -3078,6 +3078,15 @@ changequote([,])dnl
|
||||
extra_headers=ppc-asm.h
|
||||
thread_file='vxworks'
|
||||
;;
|
||||
powerpcle-wrs-vxworks*)
|
||||
cpu_type=rs6000
|
||||
xm_file="rs6000/xm-sysv4.h"
|
||||
xm_defines="USG POSIX"
|
||||
tm_file=rs6000/vxppcle.h
|
||||
tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
|
||||
extra_headers=ppc-asm.h
|
||||
thread_file='vxworks'
|
||||
;;
|
||||
powerpcle-*-sysv* | powerpcle-*-elf*)
|
||||
tm_file=rs6000/sysv4le.h
|
||||
xm_file="rs6000/xm-sysv4.h"
|
||||
@ -3106,27 +3115,6 @@ changequote([,])dnl
|
||||
fi
|
||||
extra_headers=ppc-asm.h
|
||||
;;
|
||||
powerpcle-*-winnt* )
|
||||
tm_file=rs6000/win-nt.h
|
||||
tmake_file=rs6000/t-winnt
|
||||
# extra_objs=pe.o
|
||||
if test x$enable_threads = xyes; then
|
||||
thread_file='win32'
|
||||
fi
|
||||
extra_headers=ppc-asm.h
|
||||
;;
|
||||
powerpcle-*-pe | powerpcle-*-cygwin*)
|
||||
tm_file=rs6000/cygwin.h
|
||||
xm_file="rs6000/xm-cygwin.h ${xm_file}"
|
||||
tmake_file=rs6000/t-winnt
|
||||
xmake_file=rs6000/x-cygwin
|
||||
# extra_objs=pe.o
|
||||
if test x$enable_threads = xyes; then
|
||||
thread_file='win32'
|
||||
fi
|
||||
exeext=.exe
|
||||
extra_headers=ppc-asm.h
|
||||
;;
|
||||
powerpcle-*-solaris2*)
|
||||
tm_file=rs6000/sol2.h
|
||||
xm_file="rs6000/xm-sysv4.h"
|
||||
@ -3171,12 +3159,7 @@ changequote([,])dnl
|
||||
else
|
||||
tmake_file=rs6000/t-newas
|
||||
fi
|
||||
if test "$gnu_ld" = yes
|
||||
then
|
||||
xmake_file=rs6000/x-aix41-gld
|
||||
else
|
||||
xmake_file=rs6000/x-aix41
|
||||
fi
|
||||
xmake_file=rs6000/x-aix41
|
||||
float_format=none
|
||||
use_collect2=yes
|
||||
;;
|
||||
@ -3184,13 +3167,8 @@ changequote(,)dnl
|
||||
rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
|
||||
changequote([,])dnl
|
||||
tm_file=rs6000/aix43.h
|
||||
if test x$host != x$target
|
||||
then
|
||||
tmake_file=rs6000/t-xaix43
|
||||
else
|
||||
tmake_file=rs6000/t-aix43
|
||||
fi
|
||||
xmake_file=rs6000/x-aix43
|
||||
tmake_file=rs6000/t-aix43
|
||||
xmake_file=rs6000/x-aix41
|
||||
float_format=none
|
||||
use_collect2=yes
|
||||
;;
|
||||
@ -3198,13 +3176,8 @@ changequote(,)dnl
|
||||
rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
|
||||
changequote([,])dnl
|
||||
tm_file=rs6000/aix43.h
|
||||
if test x$host != x$target
|
||||
then
|
||||
tmake_file=rs6000/t-xaix43
|
||||
else
|
||||
tmake_file=rs6000/t-aix43
|
||||
fi
|
||||
xmake_file=rs6000/x-aix43
|
||||
tmake_file=rs6000/t-aix43
|
||||
xmake_file=rs6000/x-aix41
|
||||
float_format=none
|
||||
use_collect2=yes
|
||||
;;
|
||||
|
Loading…
Reference in New Issue
Block a user