Compare commits

...

993 Commits

Author SHA1 Message Date
No Author
1a0bcb5a3a This commit was manufactured by cvs2svn to create tag
'egcs_1_0_2_release'.

From-SVN: r18616
1998-03-15 23:35:51 +00:00
Jeff Law
b866e182d5 Opps. FOrgot to update the date.
From-SVN: r18615
1998-03-15 16:35:51 -07:00
Jeffrey A Law
96452592af * version.c: Update for egcs-1.0.2 release.
From-SVN: r18614
1998-03-15 15:37:47 -07:00
Jeff Law
c43d777605 * egcs-1.0.2 release.
From-SVN: r18613
1998-03-15 15:34:36 -07:00
Manfred Hollstein
03ab4d306a Makefile.in (BASE_FLAGS_TO_PASS): Pass gxx_include_dir down to sub-makes.
* Makefile.in (BASE_FLAGS_TO_PASS): Pass gxx_include_dir down
        to sub-makes.

Co-Authored-By: Pieter Nagel <pnagel@epiuse.co.za>

From-SVN: r18610
1998-03-15 15:28:42 -07:00
Jeff Law
3e260314f7 mot3300.h (ASM_BYTE_OP): Don't include '\t' in the definition.
* config/m68k/mot3300.h (ASM_BYTE_OP): Don't include '\t' in the
        definition.
        (ASM_OUTPUT_ASCII): Prefix ASM_BYTE_OP by one single '\t'.

From-SVN: r18609
1998-03-15 15:25:50 -07:00
Jeffrey A Law
ecfe148ef9 * m68k.h: Fix mis-applied fix from the mainline branch.
From-SVN: r18608
1998-03-15 15:14:44 -07:00
Jeffrey A Law
75f71db751 rtlanal.c (optimize): Declare.
�
	* rtlanal.c (optimize): Declare.

From-SVN: r18484
1998-03-11 06:23:35 -07:00
Jeff Law
c182a0b19b More doc updates for 1.0.2.
From-SVN: r18445
1998-03-08 13:03:28 -07:00
Jeff Law
e4336350cd Doc changes for 1.0.2.
From-SVN: r18444
1998-03-08 12:29:58 -07:00
Jeffrey A Law
f623349c80 emit-rtl.c (gen_lowpart_common): Handle more case where converting a CONST_INT into SFmode.
* emit-rtl.c (gen_lowpart_common): Handle more case where converting
        a CONST_INT into SFmode.

From-SVN: r18442
1998-03-08 03:13:04 -07:00
Jeffrey A Law
83f3c8788c aix386ng.h (CPP_PREDEFINES): Put back -Di386.
* i386/aix386ng.h (CPP_PREDEFINES): Put back -Di386.
        * i386/freebsd-elf.h: Likewise.
        * i386/gas.h: Likewise.
        * i386/linux-aout.h: Likewise.
        * i386/linux-oldld.h: Likewise.
        * i386/linux.h: Likewise.
        * i386/osfelf.h: Likewise.
        * i386/osfrose.h: Likewise.
        * i386/sco.h: Likewise.
        * i386/sco4.h: Likewise.
        * i386/sco4dbx.h: Likewise.
        * i386/sco5.h: Likewise.
        * i386/scodbx.h: Likewise.
        * i386/sol2.h: Likewise.
        * i386/sysv3.h: Likewise.
Fix problems with imake

From-SVN: r18437
1998-03-06 17:12:07 -07:00
H.J. Lu
83ad9cfa81 stl_config.h (__STL_PTHREADS): Don't define for glibc 2 if _G_USING_THUNKS is not defined.
* stl_config.h (__STL_PTHREADS): Don't define for glibc 2 if
        _G_USING_THUNKS is not defined.

From-SVN: r18422
1998-03-05 16:09:12 -07:00
Franz Sirl
d20323edaa linux.h: don't define DEFAULT_VTABLE_THUNKS to 1 if USE_GNULIBC_1 is defined
* rs6000/linux.h: don't define DEFAULT_VTABLE_THUNKS to 1 if
        USE_GNULIBC_1 is defined
        * configure.in: add a new case powerpc-*-linux-gnulibc1 which
        includes the t-linux-gnulibc1 fragment

From-SVN: r18406
1998-03-04 14:02:15 -07:00
Jim Wilson
d2fbc2cacc decl.c (start_function): Don't call temporary_allocation for a nested function.
* decl.c (start_function): Don't call temporary_allocation for a
        nested function.

From-SVN: r18374
1998-03-02 17:55:34 -07:00
Jeffrey A Law
e8a96824e6 * version.c: Bump for 1.0.2 prerelease diffs.
From-SVN: r18369
1998-03-02 16:03:57 -07:00
Jeffrey A Law
716028ee7b * ginclude/va-ppc.h (va_arg): Fix typo in long long support.
From-SVN: r18347
1998-03-01 10:12:09 -07:00
Jason Merrill
d1f51ac44d * stl_config.h: Work around glibc pthread.h bug.
From-SVN: r18230
1998-02-25 05:18:53 -05:00
Andreas Schwab
5f8b9c80df Changes for _G_IO_IO_FILE_VERSION == 0x20001:
* libioP.h (_IO_showmanyc_t, _IO_SHOWMANYC, _IO_imbue_t,
        _IO_IMBUE): New definitions.
        (struct _IO_jump_t): Add __showmanyc and __imbue fields.
        (_IO_file_fopen): Add new fourth argument.
        * filebuf.cc (filebuf::open): Pass new fourth argument to
        _IO_file_fopen.
        * iolibio.h (_IO_freopen): Likewise.
        * streambuf.cc (streambuf::showmanyc, streambuf::imbue): New
        functions.
        * streambuf.h (_IO_wchar_t): Define to _G_wchar_t.
        (ios::fill): Remove casts.
        (struct streambuf): Add showmanyc and imbue members.
        * iostream.cc (ostream::operator<<(double n)) [__GLIBC_MINOR__ >=
        1]: Initialize new fields is_char of struct printf_info.
        (ostream::operator<<(long double n)) [__GLIBC_MINOR__ >= 1]:
        Likewise.

From-SVN: r18221
1998-02-24 13:02:06 -07:00
H.J. Lu
3ceda776d8 configure.in (topsrcdir): New.
* configure.in (topsrcdir): New.
        (CHECK_SUBDIRS, configdirs): Check ${topsrcdir}/gcc instead.
        (config-ml.in): Use ${topsrcdir}/config-ml.in.
        * tests/configure.in (topsrcdir): New.
        (CHECK): Check ${topsrcdir}/gcc instead.
        * configure.in (CHECK_SUBDIRS): Set to testsuite only if
        ${srcdir}/../gcc exists.
        (configdirs): Include testsuite only if ${srcdir}/../gcc exists.
        * tests/Makefile.in (check): Depend on $(CHECK).
        * tests/configure.in (CHECK): Set to "check-iostream
        check-stdio" if ${srcdir}/../../gcc doesn't exists.

From-SVN: r18220
1998-02-24 12:55:15 -07:00
H.J. Lu
d356de352f configure.in (topsrcdir): New.
* configure.in (topsrcdir): New.
        (configdirs): Check ${topsrcdir}/gcc instead.
        (config-ml.in): Use ${topsrcdir}/config-ml.in.
        * tests/configure.in (topsrcdir): New.
        (check): Check ${topsrcdir}/gcc instead.
        * configure.in (configdirs): Include testsuite only if
        ${srcdir}/../gcc exists.
        * tests/configure.in (check): Set to ${CHECK} if
        ${srcdir}/../../gcc doesn't exists.

From-SVN: r18219
1998-02-24 12:53:34 -07:00
Jeffrey A Law
c78880d8f4 expr.c (emit_move_insn_1): Fix minor buglet in last change caused by importint it into the release branch.
* expr.c (emit_move_insn_1): Fix minor buglet in last change
        caused by importint it into the release branch.

From-SVN: r18216
1998-02-24 01:33:46 -07:00
Jeff Law
9925224fd8 Update.
From-SVN: r18212
1998-02-23 14:59:09 -07:00
Jeff Law
57b67f059c pa.h (TEXT_SPACE_P): Remove unnecessary indirection into tree_code_type.
* pa/pa.h (TEXT_SPACE_P): Remove unnecessary indirection
        into tree_code_type.
        * vax/vms.h (SELECT_SECTION): Similarly.
Remove this change -- I was in the wrong tree (release instead of mainline).
Sigh.  Starting to burn out a little on this stuff.

From-SVN: r18194
1998-02-22 12:54:13 -07:00
Jeffrey A Law
b0acdc8d21 pa.h (TEXT_SPACE_P): Remove unnecessary indirection into tree_code_type.
* pa/pa.h (TEXT_SPACE_P): Remove unnecessary indirection
        into tree_code_type.
        * vax/vms.h (SELECT_SECTION): Similarly.

From-SVN: r18193
1998-02-22 12:49:04 -07:00
Bernd Schmidt
6afaaa9805 expr.c (emit_move_insn_1): When moving complex values in several steps...
* expr.c (emit_move_insn_1): When moving complex values in several
	steps, emit a CLOBBER to show the destination dies.

From-SVN: r18192
1998-02-22 12:44:08 -07:00
Craig Burley
ffaffba589 expr.c (ffeexpr_token_arguments_): Make sure outer exprstack isn't null.
* expr.c (ffeexpr_token_arguments_): Make sure
        outer exprstack isn't null.

From-SVN: r18191
1998-02-22 12:40:45 -07:00
Jim Wilson
de0f25ebe2 iris5.h (DWARF2_UNWIND_INFO): Define to 0.
* iris5.h (DWARF2_UNWIND_INFO): Define to 0.
        * iris5gas.h (DWARF2_UNWIND_INFO): Define to 1.

From-SVN: r18177
1998-02-22 12:04:08 -07:00
Mumit Khan
ecd14aafa3 x-cygwin32 (USE_COLLECT2): Disable collect2 for now on i386-{cygwin32,mingw32}.
* i386/x-cygwin32 (USE_COLLECT2): Disable collect2 for now on
        i386-{cygwin32,mingw32}.

From-SVN: r18166
1998-02-22 07:21:59 -07:00
H.J. Lu
0370c84e4f configure.in (alpha*-*-linux*): Treat alpha*-*-linux* as alpha*-*-linux* not alpha*-*-*.
* configure.in (alpha*-*-linux*): Treat alpha*-*-linux* as
        alpha*-*-linux* not alpha*-*-*.

From-SVN: r18165
1998-02-22 07:21:02 -07:00
Kaveh R. Ghazi
5e7174a37e collect2.c (scan_prog_file): Completely cover uses of variable `exports' with macro COLLECT_EXPORT_LIST.
* collect2.c (scan_prog_file): Completely cover uses of variable
        `exports' with macro COLLECT_EXPORT_LIST.

From-SVN: r18164
1998-02-22 07:06:35 -07:00
Jeff Law
ad3064bf4e Never should have been in the distribution.
From-SVN: r18161
1998-02-21 14:08:53 -07:00
Jason Merrill
ee19c9c019 collect2.c (main): Still handle !do_collecting for non-AIX targets.
* collect2.c (main): Still handle !do_collecting for non-AIX targets.
Bring over from mainline sources.

From-SVN: r18153
1998-02-20 13:42:37 -07:00
H.J. Lu
826603f8c0 ropeimpl.h: Check __STL_PTHREADS instead of _PTHREADS.
* ropeimpl.h: Check __STL_PTHREADS instead of _PTHREADS.
	* stl_alloc.h: Ditto.
	* stl_config.h: Ditto.
	* stl_rope.h: Ditto.
	* stl_config.h: include <_G_config.h> if __GNUG__ is defined.
	(__STL_PTHREADS): Defined if _PTHREADS is defined or
	__GLIBC__ >= 2.

Co-Authored-By: Jason Merrill <jason@yorick.cygnus.com>

From-SVN: r18137
1998-02-20 06:09:09 -05:00
Andrey Slepuhin
31eb7f8508 collect2.c (XCOFF_SCAN_LIBS): Remove.
* collect2.c (XCOFF_SCAN_LIBS): Remove.
        (export_flag): New variable.
        (export_file): #ifdef COLLECT_EXPORT_LIST.
        (import_file, exports, imports, undefined): New variables.
        (libs, cmdline_lib_dirs, libpath_lib_dirs, libpath, libexts): Same.
        (dump_list, dump_prefix_list, is_in_list): New functions.
        (write_export_file): $ifdef COLLECT_EXPORT_LIST.
        (write_import_file, resolve_lib_name): New functions.
        (use_import_list, ignore_library): Same.
        (collect_exit): maybe_unlink import_file and #ifdef.
        (handler): Same.
        (main): New variable importf, #ifdef exportf.  Move parsing of
        -shared before general argument parsing.  Resolve AIX library
        paths and import libgcc.a symbols.  Treat .so shared libraries the
        same as objects and .a libraries.  Create alias for object_lst and
        increment it instead of original pointer.  Scan AIX libraries as
        objects earlier instead of using scan_libraries.  Perform AIX
        tlink later to resolve templates instead of forking ld.
        (GCC_OK_SYMBOL): Ensure symbol not in undef section.
        (GCC_UNDEF_SYMBOL): New macro.
        (scan_prog_file): Loop for members of AIX libraries.  Handle
        export/import of ctors/dtors.
        (aix_std_libs): New variable.
        (scan_libraries, XCOFF): Delete.

Co-Authored-By: David Edelsohn <edelsohn@mhpcc.edu>

From-SVN: r18133
1998-02-19 17:37:32 -07:00
Mike Stump
1d7f28e10f Makefile.in: Use $tooldir for sys-include to match toplevel configure.
* Makefile.in: Use $tooldir for sys-include to match toplevel
        configure.

From-SVN: r18127
1998-02-19 12:14:38 -07:00
Robin Kirkham
8015016f52 m68k.h (TARGET_SWITCHES): -mcpu32 now clears MASK_68881.
d
        * m68k.h (TARGET_SWITCHES): -mcpu32 now clears MASK_68881.
        (MACHINE_STATE_m68010_up): Replaced __mc68332__ with __mcpu32__.
        * m68k/m68k-none.h(CPP_FPU_SPEC): Update relative to TARGET_SWITCHES.
        (CPP_SPEC, ASM_SPEC, CC1_SPEC): Likewise.
        (CPP_SPEC): -m68332 defines both __mc68332 and __mcpu32__.
        * m68k/t-m68kbare (MULTILIB_OPTIONS): Add mcpu32.
        (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
        (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
        mcpu32 or m5200.
        * longlong.h: Replace __mc68332__ with __mcpu32__.

From-SVN: r18111
1998-02-18 17:39:36 -07:00
Jeff Law
2db2f067d8 m68k.h (TARGET_SWITCHES): -mcpu32 now clears MASK_68881.
a
        * m68k.h (TARGET_SWITCHES): -mcpu32 now clears MASK_68881.
        (MACHINE_STATE_m68010_up): Replaced __mc68332__ with __mcpu32__.
        * m68k/m68k-none.h(CPP_FPU_SPEC): Update relative to TARGET_SWITCHES.
        (CPP_SPEC, ASM_SPEC, CC1_SPEC): Likewise.
        (CPP_SPEC): -m68332 defines both __mc68332 and __mcpu32__.
        * m68k/t-m68kbare (MULTILIB_OPTIONS): Add mcpu32.
        (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
        (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
        mcpu32 or m5200.
        * longlong.h: Replace __mc68332__ with __mcpu32__.

From-SVN: r18110
1998-02-18 17:39:34 -07:00
Jeffrey A Law
200e1cad10 emit-rtl.c (gen_lowpart_common): Suppress last change if __complex__.
* emit-rtl.c (gen_lowpart_common): Suppress last change if __complex__.
        * emit-rtl.c (hard-reg-set.h): Include.
        (get_lowpart_common): Don't make new REG for hard reg in a
        class that cannot change size.
        * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h.
        * combine.c: Revert previous patch.

Co-Authored-By: Richard Kenner <kenner@vlsi1.ultra.nyu.edu>

From-SVN: r18108
1998-02-18 17:33:40 -07:00
Jeff Law
c0bc8f6d6b Update from David.
From-SVN: r18107
1998-02-18 17:26:35 -07:00
Jeff Law
bcce5e6dd6 Doc fixes from David.
From-SVN: r18106
1998-02-18 17:17:42 -07:00
Mumit Khan
6019e1d30f Make-lang.in (f77.all.build): Add exeext.
* Make-lang.in (f77.all.build): Add exeext.
        (f77.all.cross): Likewise.
        (f77.start.encap): Likewise.

From-SVN: r18103
1998-02-18 16:53:44 -07:00
Jason Merrill
209ccdf447 oops
From-SVN: r18064
1998-02-18 05:37:32 -05:00
Jason Merrill
ed172e0f4c bastring.h: Don't #include <std/bastring.cc> yet.
* std/bastring.h: Don't #include <std/bastring.cc> yet.
	* sinst.cc: Revert.

From-SVN: r18063
1998-02-18 05:31:21 -05:00
David Edelsohn
1203e2021f * rs6000.h (MY_ISCOFF): Add numeric value of U803XTOCMAGIC.
From-SVN: r18058
1998-02-17 16:02:53 -07:00
David Edelsohn
c0723b338a * x-aix31 (INSTALL): Delete.
From-SVN: r18056
1998-02-17 15:32:19 -07:00
Richard Henderson
5d1f565be1 combine.c (simplify_rtx): Obey CLASS_CANNOT_CHANGE_SIZE when simplifying a subreg of a hard reg.
* combine.c (simplify_rtx): Obey CLASS_CANNOT_CHANGE_SIZE when
        simplifying a subreg of a hard reg.
        (expand_compound_operation): Likewise.
        (force_to_mode): Likewise.

From-SVN: r18053
1998-02-17 14:55:52 -07:00
Jeff Law
3c1fb6619f i386.c (notice_update_cc): Use reg_overlap_mentioned_p.
* i386.c (notice_update_cc): Use reg_overlap_mentioned_p.
Fix ChangeLog entry.

From-SVN: r18044
1998-02-17 14:09:21 -07:00
Andreas Schwab
f7ed698119 iostream.cc (istream::operator>>(long double&)): Scan value into separate variable, in case long double is bigger than double.
* iostream.cc (istream::operator>>(long double&))
        [!_G_HAVE_LONG_DOUBLE_IO]: Scan value into separate variable, in
        case long double is bigger than double.
        (ostream::operator<<(double)) [_G_HAVE_PRINTF_FP]: Fix order of
        initializers of struct printf_info to match declaration order,
        to work around g++ bug.
        (ostream::operator<<(long double)) [_G_HAVE_PRINTF_FP]: Likewise.
        * gen-params: Add missing quotes.  Avoid useless use of command
        substitution.

From-SVN: r18043
1998-02-17 14:07:42 -07:00
H.J. Lu
56e7c89c1a linux.mt (IO_OBJECTS): Add iogetline.o.
* config/linux.mt (IO_OBJECTS): Add iogetline.o.
        * config/linuxlibc1.mt: Ditto.
        * iogetline.c (_IO_getline_info): Renamed from _IO_getline.
        (_IO_getline): Just call _IO_getline_info.
        * isgetline.cc (istream::getline, istream::get, _sb_readline):
        Call _IO_getline_info instead of _IO_getline and get the EOF
        information.
        * sbgetline.cc (streambuf::sgetline): Ditto.
        * libioP.h (_IO_getline_info): New declaration.
        * iogetline.c (_IO_getline): Handle the case when there is no
        buffer.

From-SVN: r18041
1998-02-17 13:53:03 -07:00
H.J. Lu
52af7fac04 [multiple changes]
Sat Dec  6 14:58:17 1997  H.J. Lu  (hjl@gnu.org)
	* filebuf.cc (filebuf::open): Call _IO_file_open if
	_G_HAVE_IO_FILE_OPEN is 1.
	* libio.h (_IO_fpos64_t, _IO_off64_t): Defined if
	_G_IO_IO_FILE_VERSION == 0x20001.
	* libioP.h (_IO_file_open): New declaration.
	* libio.h (_IO_FILE, _IO_stdin_, _IO_stdout_, _IO_stderr_,
	_IO_seekoff, _IO_seekpos): Add support for libio in egcs 2.1.
	* libioP.h (_IO_seekoff_t, _IO_seekpos_t, _IO_seek_t,
	_IO_seekoff, _IO_seekpos, _IO_default_seekoff,
	_IO_default_seekpos, _IO_default_seek, _IO_file_seekoff,
	_IO_file_seek, _IO_str_seekoff, _IO_pos_BAD, _IO_pos_as_off,
	_IO_pos_0): Ditto.
	* streambuf.h (streamoff, streampos): Ditto.
Mon Nov 17 07:36:58 1997  H.J. Lu  (hjl@gnu.org)
	* gen-params (__extension__): Use only if gcc version >= 2.8.

From-SVN: r18040
1998-02-17 13:50:52 -07:00
Jeff Law
1822f8a606 Forgot to commit ChangeLog after recent checkin on the release branch...
From-SVN: r18039
1998-02-17 13:47:53 -07:00
Krister Walfridsson
d49a20c537 fileops.c: #include <unistd.h>.
* fileops.c: #include <unistd.h>.
        * ioprims.c: Likewise.
        * dbz/dbz.c (putconf): Handle systems which use "long long" as type
        for "off_t".
        * dbz/dbzmain.c (mkfiles): Likewise.

From-SVN: r18017
1998-02-15 13:10:48 -07:00
Jeff Law
1061012ce7 netbsd.h (DWARF2_UNWIND_INFO): Define as zero for now.
* arm/netbsd.h (DWARF2_UNWIND_INFO): Define as zero for now.
        * i386/netbsd.h, m68k/netbsd.h, ns32k/netbsd.h: Likewise.
        * sparc/netbsd.h, vax/netbsd.h: Likewise.

From-SVN: r18016
1998-02-15 13:06:31 -07:00
Bernd Schmidt
b33e8379a0 * i386.c (notice_update_cc): Remove bogus pentium GCC code.
From-SVN: r18015
1998-02-15 12:54:11 -07:00
H.J. Lu
cb8c34c9c4 elf.h (LIB_SPEC): New.
* config/alpha/elf.h (LIB_SPEC): New. Defined if
        USE_GNULIBC_1 is not defined.
        * config/linux.h (LIB_SPEC): Add -lc for -shared if
        USE_GNULIBC_1 is not defined.
        * config/sparc/linux.h: Ditto.
        * config/sparc/linux64.h (LIB_SPEC): Add -lc for -shared.
        * config/sparc/linux64.h (LIBGCC_SPEC): Removed.
        (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}.
        (LIB_SPEC): Updated for glibc 2.

From-SVN: r18014
1998-02-15 12:43:58 -07:00
Mumit Khan
ba3e5fab3e cygwin32.h (DWARF2_UNWIND): Exception handling doesn't work with it yet, so set it to 0.
* config/i386/cygwin32.h (DWARF2_UNWIND): Exception handling
	doesn't work with it yet, so set it to 0.
	* config/i386/x-cygwin32 (USE_COLLECT2): Delete.
	* config/i386/xm-cygwin32.h (NO_SYS_SIGLIST): Define.

From-SVN: r17971
1998-02-13 09:48:54 -05:00
Jason Merrill
c69f7bf109 typeck.c (mark_addressable): Don't assume a FUNCTION_DECL has DECL_LANG_SPECIFIC.
* typeck.c (mark_addressable): Don't assume a FUNCTION_DECL
	has DECL_LANG_SPECIFIC.

From-SVN: r17896
1998-02-12 19:40:04 -05:00
Franz Sirl
9ae71a7b1f sysv4.h (ENDFILE_SPEC): add missing %(endfile_linux) for -mcall-linux
* rs6000/sysv4.h (ENDFILE_SPEC): add missing %(endfile_linux)
        for -mcall-linux

From-SVN: r17893
1998-02-12 17:30:31 -07:00
Jeffrey A Law
800eb7024c * cccp.c (new_include_prefix): Correctly handle -I./.
From-SVN: r17887
1998-02-12 16:48:20 -07:00
Jason Merrill
53be309931 decl2.c (comdat_linkage): Also set DECL_COMDAT.
* decl2.c (comdat_linkage): Also set DECL_COMDAT.
	(finish_file): Check DECL_COMDAT instead of weak|one_only.
	(import_export_vtable): Use make_decl_one_only instead of
 	comdat_linkage for win32 tweak.
	(import_export_decl): Likewise.
	* pt.c (mark_decl_instantiated): Likewise.
	* decl2.c (import_export_vtable): If we support one_only but not
	weak symbols, mark instantiated template vtables one_only.
	(import_export_decl): Likewise for tinfo functions.
	(finish_vtable_vardecl): Also write out vtables from explicitly
	instantiated template classes.
	* pt.c (mark_class_instantiated): Revert last change.

From-SVN: r17883
1998-02-12 14:57:24 -05:00
Jason Merrill
ccf0a65fd6 Some patches for 1.0.2:
* decl.c (grokdeclarator): Use DECL_USE_TEMPLATE instead
	when deciding to override DECL_ASSEMBLER_NAME.
	* pt.c (instantiate_decl): Call cp_finish_decl for vars even if we
	don't define them yet.
	* parse.y (nomods_initdcl0): Add constructor_declarator case.
	* tinfo2.cc: Add tinfo for signed char.
	* search.c (compute_access): Handle protected constructors in derived
	classes as accessible.
	* lex.c (file_name_nondirectory): Also check for '/'.
	* pt.c (type_unification_real): Just accept function parms that
	don't use any template parms.
	* parse.y (typename_sub*): Fix std::.
	* lex.c (DIR_SEPARATOR): Define to be '/' if not already defined.
	(file_name_nondirectory): Use.
	* call.c (build_user_type_conversion_1): Handle user-defined
	template conversion operators correctly.
	* cvt.c (build_up_reference): A TARGET_EXPR has side effects.
	* pt.c (instantiate_class_template): Don't do injection when
 	processing_template_decl is true, as pollutes current_binding_level
        for base classes.
	* typeck.c (build_const_cast): Handle references here instead of
	handing off to convert_to_reference.

From-SVN: r17861
1998-02-11 14:06:52 -05:00
Jason Merrill
ddb0137cdc flow.c (find_basic_blocks): Don't create a new basic block for calls in a LIBCALL block.
* flow.c (find_basic_blocks): Don't create a new basic block
	for calls in a LIBCALL block.
	* flow.c (flow_analysis): Be consistent with find_basic_blocks in
	determining when a new basic block starts.
	* flow.c (find_basic_blocks): A CALL_INSN that can throw starts
	a new basic block.
	(find_basic_blocks_1): Likewise.
	* except.c (get_dynamic_handler_chain): Only make the call once per
 	function.
	* except.c (expand_fixup_region_end): New fn.
	(expand_fixup_region_start): Likewise.
	(expand_eh_region_start_tree): Store cleanup into finalization here.
	* stmt.c (expand_cleanups): Use them to protect fixups.
	* except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL.
	* optabs.c (init_optabs): Lose get_dynamic_handler_chain_libfunc.
	* expr.h: Likewise.
cp/:
	* decl.c (copy_args_p): Handle copy elision for types with virtual
 	bases.
  	* call.c (build_over_call): Likewise.
	* exception.cc (__cp_pop_exception): Lose handler arg.
	* except.c (do_pop_exception): Likewise.
	(push_eh_cleanup): Let the cleanup mechanism supply the handler.
	(expand_end_catch_block): Likewise.

From-SVN: r17856
1998-02-11 05:21:23 -05:00
Richard Henderson
4ceeccef8a Comment the subtraction change.
From-SVN: r17851
1998-02-10 17:01:58 -08:00
Richard Henderson
d4f37c4108 com.c (ffecom_ptr_to_expr): Do upper - lower in the native type, so as to properly handle negative indices.
* com.c (ffecom_ptr_to_expr) [FFEBLD_opARRAYREF]: Do upper - lower
        in the native type, so as to properly handle negative indices.

From-SVN: r17845
1998-02-10 17:41:14 -07:00
Richard Henderson
2a744ad845 stor-layout.c (layout_type): Do upper - lower in the native type, so as to properly handle negative indices.
* stor-layout.c (layout_type): Do upper - lower in the native type,
        so as to properly handle negative indices.

From-SVN: r17844
1998-02-10 17:38:24 -07:00
Jeff Law
d4bc4ea11e bastring.h (unique): We only need length bytes.
* std/bastring.h (unique): We only need length bytes.
        (c_str): Avoid writing over random memory.
        #include <std/bastring.cc>.
        Lose _G_ALLOC_CONTROL.
        * std/bastring.cc: Likewise.
        (nilRep): Add initializer for selfish.
        * sinst.cc: Just #include <string>.

From-SVN: r17821
1998-02-09 17:01:58 -07:00
Richard Kenner
1d28117548 * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p.
From-SVN: r17819
1998-02-09 16:24:35 -07:00
Franz Sirl
57f38a83c3 * rs6000/linux.h (CPP_PREDEFINES): Add -D__ELF__.
From-SVN: r17817
1998-02-09 15:13:19 -07:00
Jeff Law
62e2f2bb24 i386.md (push): Prohibit symbolic constants if flag_pic.
* i386.md (push): Prohibit symbolic constants if flag_pic.
        (movsi+1): Likewise for move to non-register.
GOT fix.
Mon Feb  9 23:07:04 1998  John Wehle  (john@feith.com)
        * i386.md: Remove redundant integer push patterns.
        Don't bother checking for TARGET_PUSH_MEMORY when
        pushing constants or registers.
To avoid having to untangle the got changes....

From-SVN: r17816
1998-02-09 15:08:43 -07:00
Toon Moene
490998071c backspace.c: (f_back): Use type `uiolen' to determine size of record length specifier.
* libI77/backspace.c: (f_back): Use type `uiolen' to determine size
        of record length specifier.

From-SVN: r17815
1998-02-09 14:32:13 -07:00
Jeff Law
d75ea2235a Updates from Craig.
From-SVN: r17814
1998-02-09 14:27:48 -07:00
H.J. Lu
1da898c9aa linux.mt: Don't define _PTHREADS, but define _IO_MTSAFE_IO.
* config/linux.mt: Don't define _PTHREADS, but define
        _IO_MTSAFE_IO.

From-SVN: r17813
1998-02-09 14:23:18 -07:00
Mike Stump
ff42f49576 rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after reload completes.
* rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after
        reload completes.
        * genattrtab.c (reload_completed, optimize): Define.

From-SVN: r17812
1998-02-09 14:20:52 -07:00
J"orn Rennecke
c5c62c710e c-decl.c (grokdeclarator): Get parameter tags from last_function_parm_tags.
* c-decl.c (grokdeclarator): Get parameter tags from
        last_function_parm_tags.
        * dwarfout.c (output_formal_types): Set TREE_ASM_WRITTEN before
        traversing the parameter types.
        (output_type): No early exit for FUNCTION_TYPE / METHOD_TYPE context.

From-SVN: r17811
1998-02-09 14:15:14 -07:00
Todd Vierling
35de800fd4 * fixincludes: Tweak fix for struct exception in math.h
From-SVN: r17810
1998-02-09 14:09:45 -07:00
Jeff Law
49d1a05bc7 Fix minor nit from being a mainline patch into the release branch.
From-SVN: r17797
1998-02-08 17:56:08 -07:00
Jeff Law
bdefce42b2 Tweak so folks don't confuse this stuff with the egcs-1.0.1 release.
From-SVN: r17796
1998-02-08 17:34:20 -07:00
Mark Mitchell
5d9d4b78d5 integrate.c (get_label_from_map): New function.
* integrate.c (get_label_from_map): New function.
        (expand_inline_function): Use it.  Initialize the label_map to
        NULL_RTX instead of gen_label_rtx.
        (copy_rtx_and_substitute): Use get_label_from_map.
        * integrate.h (get_label_from_map): New function.
        (set_label_from_map): New macro.
        * unroll.c (unroll_loop): Use them.
        (copy_loop_body): Ditto.
        * toplev.c (rest_of_compilation): Don't call save_for_inline_copy
        if all we're doing is dealing with -Wreturn-type.

From-SVN: r17795
1998-02-08 17:30:57 -07:00
Jeff Law
1ef1fc006f x-sco5 (CC): Remove trailing whitespace.
* i386/x-sco5 (CC): Remove trailing whitespace.
        * i386/sco5.h (STARTFILE_SPEC, ENDFILE_SPEC): Correctly handle
        "-static".

From-SVN: r17794
1998-02-08 17:05:49 -07:00
Craig Burley
db1e9ec96f Fix -fpedantic combined with `F()' invocation,
also -fugly-comma combined with `IARGC()' invocation:
        * bad.def (FFEBAD_NULL_ARGUMENT_W): New diagnostic.
        * expr.c (ffeexpr_finished_): Don't reject null expressions
        in the argument-expression context -- let outer context
        handle that.
        (ffeexpr_token_arguments_): Warn about null expressions
        here if -fpedantic (as appropriate).
        Obey -fugly-comma for only external-procedure invocations.

From-SVN: r17792
1998-02-08 16:50:28 -07:00
Craig Burley
09f009c66f lang-options.h: Add -fgnu-intrinsics-* and -fbadu77-intrinsics-* options.
* lang-options.h: Add -fgnu-intrinsics-* and
        -fbadu77-intrinsics-* options.

From-SVN: r17791
1998-02-08 16:48:09 -07:00
Richard Kenner
9e6ff9720c * stmt.c (pushcase_range): Clean up handling of "infinite" values.
From-SVN: r17790
1998-02-08 16:42:01 -07:00
Jeff Law
1cf6e81ebd Bring egcs-1.0.2's libstdc++ up to libstdc++ 2.8.0.
From-SVN: r17789
1998-02-08 16:13:33 -07:00
Jason Merrill
22be406441 Makefile.in (install): Remove the shared library symlink even if we aren't installing it.
* Makefile.in (install): Remove the shared library symlink even if
        we aren't installing it.

From-SVN: r17788
1998-02-08 16:07:50 -07:00
Jim Wilson
a571a47df6 function.c (assign_parms): New variable named_arg, with value depending on STRICT_ARGUMENT_NAMING.
* function.c (assign_parms): New variable named_arg, with value
        depending on STRICT_ARGUMENT_NAMING.  Use instead of ! last_named.

From-SVN: r17787
1998-02-08 16:01:35 -07:00
Richard Kenner
d785152f1e loop.c (strength_reduce): When placing increment for auto-inc case, do comparison in loop order.
* loop.c (strength_reduce): When placing increment for auto-inc
        case, do comparison in loop order.

From-SVN: r17786
1998-02-08 15:59:47 -07:00
Scott Snyder
99d73a5bdb * method.c (make_thunk): Avoid name buffer overflow.
From-SVN: r17785
1998-02-08 15:57:54 -07:00
Jason Merrill
03dd49a5ae decl.c (cp_finish_decl): When bailing on a comdat variable, also unset DECL_NOT_REALLY_EXTERN.
* decl.c (cp_finish_decl): When bailing on a comdat variable, also
        unset DECL_NOT_REALLY_EXTERN.

From-SVN: r17480
1998-01-25 10:14:55 -07:00
Jeff Law
e9605a1375 Various egcs-1.0.1 related changes.
From-SVN: r17282
1998-01-02 16:38:15 -07:00
Jeff Law
cc7147b09a Fix typo.
From-SVN: r17243
1997-12-26 14:38:32 -07:00
Jim Wilson
8e93a9b021 mips.c (mips_expand_epilogue): Emit blockage insn before call to save_restore_insns if...
* mips.c (mips_expand_epilogue): Emit blockage insn before call to
	save_restore_insns if no FP and GP will be restored.
	* abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT,
	and define __LONG_MAX__ appropriately.  Add support for -mabi=X,
	-mlong64, and -mgp{32,64} options.
	* mips.c (mips_abi): Change type to int.
	* mips.h (enum mips_abi_type): Delete.
	(ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants.
	(mips_abi): Change type to int.

From-SVN: r17228
1997-12-24 15:06:54 -07:00
Jeffrey A Law
70b6178184 * verison.c: Bump for beta release of egcs-1.0.1.
From-SVN: r17184
1997-12-22 01:59:18 -07:00
Jeff Law
8cf3875bbc haifa-sched.c (create_reg_dead_note): Detect and handle another case where we kill more regs after sched than were...
* haifa-sched.c (create_reg_dead_note): Detect and handle another
        case where we kill more regs after sched than were killed before
        sched.
        * sched.c (create_reg_dead_note): Similarly.

[[Split portion of a mixed commit.]]

From-SVN: r17182.1
1997-12-22 01:55:43 -07:00
Jeff Law
f91abed3f9 Rebuilt.
From-SVN: r17181
1997-12-22 01:47:01 -07:00
Jeff Law
4bef1d02be Clarify a comment.
From-SVN: r17175
1997-12-21 13:54:36 -07:00
Jeffrey A Law
665888b2b6 pa.c (emit_move_sequence): Handle a function label source operand.
* pa.c (emit_move_sequence): Handle a function label source
        operand.

From-SVN: r17173
1997-12-21 13:44:33 -07:00
David Edelsohn
0ecab26a23 rs6000.h (FUNCTION_ARG_PADDING): Define.
* rs6000.h (FUNCTION_ARG_PADDING): Define.
        * rs6000.c (function_arg_padding): New function.

From-SVN: r17162
1997-12-20 08:11:26 -07:00
Jeff Law
46dc31e022 Move <stddef.h> include before "frame.h"
From-SVN: r17161
1997-12-20 06:21:03 -07:00
Paul Eggert
2cf2492a13 frame.h (__register_frame, [...]): New.
* frame.h (__register_frame, __register_frame_table,
        __deregister_frame): New.
        * frame.c (__register_frame, __register_frame_table,
        __deregister_frame): New.
        * frame.c (__deregister_frame_info): Return void *.
        * frame.h (__deregister_frame_info): Ditto.
        * collect2.c (__deregister_frame_info): Ditto.
        * frame.h (__register_frame_info_table): Fix typo in declaration.
        * frame.c (__register_frame_info): Renamed from __register_frame.
        (__register_frame_info_table, __deregister_frame_info): Similarly.
        * frame.h (__{,de}register_frame_info): Likewise.
        (__register_frame_info_table): New declaration.
        * crtstuff.c (__do_global_dtors{,_aux}): Rename __deregister_frame.
        (frame_dummy, __do_global_ctors): Likewise for __register_frame.
        * collect2.c (write_c_file_{stat,glob}): Rename __register_frame
        to __register_frame_info and similarly for __deregister_frame and
        __register_frame_table.
        * collect2.c (write_c_file_glob):
        Allocate initial frame object in static storage and pass its address.
        * crtstuff.c (__do_global_ctors): Fix typo in last change.
        * crtstuff.c (__do_global_ctors): Add missing arg to __register_frame.
        * collect2.c (write_c_file_stat): Fix error in last change;
        use __SIZE_TYPE__, not size_t.
        Alter C startup code so that it doesn't invoke malloc on Solaris.
        * frame.h (struct object): Decl moved here from frame.c.
        * frame.c (struct object): Move decl to frame.h.
        ("frame.h"): Include after <stddef.h>, so that size_t is defined.
        (__register_frame, __register_frame_table, __deregister_frame):
        It's now the caller's responsibility to allocate storage for object.
        * crtstuff.c (frame_dummy), collect2.c (write_c_file_stat):
        Allocate initial frame object in static storage and pass its address.
        * crtstuff.c (<stddef.h>, "frame.h"): Include.
        * Makefile.in ($(T)crtbegin.o, $(T)crtend.o, stamp-crtS):
        Depend on defaults.h and frame.h.
The oh so fun changes in __register_frame* interface stuff.

Co-Authored-By: H.J. Lu <hjl@gnu.org>
Co-Authored-By: Richard Kenner <kenner@vlsi1.ultra.nyu.edu>

From-SVN: r17160
1997-12-20 05:37:59 -07:00
Jason Merrill
d77f84b246 * pt.c (instantiate_decl): Defer all templates but inline functions.
From-SVN: r17159
1997-12-20 04:58:49 -07:00
Richard Kenner
7a0a316ee0 i386.h (INITIAL_ELIMINATION_OFFSET): Correctly test for PIC register used.
* i386.h (INITIAL_ELIMINATION_OFFSET): Correctly test for PIC
        register used.

From-SVN: r17153
1997-12-19 01:59:33 -07:00
Bernd Schmidt
41557c9e76 combine.c (simplify_rtx, case ABS): Don't get confused by a VOIDmode operand.
* combine.c (simplify_rtx, case ABS): Don't get confused by a
        VOIDmode operand.
Another x86 codegen bug exposed by latest glibc.

From-SVN: r17152
1997-12-19 01:53:18 -07:00
Jeffrey A Law
20023daf91 t-sol2 (CRTSTUFF_T_CFLAGS): Turn on the optimizer.
* i386/t-sol2 (CRTSTUFF_T_CFLAGS): Turn on the optimizer.
So egcs-1.0.1 will build/run out of the box on x86-solaris.

From-SVN: r17151
1997-12-19 01:48:57 -07:00
Bernd Schmidt
5e37f712a8 i386.c (notice_update_cc): Remove bogus pentium GCC code.
* i386.c (notice_update_cc): Remove bogus pentium GCC code.
Fix x86 codegen bug exposed by latest glibc.

From-SVN: r17150
1997-12-19 01:47:13 -07:00
Jason Merrill
fb7f625d37 cp-tree.h (struct lang_decl_flags): Add comdat.
* cp-tree.h (struct lang_decl_flags): Add comdat.
	(DECL_COMDAT): New macro.
	* decl.c (duplicate_decls): Propagate it.
	(cp_finish_decl): Handle it.
	* decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs.

From-SVN: r17149
1997-12-19 01:38:33 -07:00
Jeffrey A Law
ef9fdf4063 * stmt.c (warn_if_unused_value): Don't warn for TRY_CATCH_EXPR.
From-SVN: r17148
1997-12-19 01:36:07 -07:00
Jason Merrill
c768367f97 except.c (expand_start_catch_block): suspend_momentary for the terminate handler.
* except.c (expand_start_catch_block): suspend_momentary for the
        terminate handler.
Critical EH bugfix for egcs-1.0.1.

From-SVN: r17147
1997-12-19 01:34:04 -07:00
H.J. Lu
ba74fdcabf configure.in (target frags): Add *-linux-gnu.
* configure.in (target frags): Add *-linux-gnu.
        * streambuf.cc (streambuf::~streambuf): Don't delete _lock
        for _IO_stdin/_IO_stdout/_IO_stderr.
RH5.0 support for egcs-1.0.1.

From-SVN: r17146
1997-12-19 01:32:04 -07:00
Jeffrey A Law
9ced742dd7 stmt.c (expand_asm_operands): If an ASM has no outputs, then treat it as volatile.
* stmt.c (expand_asm_operands): If an ASM has no outputs, then treat
	it as volatile.
Don't miscompile Linux kernels for egcs-1.0.1.

From-SVN: r17145
1997-12-19 01:29:39 -07:00
Richard Henderson
a803aef793 * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'.
From-SVN: r17101
1997-12-15 08:38:18 -08:00
No Author
f752601513 This commit was manufactured by cvs2svn to create branch
'egcs_1_00_branch'.

From-SVN: r16992
1997-12-07 10:33:36 +00:00
Jeffrey A Law
be199bba25 * egcs-1.0 release.
* configure (gxx_include_dir): Fix thinko.

From-SVN: r16925
1997-12-03 08:54:34 -07:00
Jeffrey A Law
2b608dc1a6 * version.c: Update for egcs-1.0 release.
From-SVN: r16905
1997-12-03 01:12:11 -07:00
Jeff Law
a9acaaf952 More doc stuff for egcs-1.0 release.
From-SVN: r16904
1997-12-03 01:08:39 -07:00
Jeff Law
8267f8537f Various doc fixes for egcs-1.0 release.
From-SVN: r16903
1997-12-03 01:07:58 -07:00
Jeff Law
495e08fe92 Tweak for egcs.
From-SVN: r16902
1997-12-03 00:28:06 -07:00
Jeff Law
d3dafdc105 Patch from jason.
From-SVN: r16901
1997-12-02 23:02:05 -07:00
Jeff Law
9f76b2e45a Update from Jason.
From-SVN: r16900
1997-12-02 22:39:11 -07:00
Jeff Law
5091895c33 Remove last delta.
From-SVN: r16899
1997-12-02 22:26:30 -07:00
Jeff Law
14fedef297 Minor addition to template stuff that isn't supported.
From-SVN: r16898
1997-12-02 21:30:44 -07:00
Jeff Law
76137ec33f More tweakage
From-SVN: r16897
1997-12-02 21:23:53 -07:00
Bruno Haible
ede0267db0 makeinfo.c (find_and_load, [...]): Zero-terminate the file contents.
* makeinfo/makeinfo.c (find_and_load, convert_from_stream):
        Zero-terminate the file contents.

From-SVN: r16892
1997-12-02 13:18:39 -07:00
Jeff Law
26454846e3 More doc stuff.
From-SVN: r16890
1997-12-02 13:15:31 -07:00
Jeff Law
12e4154db5 Another tweak.
From-SVN: r16889
1997-12-02 10:55:40 -07:00
Jeff Law
af7b14d22c More tweaks.
From-SVN: r16887
1997-12-02 10:50:50 -07:00
Jeff Law
3a734db370 Tweaks.
From-SVN: r16886
1997-12-02 10:29:17 -07:00
Jeff Law
6d6072abdb C9X draft.
From-SVN: r16884
1997-12-02 10:01:01 -07:00
Jeff Law
19360d7ec3 Tweak fror egcs release.
From-SVN: r16882
1997-12-02 09:48:04 -07:00
Jeffrey A Law
ec7d9d8374 * version.c: Bump for snapshot.
From-SVN: r16876
1997-12-01 15:33:46 -07:00
Jim Wilson
86d7f04809 mips.md (fix_truncdfsi2, [...]): Change *.
* mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2,
        fix_truncsfdi2): Change *.

From-SVN: r16875
1997-12-01 15:24:11 -07:00
Jeff Law
43a5d5f69f Various doc updates.
From-SVN: r16874
1997-12-01 15:21:13 -07:00
Jeff Law
70348dbe8c Installation stuff.
From-SVN: r16870
1997-12-01 14:46:33 -07:00
Jeff Law
5a329fbdc1 egcs is not something you can order from the FSF.
From-SVN: r16868
1997-12-01 12:46:27 -07:00
Jason Merrill
a0c183e435 * stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start.
From-SVN: r16863
1997-11-30 19:56:55 -07:00
David Edelsohn
8663984845 * rs6000.c (function_arg_partial_nregs): Undo Nov. 26 patch.
From-SVN: r16855
1997-11-29 14:37:41 -07:00
David Edelsohn
6a0ef5713d * rs6000/aix41.h (ASM_CPU_SPEC): Define.
From-SVN: r16854
1997-11-29 12:42:27 -07:00
Jeffrey A Law
06651d44fa * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Prefer stabs again.
From-SVN: r16832
1997-11-28 12:31:06 -07:00
Jeffrey A Law
b93e562d78 * arm.md (movsfcc, movdfcc): Fix "patch" lossage.
From-SVN: r16822
1997-11-28 10:11:43 -07:00
Jeffrey A Law
75035e2703 * configure.in: Fix NCR entries.
From-SVN: r16820
1997-11-28 10:02:46 -07:00
Jeffrey A Law
14c29c4a27 * version.c: Bump for snapshot.
From-SVN: r16814
1997-11-27 20:24:45 -07:00
Jason Merrill
60ac04b1bb * except.c: Call terminate without caching so many bits.
From-SVN: r16813
1997-11-27 20:23:04 -07:00
Jeffrey A Law
012f028aa5 flow.c (find_basic_blocks): Handle cfg issues for rethrows and nested exceptions correctly.
* flow.c (find_basic_blocks): Handle cfg issues for rethrows and
        nested exceptions correctly.

From-SVN: r16811
1997-11-27 20:05:02 -07:00
Jeffrey A Law
8ea8344137 unroll.c (find_splittable_givs): Don't split givs with a dest_reg that was created by loop.
* unroll.c (find_splittable_givs): Don't split givs with a dest_reg
        that was created by loop.
Fixes bzip2 bug.

From-SVN: r16802
1997-11-27 12:23:00 -07:00
Jeff Law
93cea42399 Fix typo.
From-SVN: r16801
1997-11-27 10:29:25 -07:00
Jason Merrill
3819b88a28 class.c: Remove static pending_hard_virtuals.
* class.c: Remove static pending_hard_virtuals.
        (add_virtual_function): Take pointers to pending_virtuals
        and pending_hard_virtuals.
        (finish_struct_1): Pass them.  Declare pending_hard_virtuals.

From-SVN: r16800
1997-11-27 09:41:52 -07:00
Jason Merrill
02790d8320 * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR.
From-SVN: r16799
1997-11-27 09:39:37 -07:00
Jason Merrill
7286055c93 * except.c (expand_start_all_catch): One more do_pending_stack_adjust.
From-SVN: r16798
1997-11-27 09:36:58 -07:00
Richard Earnshaw
15994d38d5 arm.md (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3] valid.
* arm.md (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3]
        valid.

From-SVN: r16797
1997-11-27 09:35:21 -07:00
Jeffrey A Law
723ee92c8b Makefile.in (INSTALL_TARGET): Do install-gcc first.
* Makefile.in (INSTALL_TARGET): Do install-gcc first.
        * configure (gxx_include_dir): Provide a definition for subdirs
        which do not use autoconf.

From-SVN: r16783
1997-11-27 01:35:31 -07:00
Jeffrey A Law
06a9dfe96b Makefile.in (insatll): Change gxx_includedir to gcc_include_dir.
* Makefile.in (insatll): Change gxx_includedir to gcc_include_dir.
        * config.shared (gxx_includedir): Remove default definition.
        * config/linux.mt: Change gxx_includedir to gxx_include_dir.
        * config/linuxaxp1.mt: Likewise.

From-SVN: r16782
1997-11-27 01:34:24 -07:00
Jeffrey A Law
286a0ba36f * Makefile.in (install): Change gxx_includedir to gxx_include_dir.
From-SVN: r16781
1997-11-27 01:33:13 -07:00
Jeff Law
4d171019b8 New entry.
From-SVN: r16778
1997-11-27 00:30:53 -07:00
Jason Merrill
646a55305d rtti.c (build_dynamic_cast): Handle template case here.
* rtti.c (build_dynamic_cast): Handle template case here.
        (build_dynamic_cast_1): Not here.

        * typeck2.c (digest_init): Make copies where appropriate.

        * decl2.c (delete_sanity): resolve_offset_ref.

        * except.c (expand_throw): Call mark_used on the destructor.

From-SVN: r16777
1997-11-26 23:47:05 -07:00
Jeff Law
727245674f New test.
From-SVN: r16776
1997-11-26 23:40:05 -07:00
Mark Mitchell
8f9f8b0aa5 pt.c (unify): Handle `void' template parameters in specializations.
* pt.c (unify): Handle `void' template parameters in
        specializations.

From-SVN: r16775
1997-11-26 23:39:10 -07:00
Jason Merrill
0981c341b5 * except.c (expand_throw): Call mark_used on the destructor.
From-SVN: r16774
1997-11-26 23:36:32 -07:00
Michael Meissner
cfc51775f3 rs6000.c (SMALL_DATA_REG): Register to use for small data relocs.
* rs6000.c (SMALL_DATA_REG): Register to use for small data relocs.
        (print_operand): Use SMALL_DATA_REG for the register involved in
        small data relocations.
        (print_operand_address): Ditto.

        * rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if
        -dynamic linker is not used.

        * rs6000.md (call insns): For local calls, use @local suffix under
        System V.  Don't use @plt under Solaris.

From-SVN: r16771
1997-11-26 17:06:53 -07:00
Richard Henderson
563e36c075 configure.in (target frags): Add powerpc*-linux-gnulibc1.
* configure.in (target frags): Add powerpc*-linux-gnulibc1.
        (stdio-lock): Similarly.

        * configure.in (target frags): Add alpha*-linux-gnulibc1.
        (pic frags): Its alpha*- not alpha-.
        (stdio-lock): Kill everything.  Add alpha*-linux-gnulibc1.
        * libio.h: Check __GLIBC_MINOR__ to find stdio-lock.h.  If not
        _IO_MTSAFE_IO & GLIBC, make sure the lock pointer is still there.
        * libioP.h: Check __GLIBC_MINOR__ to find libc-lock.h.

        * config/linuxaxp1-libc-lock.h: New file.
        * config/linuxaxp1-stdio-lock.h: New file.
        * config/linuxaxp1.mt: New file.

        * gen-params (va_list): Check for and use __gnuc_va_list.
        (NULL): Work around some linux kernel headers and redefine NULL.
Cater to RH powerpc & alpha Linux systems with pre-release versions
of glibc2.

From-SVN: r16767
1997-11-26 16:14:44 -07:00
Jeffrey A Law
9a8c1559d1 * From Franz Sirl.
* config.guess (powerpc*-*-linux): Handle glibc2 beta release
        found on RedHat Linux systems.

From-SVN: r16766
1997-11-26 16:07:52 -07:00
Michael Meissner
8ef1b93db4 rs6000.c (output_function_profiler): Put label address in r0, and store LR in 4(sp) for System V/eabi.
* rs6000.c (output_function_profiler): Put label address in r0, and
        store LR in 4(sp) for System V/eabi.

        * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16
        byte boundary, and maintain stack backchain.

From-SVN: r16759
1997-11-26 14:29:00 -07:00
Michael Meissner
ef32ca543b (patches originally from Geoffrey Keating)
(patches originally from Geoffrey Keating)
        * rs6000.c (function_arg): Excess floating point arguments don't
        go into GPR registers after exhausting FP registers under the
        System V.4 ABI.
        (function_arg_partial_nregs): Ditto.

        * rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt
        suffix to calls.

From-SVN: r16758
1997-11-26 14:26:23 -07:00
Jeff Law
a7ec16dd3d Forgot to commit last night.
From-SVN: r16757
1997-11-26 14:22:08 -07:00
Jason Merrill
03fbbb5896 * toplev.c (main): Complain about -gdwarfn.
From-SVN: r16750
1997-11-26 13:02:50 -07:00
Jason Merrill
6ba67f47c6 dwarf2out.c (outout_call_frame_info): Ensure that the info has proper alignment.
* dwarf2out.c (outout_call_frame_info): Ensure that the info has
        proper alignment.

        * libgcc2.c (__throw): Initialize HANDLER.

From-SVN: r16725
1997-11-26 00:40:30 -07:00
Jason Merrill
81d76e3821 dwarfout.c (output_type): If finalizing, write out nested types of types we've already written.
* dwarfout.c (output_type): If finalizing, write out nested types
        of types we've already written.

From-SVN: r16723
1997-11-26 00:32:52 -07:00
Jason Merrill
d5f93fcf83 * init.c (build_new): Copy size to the saveable obstack.
From-SVN: r16721
1997-11-25 23:20:36 -07:00
Jeff Law
cb304028e6 Fix typo.
From-SVN: r16719
1997-11-25 22:13:15 -07:00
J"orn Rennecke
51612eb96d elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including svr4.h.
* sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including
        svr4.h.

        * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine.

        * sh/elf.h (HANDLE_SYSV_PRAGMA): Undefine.

        * sh/elf.h: (LINK_SPEC): Use shlelf.
        (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX, ASM_FILE_START): Redefine.

        * sh.h: dwarf patches from Fred Fish.

From-SVN: r16717
1997-11-25 16:53:32 -07:00
Jeff Law
ed056cffc8 Fix from HJ.
From-SVN: r16715
1997-11-25 16:34:01 -07:00
Jeff Law
00ec9a5eca New entry.
From-SVN: r16713
1997-11-25 16:29:29 -07:00
Kate Hedstrom
b8e6c0dccd * lib/f-torture.exp: Improve error and loop detection.
From-SVN: r16710
1997-11-25 16:17:15 -07:00
Jeff Law
73c31ac78f xfail a couple tests for the release.
[[Split portion of a mixed commit.]]

From-SVN: r16709.1
1997-11-25 15:31:27 -07:00
Jason Merrill
3a2922ddc9 init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the TRY_CATCH_EXPR for now.
* init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the
        TRY_CATCH_EXPR for now.

From-SVN: r16708
1997-11-25 14:27:19 -07:00
Jeff Law
1ac9d634cb conversion.c (test_float_to_integer): Make double precision tests dependent on sizeof (double).
* conversion.c (test_float_to_integer): Make double precision tests
	dependent on sizeof (double).

From-SVN: r16707
1997-11-25 14:10:57 -07:00
J"orn Rennecke
942f225e5e va-sh.h (__va_arg_sh1): Define.
* va-sh.h (__va_arg_sh1): Define.
        (va_arg): Use it.
        SH3E doesn't use any integer registers for subsequent arguments
        once a non-float value was passed in the stack.
        * sh.h (PASS_IN_REG_P): Fix SH3E case.

From-SVN: r16706
1997-11-25 14:09:44 -07:00
H.J. Lu
c796a36caa Makefile.in (stmp-complex, [...]): Changed to xxxx-complx.
* Makefile.in (stmp-complex, bigstmp-complex): Changed to
        xxxx-complx.

From-SVN: r16704
1997-11-25 14:01:31 -07:00
Richard Henderson
bf42905928 * alpha.h (CONST_OK_FOR_LETTER): Fix 'L' handling.
From-SVN: r16702
1997-11-25 13:53:07 -07:00
Jeffrey A Law
a76f89932c configure.in (alphaev56*-*-*): Disable MASK_BYTE_OPS until ev56 support works correctly.
* configure.in (alphaev56*-*-*): Disable MASK_BYTE_OPS until
        ev56 support works correctly.

From-SVN: r16700
1997-11-25 13:06:58 -07:00
Jason Merrill
b55e00bd69 exception.cc (struct cp_eh_info): Add handlers field.
* exception.cc (struct cp_eh_info): Add handlers field.
        (__cp_push_exception): Initialize it.
        (__cp_pop_exception): Decrement it.  Don't pop unless it's 0.
        (__throw_bad_exception): Remove.
        * except.c (call_eh_info): Add handlers field.
        (get_eh_handlers): New fn.
        (push_eh_cleanup): Increment handlers.

From-SVN: r16699
1997-11-25 12:34:14 -07:00
Jeffrey A Law
52907c9897 * crtstuff.c (do_global_dtors_aux): Handle multiple calls better.
From-SVN: r16697
1997-11-25 09:58:18 -07:00
Jeffrey A Law
bfba1e3d3b Makefile.in: Use ln -f -s, not ln -s -f.
* Makefile.in: Use ln -f -s, not ln -s -f.
x86-solaris2.5 doesn't like -s -f ordering.

From-SVN: r16692
1997-11-24 14:40:27 -07:00
Jeff Law
0a0f3e7885 Doc fixes from Stan.
From-SVN: r16690
1997-11-24 13:52:10 -07:00
Jeffrey A Law
823634555a * version.c: Bump for snapshot.
From-SVN: r16688
1997-11-23 12:59:21 -07:00
Jeffrey A Law
67af3bf1e1 pa-hpux10.h (NEW_HP_ASSEMBLER): Define.
* pa-hpux10.h (NEW_HP_ASSEMBLER): Define.
        * pa.h (LEGITIMATE_CONSTANT_P): Reject LABEL_REFs if not using
        gas and not using the new HP assembler.


Also remove unwanted pa.md change accidentally committed.

From-SVN: r16684
1997-11-22 18:57:15 -07:00
Jeffrey A Law
e4bd01fc09 Makefile.in (program_transform_cross_name): Clean up "-e" confusion.
* Makefile.in (program_transform_cross_name): Clean up "-e" confusion.
        (GCC_INSTALL_NAME, GCC_CROSS_NAME): Likewise.

From-SVN: r16666
1997-11-22 00:53:39 -07:00
Manfred Hollstein
135729bd63 Makefile.in (bigstmp-complex): Name changed to bigstmp-complx to cope with filesystem not capable to handle...
* Makefile.in (bigstmp-complex): Name changed to bigstmp-complx to
	cope with filesystem not capable to handle names longer than
	14 characters.

From-SVN: r16663
1997-11-21 20:34:43 -07:00
Manfred Hollstein
d14de6e74c Makefile.in: Add --no-split argument to avoid creating files with names longer than 14...
* Makefile.in: Add --no-split argument to avoid creating files
	with names longer than 14 characters.

From-SVN: r16662
1997-11-21 20:34:17 -07:00
Jeffrey A Law
1392e1900c * i386.h (TARGET_CMOV): Disable conditional moves for this release.
From-SVN: r16661
1997-11-21 20:29:14 -07:00
No Author
036dd21d41 This commit was manufactured by cvs2svn to create branch
'egcs_1_00_branch'.

From-SVN: r16658
1997-11-21 21:36:00 +00:00
Jason Merrill
261c05ad46 revert new throw spec change
From-SVN: r16657
1997-11-21 16:13:19 -05:00
Jason Merrill
67de69fd49 revert large changes
From-SVN: r16656
1997-11-21 16:10:09 -05:00
Jason Merrill
11c4a5a2e8 revert large changes
From-SVN: r16655
1997-11-21 16:04:23 -05:00
Jason Merrill
ec8373300d except.c (expand_start_eh_spec): Use the try/catch code.
* except.c (expand_start_eh_spec): Use the try/catch code.
	(expand_end_eh_spec): Likewise.  Call __check_eh_spec instead of
	doing everything inline.
	(init_exception_processing): throw_type_match now takes
 	const void pointers.
	* exception.cc (__check_eh_spec): New fn.
	* inc/exception: Neither terminate nor unexpected return.
	* decl.c: Make const_ptr_type_node public.
	* tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly.

From-SVN: r16652
1997-11-21 15:29:39 -05:00
Jeff Law
a8b708d130 Fix typo.
From-SVN: r16650
1997-11-21 13:25:40 -07:00
Jason Merrill
6c7d009424 except.c (expand_start_catch_block): We only need the rethrow region for non-sjlj exceptions.
* except.c (expand_start_catch_block): We only need the rethrow
 	region for non-sjlj exceptions.
	(expand_end_catch_block): Likewise.  Use outer_context_label_stack.

From-SVN: r16647
1997-11-21 15:23:42 -05:00
Jason Merrill
8faadf1c45 except.h: Add outer_context_label_stack.
* except.h: Add outer_context_label_stack.
	* except.c: Likewise.
	(expand_start_all_catch): Push the outer_context for the try block
 	onto outer_context_label_stack.
	(expand_end_all_catch): Use it and pop it.

From-SVN: r16646
1997-11-21 15:21:39 -05:00
Fred Fish
7835fcb96f Make-lang.in (stmp-f2c.h): Move inclusion of F77_FLAGS_TO_PASS to before override of CC so that the...
* Make-lang.in (stmp-f2c.h): Move inclusion of F77_FLAGS_TO_PASS
        to before override of CC so that the override works.

From-SVN: r16643
1997-11-21 10:22:06 -07:00
Robert Lipe
16683156e1 * i386/sco5.h (HAVE_ATEXIT): Revert last change.
From-SVN: r16640
1997-11-21 10:12:52 -07:00
Jeff Law
858e168d7f Forgot to actually check it in.
From-SVN: r16638
1997-11-21 10:06:01 -07:00
Jeff Law
bb0acf84f9 config.guess (alpha stuff): Merge with FSF to avoid incorrect guesses.
* config.guess (alpha stuff): Merge with FSF to avoid incorrect
        guesses.

From-SVN: r16637
1997-11-21 09:50:37 -07:00
Jason Merrill
aa0defa73c tests
From-SVN: r16628
1997-11-20 23:04:33 -05:00
Richard Henderson
286e6ab133 * alpha.c (alpha_emit_set_const_1): Handle narrow hosts better.
From-SVN: r16626
1997-11-20 19:07:26 -07:00
Jeff Law
3be6e264b2 Minor fix from meissner.
From-SVN: r16624
1997-11-20 16:40:57 -07:00
Klaus Kaempf
4b377d5ea1 vms.h (ASM_OUTPUT_ADDR_VEC_ELT): Add an L for the local label to correspond with the change to...
* alpha/vms.h (ASM_OUTPUT_ADDR_VEC_ELT): Add an L for the local label
        to correspond with the change to ASM_GENERATE_INTERNAL_LABEL.

From-SVN: r16621
1997-11-20 16:34:57 -07:00
Jason Merrill
988cf86b46 Makefile.in (LIB2FUNCS): Remove C++ memory management support.
./:	* Makefile.in (LIB2FUNCS): Remove C++ memory management support.
	* libgcc2.c: Remove __builtin_new, __builtin_vec_new, set_new_handler,
	__builtin_delete, and __builtin_vec_delete.

	* except.c (output_exception_table): Don't bother with
 	__EXCEPTION_END__.

cp/:
	* Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs.
	(various.o): Likewise.
	* inc/new: Add placement deletes.  Add throw specs for default new.
	* new.cc (set_new_handler): Move here from libgcc2.
	* new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler.
	(new): Move from libgcc2.  Throw bad_alloc.
	* new2.cc: Move the rest of the op news and op deletes from libgcc2.
	* decl.c (init_decl_processing): Update exception specs on new and
	delete.

From-SVN: r16619
1997-11-20 18:21:26 -05:00
Jeffrey A Law
4fac523af0 pa.md (pre_stwm, [...]): Base register is an in/out operand.
* pa.md (pre_stwm, post_stwm, pre_ldwm, post_ldwm): Base register
        is an in/out operand.
        (zero extended variants of stwm/stwm patterns): Similarly.

From-SVN: r16618
1997-11-20 16:19:01 -07:00
Jeffrey A Law
00dfbe1ae5 * mips/x-iris (FIXPROTO_DEFINES): Add -D_SGI_SOURCE.
From-SVN: r16615
1997-11-20 16:09:41 -07:00
Jason Merrill
b957dce210 method.c (build_decl_overload_real): Don't mess with global placement delete.
* method.c (build_decl_overload_real): Don't mess with global
	placement delete.

	* init.c (build_new): Check for null throw spec, not nothrow_t.

	* decl.c (duplicate_decls): Don't complain about different exceptions
	from an internal declaration.

	* call.c (build_op_delete_call): Fix check for member fns again.

	* decl2.c (import_export_decl): Interface hackery affects
	virtual synthesized methods.

From-SVN: r16611
1997-11-20 17:42:37 -05:00
Jason Merrill
9a23f86ad7 dwarf2out.c (ASM_OUTPUT_DWARF_OFFSET4): Rename from VALUE4.
* dwarf2out.c (ASM_OUTPUT_DWARF_OFFSET4): Rename from VALUE4.
	Use assemble_name.
	(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Use assemble_name.
	(output_call_frame_info): Emit a \n after using it.

From-SVN: r16608
1997-11-20 16:38:39 -05:00
Jeff Law
33d6a14e5b Patch from meissner.
From-SVN: r16596
1997-11-20 01:09:56 -07:00
H.J. Lu
5cf8e6165f * Make-lang.in (f77.install-info): Depend on f77.info.
From-SVN: r16594
1997-11-20 00:55:53 -07:00
Dave Love
56263a063a * configure.in: Add AC_ARG_ENABLE for Haifa as documentation.
From-SVN: r16592
1997-11-20 00:38:41 -07:00
Jason Merrill
4010c87762 decl.c (start_decl): Don't just complain about a mismatched scope, fix it.
* decl.c (start_decl): Don't just complain about a mismatched
	scope, fix it.

From-SVN: r16590
1997-11-19 23:42:10 -05:00
Jason Merrill
ee3644d3b3 decl.c (make_implicit_typename): Handle case where t is not actually from context.
* decl.c (make_implicit_typename): Handle case where t is not
 	actually from context.
	* tree.c (get_type_decl): Lose identifier case.
	* spew.c (yylex): Lose useless call to identifer_typedecl_value.
	* parse.y (nonnested_type): Just use lookup_name.
	(complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE.

From-SVN: r16588
1997-11-19 22:55:02 -05:00
Philippe De Muyter
d4f68a8339 dwarf2out.c (CIE_LENGTH_LABEL, [...]): New macros.
Wed Nov 19 12:03:04 1997  Philippe De Muyter  <phdm@macqel.be>

	* dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros.
	(ASM_OUTPUT_DWARF_VALUE4): New macro.
	(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is
	defined.
	(output_call_frame_info): Do not output forward label differences
	if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined.
	* m68k/mot3300.h (SET_ASM_OP): Define when not using gas.

From-SVN: r16583
1997-11-19 14:51:48 -05:00
Jason Merrill
ca6de10f6a decl.c (make_implicit_typename): New fn.
* decl.c (make_implicit_typename): New fn.
	(lookup_name_real): Use it.  Use current_class_type as the context.

From-SVN: r16580
1997-11-19 13:41:17 -05:00
Jeff Law
dcc7ba04b1 New test.
From-SVN: r16577
1997-11-19 09:19:25 -07:00
Jim Wilson
cb395d583f mips.c (save_restore_insns): If gp_offset or fp_offset are large_int...
* mips/mips.c (save_restore_insns): If gp_offset or fp_offset are
        large_int, emit two insns instead of one splitable insn.
        * dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset
        from cfa_temp_value, use cfa_offset.  Abort if cfa_reg is not SP.

From-SVN: r16576
1997-11-18 22:49:11 -07:00
H.J. Lu
ebd5e1d91d * stdstrbufs.cc (DEF_STDFILE): Use STD_VTABLE.
From-SVN: r16566
1997-11-18 09:51:39 -07:00
Mumit Khan
ee51cb8ea5 close.c (f_exit): Reset f__init so that f_clos does not (incorrectly) think there is an I/O...
* libI77/close.c (f_exit): Reset f__init so that f_clos does not
        (incorrectly) think there is an I/O recursion when program is
        interrupted.

From-SVN: r16564
1997-11-18 09:47:23 -07:00
Bruno Haible
9842107d02 pt.c (do_poplevel): Don't prohibit jumps into this contour.
Mon Nov 17 23:42:03 1997  Bruno Haible <haible@ilog.fr>

	* pt.c (do_poplevel): Don't prohibit jumps into this contour.

From-SVN: r16559
1997-11-18 03:10:11 -05:00
Jason Merrill
991ca513a9 call.c (build_new_method_call): Handle getting a TEMPLATE_ID_EXPR around a TEMPLATE_DECL.
* call.c (build_new_method_call): Handle getting a
 	TEMPLATE_ID_EXPR around a TEMPLATE_DECL.  Don't look for a field
 	if we got template parms.
	* typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR,
 	not just the args.
	* decl2.c (build_expr_from_tree): Tweak last change.
	* pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE.
	(maybe_fold_nontype_arg): Split out from tsubst_copy.
	* tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR.

Mon Nov 10 20:08:38 1997  Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>

	* pt.c (tsubst_copy): Handle explicit template arguments in
	function calls.
	* typeck.c (build_x_function_call): Likewise.
	* decl2.c (build_expr_from_tree): Lookup function name if it
	hasn't been done.

	* pt.c (tsubst): Instantiate template functions properly when
	template parameter does not appear in function arguments and return
	type.
	(comp_template_args): Handle member templates required by tsubst.

Mon Nov 10 20:08:29 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* pt.c (coerce_template_parms): Tweak error message.

From-SVN: r16556
1997-11-18 01:54:29 -05:00
Jason Merrill
d65b9e64e0 search.c (dfs_record_inheritance): Ignore template type parms.
* search.c (dfs_record_inheritance): Ignore template type parms.

Fixes 13688.

	* friend.c (do_friend): Warn about non-template friends in templates.

	* call.c (build_op_delete_call): Fix handling of inherited delete.

From-SVN: r16552
1997-11-17 14:37:07 -05:00
Robert Lipe
f3988e7863 sco5.h (HAVE_ATEXIT): Delete definition.
Fri Nov  7 15:33:11 1997  Robert Lipe (robertl@dgii.com)

        * i386/sco5.h (HAVE_ATEXIT): Delete definition.

From-SVN: r16535
1997-11-16 23:53:51 -07:00
Jeffrey A Law
d1e4a14575 cse.c (cse_insn): Don't look at JUMP_LABEL field of a conditionl return.
* cse.c (cse_insn): Don't look at JUMP_LABEL field of a conditionl
        return.
        (cse_end_of_basic_block): Similarly.

From-SVN: r16533
1997-11-16 23:50:55 -07:00
J. Kean Johnston
95c73423f9 sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define.
* i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define.
        (SELECT_RTX_SECTION): Define.
        (LIBGCC_SPEC, LIB_SPEC): Do the right thing for PIC.

From-SVN: r16531
1997-11-16 23:01:16 -07:00
Manfred Hollstein
58ae042a84 Makefile.in (compare, [...]): Define $stage for each shell command.
* Makefile.in (compare, compare-lean): Define $stage for each
        shell command.
        (gnucompare, gnucompare-lean): Likewise.

From-SVN: r16529
1997-11-16 22:45:46 -07:00
Jeffrey A Law
86fcc806d6 * Makefile.in (SHLIB): Build with CC instead of CXX.
From-SVN: r16527
1997-11-16 22:40:38 -07:00
Richard Henderson
9f9dbd6abd win-nt.h (TRAMPOLINE_TEMPLATE): Fix offsets.
* alpha/win-nt.h (TRAMPOLINE_TEMPLATE): Fix offsets.

        * alpha.h (ASM_OUTPUT_ADDR_DIFF_ELT): Add an L for the local label
        to correspond with the change to ASM_GENERATE_INTERNAL_LABEL.

From-SVN: r16525
1997-11-16 22:02:57 -07:00
Jason Merrill
3d1440b3d0 call.c (build_new_op): Fix copy error.
* call.c (build_new_op): Fix copy error.
	(build_op_new_call): New fn.
	(build_op_delete_call): New fn.
	* cp-tree.h: Declare them.
	* init.c (build_new): Use them.  Support placement delete.
	(build_x_delete): Use build_op_delete_call.
	(build_delete): Likewise.
	* decl2.c (delete_sanity): Likewise.
	(coerce_delete_type): Don't complain about placement delete.

Support placement delete.

From-SVN: r16500
1997-11-15 03:36:08 -05:00
Dave Love
970c5441f4 intrin.def: Supply gfrt for CPU_TIME.
1997-11-14  Dave Love  <d.love@dl.ac.uk>

	* intrin.def: Supply gfrt for CPU_TIME.  Generalize arg types of
	INT2, INT8, per doc.

From-SVN: r16494
1997-11-14 08:12:42 -07:00
Jeffrey A Law
cfc5f8beda * version.c: Bump for snapshot.
From-SVN: r16493
1997-11-14 07:59:09 -07:00
Richard Henderson
f5ce08ecc4 expr.c (expand_builtin_setjmp): Set current_function_has_nonlocal_label.
* expr.c (expand_builtin_setjmp): Set
        current_function_has_nonlocal_label.
        * stupid.c (stupid_life_analysis): If has_nonlocal_label, kill
        call-saved registers across calls.

        * alpha.md (exception_receiver): Remove.
        (nonlocal_goto_receiver_osf): New
        (nonlocal_goto_receiver_vms): Renamed from nonlocal_goto_receiver.
        (nonlocal_goto_receiver): New, select _osf or _vms.

From-SVN: r16491
1997-11-14 07:48:31 -07:00
Richard Henderson
a427764e0f alpha.c (output_prolog [*]): Prefix entry labels with '$' to keep them from being propogated to the object file.
* alpha.c (output_prolog [*]): Prefix entry labels with '$' to
        keep them from being propogated to the object file.
        (alpha_write_linkage): Likewise.
        * alpha.md (call_vms): Likewise.
        (call_value_vms): Likewise.
        (unnamed osf call insns): Likewise.

        * alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Don't omit L from local label.
        (ASM_GENERATE_INTERNAL_LABEL): Likewise.

From-SVN: r16489
1997-11-14 07:42:27 -07:00
Paul Eggert
1009cb24db Fix some confusion with IEEE minus zero.
* real.h (REAL_VALUES_IDENTICAL): New macro.

        * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros.
        * fold-const.c (operand_equal_p): Don't consider -0.0 to be
        identical to 0.0.
        * tree.c (simple_cst_equal): Don't consider -0.0 to have the
        same tree structure as 0.0.

        * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL
        macro instead of doing it by hand.

From-SVN: r16488
1997-11-14 07:30:01 -07:00
Richard Henderson
a94fc2eb50 alpha.c (call_operand): Any reg is valid for WinNT.
* alpha.c (call_operand): Any reg is valid for WinNT.
        * alpha.md (call_nt, call_value_nt): Don't force address into $27.
        (anon nt calls): Add 'R' alternative.
        * alpha/win-nt.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE,
        INITIALIZE_TRAMPOLINE): Handle lack of original $27 and 32-bit ptrs.

From-SVN: r16486
1997-11-14 07:22:13 -07:00
Jeff Law
7a155c1472 Add -frepo docs.
From-SVN: r16479
1997-11-13 18:57:05 -07:00
Jeffrey A Law
4b8cc7c55e flow.c (find_basic_blocks): During marking phase...
* flow.c (find_basic_blocks): During marking phase, if we encounter
        an insn with a REG_LABEL note, make the target block live and
        create an edge from the insn to the target block.  Do not make
        edges from all blocks to the target block.
Another crack at the flow control problem.

From-SVN: r16468
1997-11-13 16:08:15 -07:00
Jim Wilson
4149fd3ef6 mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete code swapping xplus0 and xplus1 when xplus0 is not a register.
* mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete code swapping xplus0 and
	xplus1 when xplus0 is not a register.

From-SVN: r16466
1997-11-13 14:08:05 -07:00
Jason Merrill
ac1e0fbb3a removed unused parm to build_new_function_call
From-SVN: r16465
1997-11-13 15:03:31 -05:00
Jeffrey A Law
2722d2343e * m68k/x-next (OTHER_FIXINCLUDES_DIRS): Include /NextDeveloper/Headers.
From-SVN: r16461
1997-11-13 11:51:56 -07:00
David Edelsohn
fc8cde864d rs6000.md (lshrdi3_power): Delete '&' from first alternative and swap instruction order.
* rs6000.md (lshrdi3_power): Delete '&' from first alternative and
        swap instruction order.

From-SVN: r16460
1997-11-13 11:49:31 -07:00
Michael Meissner
f8d0aaf077 rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to pick apart floating point values...
* rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to
        pick apart floating point values, instead of using CONST_DOUBLE_LOW
        and CONST_DOUBLE_HIGH.

        * rs6000.md (define_splits for DF constants): Use the appropriate
        REAL_VALUE_* interface to pick apart DF floating point constants in
        a machine independent fashion.

From-SVN: r16459
1997-11-13 11:46:01 -07:00
Jeffrey A Law
2f19e79de7 confiugre.in: Tweak NCR entries.
* confiugre.in: Tweak NCR entries.
        * configure: Rebuilt.

From-SVN: r16457
1997-11-13 11:39:51 -07:00
Jeffrey A Law
98e53a77fe * configure.in (i[3456]86-ncr-sysv4.3*): Tweak.
From-SVN: r16456
1997-11-13 11:37:27 -07:00
Jason Merrill
e6dff3075c init.c (build_new): Make the cleanup last longer.
* init.c (build_new): Make the cleanup last longer.
	(expand_vec_init): Call do_pending_stack_adjust.

From-SVN: r16450
1997-11-13 05:11:07 -05:00
Jason Merrill
3f72001bac thinko
From-SVN: r16447
1997-11-12 15:16:34 -05:00
Jason Merrill
980bf49358 pt.c (do_type_instantiation): Fix typo.
* pt.c (do_type_instantiation): Fix typo.
	(mark_class_instantiated): If we support one_only but not weak
	symbols, don't mark this as known.

	* init.c (build_new): Handle cookies in EH cleanup.

Wed Nov 12 08:11:55 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>

	* call.c (build_method_call): Call complete_type before checking
 	for destructor.

From-SVN: r16445
1997-11-12 14:53:33 -05:00
Jeffrey A Law
65bdbea37e except.c: Do not include "assert.h".
* except.c: Do not include "assert.h".
        (save_eh_status): Turn asserts into conditional aborts.
        (restore_eh_status, scan_region): Likewise.
        * dwarfout.c: Do not include "assert.h".
        (bit_offset_attribute): Turn asserts into conditional aborts.
        (bit_size_attribute, output_inlined_enumeration_type_die): Likewise.
        (output_inlined_structure_type_die): Likewise.
        (output_inlined_union_type_die): Likewise
        (output_tagged_type_instantiation): Likewise.
        (dwarfout_file_scope_decl): Likewise.
        * dwarf2out.c: Do not include "assert.h"
        (expand_builtin_dwarf_reg_size): Turn asserts into conditional aborts.
        (reg_save, initial_return_save, dwarf2out_frame_debug): Likewise.
        (add_child_die, modified_type_die, add_bit_offset_attribute): Likewise.
        (add_bit_size_attribute, scope_die_for): Likewise.
        (output_pending_types_for_scope): Likewise.
        (get_inlined_enumeration_type_die): Likewise.
        (get_inlined_structure_type_die): Likewise.
        (get_inlined_union_type_die, gen_subprogram_die): Likewise.
        (gen_tagged_type_instantiation_die): Likewise.

From-SVN: r16441
1997-11-12 10:01:12 -07:00
Jeffrey A Law
79c5b0a7ee flow.c (find_basic_blocks): Refine further to get a more correct cfg...
* flow.c (find_basic_blocks): Refine further to get a more correct
        cfg, especially in the presense of exception handling, computed
        gotos, and other non-trivial cases.  Call abort if an inaccuracy
        is detected in the cfg.

From-SVN: r16439
1997-11-12 09:35:41 -07:00
Jason Merrill
e18138c8f7 init.c (build_new): Handle freeing allocated memory when the constructor throws.
* init.c (build_new): Handle freeing allocated memory when the
	constructor throws.

	* call.c (build_new_method_call): Fix flags arg.

	* pt.c (do_type_instantiation): Don't try to instantiate
	member templates.
	(mark_decl_instantiated): If we support one_only but not
	weak symbols, mark this one_only.
	* decl2.c (import_export_vtable): Don't defer handling of vtables
	if MULTIPLE_SYMBOL_SPACES.

From-SVN: r16437
1997-11-12 04:19:26 -05:00
Jason Merrill
a368532c2c except.c (expand_end_catch_block): Lose call to __sjpopnthrow.
* except.c (expand_end_catch_block): Lose call to __sjpopnthrow.

Fixes sjlj failures.

From-SVN: r16434
1997-11-11 22:54:47 -05:00
Jason Merrill
67328e449d except.c (do_pop_exception): Return a value.
* except.c (do_pop_exception): Return a value.

Oops.

From-SVN: r16430
1997-11-11 05:59:14 -05:00
Oleg Krivosheev
fd47683704 iomanip.h: Fix guiding decls.
Tue Nov 11 01:40:17 1997  Oleg Krivosheev <kriol@fnal.gov>

	* iomanip.h: Fix guiding decls.

From-SVN: r16429
1997-11-11 04:43:35 -05:00
Jason Merrill
faee6a5f2f [multiple changes]
Sun Oct 19 09:07:38 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* stmt.c (using_eh_for_cleanups_p): New variable.
	(using_eh_for_cleanups): New function.
	(expand_decl_cleanup): Don't call expand_eh_region_start_tree
	unless using EH for cleanups.

Sun Oct 26 01:28:29 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* decl.c (init_decl_processing): Call using_eh_for_cleanups.

From-SVN: r16424
1997-11-10 21:32:50 -05:00
Jason Merrill
f3bd21b697 stmt.c (expand_decl_cleanup_no_eh): New fn.
* stmt.c (expand_decl_cleanup_no_eh): New fn.

	* except.c (expand_leftover_cleanups): do_pending_stack_adjust.

	Complete nested exception support.
	* except.c (do_pop_exception): Split out...
	(push_eh_cleanup): From here.  Handle the EH region by hand.
	(expand_start_catch_block): Add a new level for the catch parm.
	Move the rethrow region outside the two cleanup regions.
	Protect the initializer for the catch parm with terminate.
	(expand_end_catch_block): Likewise.  End the region for the eh_cleanup.
	* exception.cc (__cp_pop_exception): Now takes two parms.  Handle
	popping off the middle of the stack.
	* tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR,
	WITH_CLEANUP_EXPR, and UNSAVE_EXPR.
	(build_cplus_new): Only wrap CALL_EXPRs.
	* init.c (expand_default_init): Handle a TRY_CATCH_EXPR around
	the constructor call.

Sun Nov  9 18:00:26 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* Make-lang.in (c++.distdir): Make inc subdirectory.

From-SVN: r16420
1997-11-10 15:06:56 -05:00
Jeffrey A Law
d2fe4f6ae7 alias.c (MAX_ALIAS_LOOP_PASSES): Define.
* alias.c (MAX_ALIAS_LOOP_PASSES): Define.
        (init_alias_analysis): Break out of loops after MAX_ALIAS_LOOP_PASSES.

From-SVN: r16414
1997-11-10 00:03:51 -07:00
Jeffrey A Law
8df604fc16 * fixinc.svr4 (__STDC__): Add another case.
From-SVN: r16395
1997-11-09 02:05:40 -07:00
J"orn Rennecke
9a3c8dac62 a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid loads from varying addresses in the epilogue delay slot.
* a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid loads from varying
        addresses in the epilogue delay slot.

From-SVN: r16393
1997-11-09 01:59:10 -07:00
Manfred Hollstein
4ea1c8efa4 dgux.h (ASM_CPU_SPEC): Reformatted to suppress wrong whitespace in generated `specs' file.
Sun Nov  9 01:40:40 1997  Manfred Hollstein  (manfred@s-direktnet.de)

        * m88k/dgux.h (ASM_CPU_SPEC): Reformatted to suppress wrong whitespace
        in generated `specs' file.

From-SVN: r16390
1997-11-09 01:39:09 -07:00
Jim Wilson
bd93ed181f decl.c (add_block_current_level): Delete.
* decl.c (add_block_current_level): Delete.
        * init.c (build_vec_delete_1): Delete build_block and
        add_block_current_level calls.

From-SVN: r16387
1997-11-09 01:28:43 -07:00
Jeff Law
e9c6a40fec New entry.
From-SVN: r16386
1997-11-08 22:12:23 -07:00
Jason Merrill
ab1f110528 fix typo
From-SVN: r16365
1997-11-08 03:51:40 -05:00
Jim Wilson
a594134ed1 flags.h (flag_rerun_loop_opt): Declare.
* flags.h (flag_rerun_loop_opt): Declare.
        * loop.c (invariant_p, case LABEL_REF): Check flag_rerun_loop_opt.
        * toplev.c (flag_rerum_loop_opt): Delete static.

From-SVN: r16362
1997-11-07 16:36:53 -07:00
Jason Merrill
11f8059d78 * method.c (emit_thunk): Don't let the backend defer generic thunks.
From-SVN: r16360
1997-11-07 14:57:13 -05:00
Jason Merrill
f6f739981a frame.c (add_fdes, count_fdes): Go back to checking pc_begin for linked once FDEs.
* frame.c (add_fdes, count_fdes): Go back to checking pc_begin for
 	linked once FDEs.

From-SVN: r16358
1997-11-07 13:57:23 -05:00
Jason Merrill
335f9c1060 fix typo
From-SVN: r16356
1997-11-07 13:28:58 -05:00
Jason Merrill
80cc31cddc stl_algo.h, [...]: Update to October 28 SGI release.
* stl_algo.h, stl_algobase.h, stl_bvector.h,
 	stl_deque.h: Update to October 28 SGI release.

From-SVN: r16350
1997-11-06 14:21:18 -05:00
Jason Merrill
f2a53ad7e8 except.c (call_eh_info): Split out...
* except.c (call_eh_info): Split out...
	(push_eh_info): From here.
	(expand_builtin_throw): Use it.
	(expand_start_catch_block): Move region start back.

	* class.c (build_vbase_path): Propagate the result type properly.

From-SVN: r16348
1997-11-06 03:01:26 -05:00
Jeffrey A Law
b25cf9d2d4 alias.c (find_base_value): Only return the known base value for pseudo registers.
* alias.c (find_base_value): Only return the known base value for
        pseudo registers.

From-SVN: r16343
1997-11-05 14:17:36 -07:00
Jeffrey A Law
6bb1a8c25f * version.c: Bump for snapshot.
From-SVN: r16341
1997-11-05 01:41:31 -07:00
Jeffrey A Law
7d96302225 * fixincludes: Fix "hypot" prototype in NeXT math.h.
From-SVN: r16337
1997-11-04 20:08:06 -07:00
Jeffrey A Law
6b7c9e5100 Makefile.in (USE_ALLOCA): Always include alloca.o.
* Makefile.in (USE_ALLOCA): Always include alloca.o.
        (USE_HOST_ALLOCA): Likewise.

From-SVN: r16335
1997-11-04 19:22:37 -07:00
Jeff Law
d9af52b46d Move test from execute to compile.
From-SVN: r16320
1997-11-04 16:20:23 -07:00
Jeffrey A Law
2cf3141e12 alias.c (find_base_value): When copying arguments, return the tenative value for a hard register.
* alias.c (find_base_value): When copying arguments, return the
        tenative value for a hard register.
Fixes infinite loop.

From-SVN: r16318
1997-11-04 16:07:18 -07:00
Richard Henderson
efd60d18d8 alpha.c (summarize_insn): Handle ASM_OPERANDS.
* alpha.c (summarize_insn): Handle ASM_OPERANDS.  Don't recurse
        for SUBREG, just fall through.

        * alpha.c (alpha_handle_trap_shadows): Init sum.defd to zero.

        * alpha.md (attr trap): Make TRAP_YES non-zero for sanity's sake.

        * combine.c (try_combine): When setting elim_i1, check if newi2pat
        sets i1dest.

        * combine.c (try_combine): When setting elim_i2, check whether newi2pat
        sets i2dest.  When calling distribute_notes for i3dest_killed, pass
        elim_i2 and elim_i1.

Co-Authored-By: Jim Wilson <wilson@cygnus.com>

From-SVN: r16313
1997-11-04 14:15:45 -07:00
Jason Merrill
ff5b5c164a update to 10/27 STL snapshot
From-SVN: r16311
1997-11-04 15:14:50 -05:00
Jeff Law
9c82d0d1fd Remove last combine patch. rth & jim are working on a better one.
From-SVN: r16305
1997-11-03 14:57:49 -07:00
Jeffrey A Law
2862b9c355 configure.in (sco5): Use cpio to install header files.
* configure.in (sco5): Use cpio to install header files.
So make install works properly.

From-SVN: r16302
1997-11-03 14:38:32 -07:00
Manfred Hollstein
9ba0177642 configure.in: Use delta.mt for m68k-motorola-sysv.
Sun Nov  2 23:34:09 1997  Manfred Hollstein  <manfred@s-direktnet.de>

        * configure.in: Use delta.mt for m68k-motorola-sysv.
        * config/delta.mt: New makefile fragment.

From-SVN: r16301
1997-11-02 23:33:59 -07:00
No Author
2b04f1785b This commit was manufactured by cvs2svn to create branch
'egcs_1_00_branch'.

From-SVN: r16300
1997-11-03 06:33:59 +00:00
Manfred Hollstein
de68fe9861 aclocal.m4 (conftestdata_from, [...]): Names shortened to 14 char length.
* aclocal.m4 (conftestdata_from, conftestdata_to): Names shortened to
        14 char length.
        * configure: Rebuild.

From-SVN: r16297
1997-11-02 23:29:08 -07:00
Richard Henderson
5df7011f90 combine.c (try_combine): Don't elim_i1 when it is used in i2src.
* combine.c (try_combine): Don't elim_i1 when it is used in i2src.

        * combine.c (try_combine): When setting elim_i2, check whether newi2pat
        sets i2dest.  When calling distribute_notes for i3dest_killed, pass
        elim_i2 and elim_i1.

Co-Authored-By: Jim Wilson <wilson@cygnus.com>

From-SVN: r16295
1997-11-02 23:21:13 -07:00
Jeff Law
b46af585fa Initialize I.
From-SVN: r16294
1997-11-02 23:11:55 -07:00
Jeff Law
f8db4bd153 *** empty log message ***
From-SVN: r16290
1997-11-02 23:05:40 -07:00
Craig Burley
b1d0fc355d Important patch from Burley.
From-SVN: r16289
1997-11-02 23:04:01 -07:00
Richard Earnshaw
0d0bf87bcd arm.c (load_multiple_sequence): Support SUBREG of MEM.
* arm.c (load_multiple_sequence): Support SUBREG of MEM.
        (store_multiple_sequence): Likewise.
Brought over from gcc2.

From-SVN: r16288
1997-11-02 22:52:42 -07:00
Richard Henderson
d1693a76da com.c (ffecom_expr_): Only use TREE_TYPE argument for simple arithmetic...
* com.c (ffecom_expr_): Only use TREE_TYPE argument for simple
        arithmetic; convert types as necessary; recurse with target tree type.

From-SVN: r16286
1997-11-02 19:48:50 -07:00
Robert Lipe
40a58b4367 * i386/sco5.h: enable -gstabs once again.
From-SVN: r16285
1997-11-02 19:43:37 -07:00
Jeffrey A Law
31d71f5d55 arm.c (output_move_double): Allocate 3 entries in otherops array.
Sun Nov  2 19:27:21 1997  Jeffrey A Law  (law@cygnus.com)

        * arm.c (output_move_double): Allocate 3 entries in otherops array.

From-SVN: r16283
1997-11-02 19:28:13 -07:00
No Author
4aea9e0184 This commit was manufactured by cvs2svn to create branch
'egcs_1_00_branch'.

From-SVN: r16282
1997-11-03 02:28:13 +00:00
Jeff Law
336b436af5 Initial revision
From-SVN: r16272
1997-11-02 01:39:28 -07:00
Jeffrey A Law
8072f69c31 alias.c (init_alias_analysis): Handle -fno-alias-check when optimizing correctly.
* alias.c (init_alias_analysis): Handle -fno-alias-check when
        optimizing correctly.

From-SVN: r16268
1997-11-01 23:28:31 -07:00
Jeffrey A Law
6cad9e3280 expr.c (expand_builtin_setjmp): Don't emit a SETJMP note or set current_function_calls_setjmp anymore.
* expr.c (expand_builtin_setjmp): Don't emit a SETJMP note
        or set current_function_calls_setjmp anymore.

From-SVN: r16267
1997-11-01 22:15:13 -07:00
Mike Stump
9ad8a5f011 except.c (expand_ex_region_start_for_decl): Emit EH_REGION_BEG notes for sjlj exceptions too.
* except.c (expand_ex_region_start_for_decl): Emit EH_REGION_BEG
        notes for sjlj exceptions too.
        (expand_eh_region_end): Similarly for EH_REGION_END notes.
        (exception_optimize): Optimize EH regions for sjlj exceptions too.
        * final.c (final_scan_insn): Don't output labels for EH REGION
        notes if doing sjlj exceptions.

From-SVN: r16266
1997-11-01 21:43:34 -07:00
Jeffrey A Law
f8671389c5 flow.c (find_basic_blocks): If we delete the label for an exception handler...
* flow.c (find_basic_blocks): If we delete the label for an
        exception handler, remove it from the EH label list and remove
        the EH_BEGIN/EH_END notes for that EH region.

From-SVN: r16265
1997-11-01 19:15:01 -07:00
Jeffrey A Law
e67edc156e * libF77/signal_.c: Undo last change until we can fix it right.
From-SVN: r16264
1997-11-01 18:02:05 -07:00
Jason Merrill
a886ae747e flow.c (find_basic_blocks): Generate correct flow control information when exception handling notes are present.
* flow.c (find_basic_blocks): Generate correct flow control
        information when exception handling notes are present.

From-SVN: r16263
1997-11-01 16:45:10 -07:00
Jeffrey A Law
c2c85462f3 dwarf2out.c (output_call_frame_info): Fix length argument to ASM_OUTPUT_ASCII.
* dwarf2out.c (output_call_frame_info): Fix length argument
        to ASM_OUTPUT_ASCII.
        (output_die, output_pubnames, output_line_info): Likewise.

From-SVN: r16262
1997-11-01 13:43:02 -07:00
Brendan Kehoe
b2bb2710f3 lex.c (FILE_NAME_NONDIRECTORY): Delete macro.
* lex.c (FILE_NAME_NONDIRECTORY): Delete macro.
        (file_name_nondirectory): New function, doing the same as the macro.
        (set_typedecl_interface_info): Use it instead of the macro.
        (check_newline): Likewise.
        (handle_cp_pragma): Likewise.

        * repo.c (get_base_filename): Cast result of rindex to char*.
        (open_repo_file): Likewise.
        * xref.c (open_xref_file): Likewise.
        * error.c (dump_char): Make its arg int, not char.

bring over the changes that went in yesterday to fix irix6 native cc
build problems

From-SVN: r16261
1997-11-01 14:50:18 -05:00
Brendan Kehoe
5a0fa1de62 except.c (expand_builtin_throw): Replace remaining use of saved_throw_type with a call to get_eh_type.
* except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace
        remaining use of saved_throw_type with a call to get_eh_type.

From-SVN: r16260
1997-11-01 13:38:16 -05:00
Brendan Kehoe
cf9d67e3e8 except.c (push_eh_info): Pass the number of fields - 1 down, not the exact number of fields.
* except.c (push_eh_info): Pass the number of fields - 1 down, not
        the exact number of fields.

cuz in finish_builtin_type, its comment sez

   LEN is the number of elements
   in FIELDS minus one, or put another way, it is the maximum subscript
   used in FIELDS.

and its code does

  for (i = 0; i < len; i++)
    {
      layout_type (TREE_TYPE (fields[i]));
      DECL_FIELD_CONTEXT (fields[i]) = type;
      TREE_CHAIN (fields[i]) = fields[i+1];
    }
  DECL_FIELD_CONTEXT (fields[i]) = type;
  DECL_CLASS_CONTEXT (fields[i]) = type;

thus expecting the final ones to be fields[4], not fields[5] (which is
the actual size from 0, not the last field member)

From-SVN: r16257
1997-10-31 18:17:35 -05:00
Jeffrey A Law
27ca375af6 * version.c: Bump for snapshot.
From-SVN: r16255
1997-10-31 09:47:28 -07:00
Jeff Law
468c74c3f9 Fix typo.
From-SVN: r16253
1997-10-31 09:41:19 -07:00
Jeffrey A Law
53ca5d4fb4 Makefile.in (install targets): Add a dummy target for sunos make.
* Makefile.in (install targets): Add a dummy target for sunos make.
        (SUBDIR): Remove 'info'.  It's unneeded.

From-SVN: r16252
1997-10-31 09:38:44 -07:00
Jeffrey A Law
8d4e65a635 dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to output ASCII by default.
* dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to
        output ASCII by default.  Only use ASM_OUTPUT_DWARF_STRING if
        flag_debug_asm is on.
        (output_die, output_pubnames, output_line_info): Likewise.

From-SVN: r16251
1997-10-31 09:30:48 -07:00
Jeffrey A Law
ec907dd81e alias.c (init_alias_analysis): Add struct_value_incoming_rtx and static_chain_rtx into the potential base...
* alias.c (init_alias_analysis): Add struct_value_incoming_rtx
        and static_chain_rtx into the potential base values array if
        they are registers.
Fixes bugs exposed by improved alias propagation code.

        * alias.c (new_reg_base_value): New array of potential base values.
        (unique_id): Now file scoped static.
        (find_base_value, case REG): Return the value in reg_base_value
        array for the REG if it exists.  Else, return the value from
        new_reg_base_value if copying args and REG is a hard register.
        (find_base_value, case PLUS): If either operand of the PLUS is
        a REG, try to get its base value.  Handle base + index and
        index + base.
        (record_set): Use new_reg_base_value instead of reg_base_value.
        (init_alias_analysis): Allocate space for new_reg_base_value too.
        Rework code to iterate over the insns propagating base value
        information until nothing changes.
Improve alias propagation significantly.

From-SVN: r16250
1997-10-31 08:35:31 -07:00
Jeffrey A Law
8c316ae21c global.c (global_alloc): Free the conflict matrix after reload has finished.
* global.c (global_alloc): Free the conflict matrix after
        reload has finished.

From-SVN: r16249
1997-10-31 07:08:40 -07:00
Jason Merrill
6874c2647b [multiple changes]
Fri Oct 31 01:45:31 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* libgcc2.c (L_eh): Define __eh_pc.
	Replace __eh_type with generic pointer __eh_info.

Fri Oct 31 01:47:57 1997  Jason Merrill  <jason@yorick.cygnus.com>

	Support for nested exceptions.
	* tinfo2.cc (__is_pointer): New fn.
	* exception.cc (struct cp_eh_info): Define.
	(__cp_exception_info, __uncatch_exception): New fns.
	(__cp_push_exception, __cp_pop_exception): New fns.
	* except.c: Lose saved_throw_{type,value,cleanup,in_catch}.
 	Lose empty_fndecl.
	(init_exception_processing): Likewise.  __eh_pc is now external.
	(push_eh_info): New fn.
	(get_eh_{info,value,type,caught}): New fns.
	(push_eh_cleanup): Just call __cp_pop_exception.
	(expand_start_catch_block): Use push_eh_info.  Start the eh region
	sooner.
	(expand_end_eh_spec): Use push_eh_info.
	(expand_throw): Call __cp_push_exception to set up the exception info.
	Just pass the destructor or 0 as the cleanup.  Call __uncatch_exception
	when we rethrow.
	(expand_builtin_throw): Don't refer to empty_fndecl.

From-SVN: r16248
1997-10-31 04:52:55 -05:00
J"orn Rennecke
59fe8c2c20 expr.c (expand_increment): When enqueing a postincrement for a MEM...
* expr.c (expand_increment): When enqueing a postincrement for a MEM,
	use copy_to_reg if address is not a general_operand.

From-SVN: r16247
1997-10-31 00:40:46 +00:00
J"orn Rennecke
d1271dedce profile.c (output_func_start_profiler): Clear flag_inline_functions for the duration of the call to rest_of_compilation.
* profile.c (output_func_start_profiler): Clear flag_inline_functions
	for the duration of the call to rest_of_compilation.

From-SVN: r16246
1997-10-31 00:23:07 +00:00
Doug Evans
c0498f4395 Clean up pass over sparc -m{cpu,tune} docs.
From-SVN: r16245
1997-10-30 23:01:26 +00:00
Doug Evans
ac52b80b6d configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf.
* configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf.
	Set extra_parts.
	(sparc*-*-*): Recognize --with-cpu=v9.
	* sparc/elf.h: New file.
	* sparc/t-elf: New file.

From-SVN: r16243
1997-10-30 22:52:41 +00:00
Doug Evans
5a36007ac0 New files for embedded sparc/elf support.
From-SVN: r16240
1997-10-30 22:38:32 +00:00
Doug Evans
70f62f4b17 New files for embedded sparc/elf support.
From-SVN: r16239
1997-10-30 22:38:04 +00:00
Jeffrey A Law
f891229781 mn10300.c (const_8bit_operand): New function.
* mn10300.c (const_8bit_operand): New function.
        (mask_ok_for_mem_btst): New funtion.
        * mn10300.md (btst patterns with mem operands): Use new functions
        to avoid creating btst instructions with invalid operands.

From-SVN: r16236
1997-10-30 13:34:59 -07:00
Jason Merrill
5da07ba3ac * gen-params: Override NULL.
From-SVN: r16232
1997-10-29 23:00:21 -07:00
Robert Lipe
70f89f0d1d termdep.h: If POSIX...
* info/termdep.h: If POSIX, #undef TIOCGETC for benefit of systems
        that provide TIOCETC but not struct tchars.

From-SVN: r16231
1997-10-29 22:55:14 -07:00
Michael Meissner
05ef204d6d Fix duplicate SIG_SYSLIST warnings on PowerPC Linux
From-SVN: r16230
1997-10-29 22:00:14 +00:00
Gavin Koch
feecabdf83 elf64.h (PREFERRED_DEBUGGING_TYPE): Only define if not previously defined.
* config/mips/elf64.h (PREFERRED_DEBUGGING_TYPE): Only define
	if not previously defined.

From-SVN: r16229
1997-10-29 18:21:18 +00:00
Doug Evans
de95730392 function.c (assign_parms): Correct mode of stack_parm if entry_parm underwent a mode conversion.
* function.c (assign_parms): Correct mode of stack_parm if
        entry_parm underwent a mode conversion.

From-SVN: r16228
1997-10-28 23:54:49 -07:00
Jeff Law
074c2cffc8 Expect this test to fail.
Don't even bother trying to even compile the testcase.

From-SVN: r16227
1997-10-28 23:41:58 -07:00
Jody Goldberg
0c23b0b21f * Makefile.in (CFILES): Add pexecute.c.
From-SVN: r16226
1997-10-28 23:39:04 -07:00
Brendan Kehoe
ba3b38784c global.c (global_alloc): Use xmalloc instead of alloca for CONFLICTS...
* global.c (global_alloc): Use xmalloc instead of alloca for
	CONFLICTS, since max_allocno * allocno_row_words alone can be more
	than 2.5Mb sometimes.

From-SVN: r16223
1997-10-28 18:39:28 -05:00
Richard Henderson
d540ae2cd8 reload1.c (eliminate_regs [SET]): If [SUBREG] widened the mode of DEST for the spill...
* reload1.c (eliminate_regs [SET]): If [SUBREG] widened the mode of
DEST for the spill, adjust mode of SRC to compensate.

From-SVN: r16222
1997-10-28 15:29:44 -08:00
Michael Meissner
d24661605f update doc for CONST_{,DOUBLE_}OK_FOR_LETTER_P, EXTRA_CONTSTRAINT
From-SVN: r16221
1997-10-28 22:56:06 +00:00
Michael Meissner
e119b68c3e update doc for CONST_{,DOUBLE_}OK_FOR_LETTER_P, EXTRA_CONTSTRAINT
From-SVN: r16220
1997-10-28 22:52:51 +00:00
Richard Henderson
42f4929d5a alpha.md (reload_inqi): Check for MEM before strict_memory_address_p...
* alpha.md (reload_inqi): Check for MEM before strict_memory_address_p,
since any_memory_operand() allows pseudos during reload.
(reload_inhi, reload_outqi, reload_outhi): Likewise.

From-SVN: r16219
1997-10-28 14:40:01 -08:00
Jim Wilson
0841747819 Fix coldfire/btst problems.
* m68k.md (btst patterns): Add 5200 support.

From-SVN: r16217
1997-10-28 11:56:50 -08:00
Toon Moene
750e83485a fold-const.c (fold): For ((a * C1) / C3) or (((a * C1) + C2) / C3) optimizations...
* fold-const.c (fold): For ((a * C1) / C3) or (((a * C1) + C2) / C3)
        optimizations, look inside dividend to determine if the expression
        can be simplified by using EXACT_DIV_EXPR.

From-SVN: r16216
1997-10-28 12:02:23 -07:00
Jason Merrill
ede1993290 * dwarf2out.c (output_call_frame_info): Use l1 instead of ".".
From-SVN: r16215
1997-10-28 13:23:50 -05:00
Richard Henderson
66d91cb9ea * alpha.c (summarize_insn [SUBREG]): Propogate SET.
From-SVN: r16213
1997-10-28 00:34:06 -08:00
Richard Henderson
4f3f5e9fcb alpha.c (alpha_handle_trap_shadows): Don't call get_attr_trap on a CLOBBER.
* alpha.c (alpha_handle_trap_shadows): Don't call get_attr_trap
on a CLOBBER.

From-SVN: r16212
1997-10-28 00:04:16 -08:00
Richard Henderson
f3352b9e9f alpha.md (movqi, movhi): Make sure new insns created during reload won't need reloading themselves.
* alpha.md (movqi, movhi): Make sure new insns created during reload
won't need reloading themselves.
(reload_inqi, reload_inhi, reload_outqi, reload_outhi): Likewise.

From-SVN: r16211
1997-10-27 21:28:29 -08:00
Jeffrey A Law
0cecc1904d * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg.
From-SVN: r16209
1997-10-27 16:07:37 -07:00
Jason Merrill
c9670e62b9 * Makefile.in: check-target-libio depends on all-target-libstdc++.
From-SVN: r16206
1997-10-27 15:04:45 -05:00
Richard Henderson
a09ba5a2b5 alpha.c (alpha_sa_mask [VMS]): Don't include $26 in the mask.
* alpha.c (alpha_sa_mask [VMS]): Don't include $26 in the mask.
Patch from Klaus Kaempf <kkaempf@progis.de>.

From-SVN: r16196
1997-10-26 13:47:50 -08:00
Jim Wilson
7581a30fe2 expr.c (expand_expr, [...]): Optimize a reference to an element in a constant string.
* expr.c (expand_expr, case INDIRECT_REF): Optimize a reference
        to an element in a constant string.

From-SVN: r16195
1997-10-26 13:33:27 -07:00
Jeff Law
edaa4ee062 Fix typo in last change.
From-SVN: r16194
1997-10-26 13:25:38 -07:00
Jason Merrill
16540e1b03 rebuild
From-SVN: r16193
1997-10-26 15:01:11 -05:00
Jason Merrill
d84e64d416 dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 bit PC-relative offset.
* dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32
 	bit PC-relative offset.  The exception range table pointer is now in
 	the CIE.
	* frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta.
	(count_fdes, add_fdes, get_cie): Adjust.
	(cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses.

	From H.J. Lu:
	* frame.c (count_fdes, add_fdes): Skip linked once FDE entries.

From-SVN: r16192
1997-10-26 14:54:42 -05:00
Jeff Law
bd123dc9f2 Opps. Checked in some development patches by accident.
From-SVN: r16189
1997-10-26 11:55:13 -07:00
Richard Henderson
962867229a alias.c (memrefs_conflict_p): Treat arg_pointer_rtx just like stack_pointer_rtx.
* alias.c (memrefs_conflict_p): Treat arg_pointer_rtx just
        like stack_pointer_rtx.

From-SVN: r16188
1997-10-26 11:48:31 -07:00
Manfred Hollstein
361e618f25 Makefile.in (bootstrap-lean): Combined with `normal' bootstrap targets using "$@" to provide support for...
* Makefile.in (bootstrap-lean): Combined with `normal' bootstrap
        targets using "$@" to provide support for similar but not identical
        targets without having to duplicate code.
        (bootstrap4): New goal.

From-SVN: r16187
1997-10-26 11:45:07 -07:00
Manfred Hollstein
cc71c0ca1f Makefile.in (bootstrap-lean): Combined with `normal' bootstrap targets using "$@" to provide support for...
* Makefile.in (bootstrap-lean): Combined with `normal' bootstrap
        targets using "$@" to provide support for similar but not identical
        targets without having to duplicate code.

From-SVN: r16186
1997-10-26 11:44:33 -07:00
Jeffrey A Law
adb9effb26 Take out find_base_value change -- not needed, only the find_base_term
change was needed.

From-SVN: r16185
1997-10-26 11:39:57 -07:00
Manfred Hollstein
e85988b5d5 Makefile.in (compare, [...]): Combined to one ruleset determining actions to be performed via $@.
* Makefile.in (compare, compare-lean, compare3): Combined to one
        ruleset determining actions to be performed via $@.
        (compare4, compare4-lean): New targets.
        (gnucompare, gnucompare3): Combined to one ruleset determining
        actions to be performed via $@. Also, note which files failed
        the comparison test in .bad_compare.
        (gnucompare-lean, gnucompare3-lean, gnucompare4-lean): New targets.

From-SVN: r16184
1997-10-26 11:28:57 -07:00
Jeffrey A Law
7337c67fcd * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions.
From-SVN: r16183
1997-10-26 11:21:28 -07:00
Jeffrey A Law
6d849a2abd alias.c (find_base_value): Handle PRE_INC, PRE_DEC, POST_INC, and POS_DEC.
* alias.c (find_base_value): Handle PRE_INC, PRE_DEC, POST_INC,
        and POS_DEC.
        (find_base_term): Likewise.

        * alias.c (true_dependence): Fix typo.

From-SVN: r16182
1997-10-26 10:38:13 -07:00
Toon Moene
91585c63e4 fold-const (fold): Also simplify FLOOR_DIV_EXPR to EXACT_DIV_EXPR if...
* fold-const (fold): Also simplify FLOOR_DIV_EXPR to EXACT_DIV_EXPR
        if the dividend is a multiple of the divisor.

From-SVN: r16181
1997-10-26 10:05:24 -07:00
Jeffrey A Law
6d6d0fa07e toplev.c (flag_rerun_loop_opt): New variable.
* toplev.c (flag_rerun_loop_opt): New variable.
        (f_options): Handle -frerun-loop-opt.
        (rest_of_compilation): If -frerun-loop-opt, then run the loop
        optimizer twice.
        (main): Enable -frerun-loop-opt by default for -O2 or greater.

From-SVN: r16180
1997-10-26 09:56:15 -07:00
Jeffrey A Law
da0af5a56f loop.c (simplify_giv_expr): Adding two invariants results in an invariant.
* loop.c (simplify_giv_expr): Adding two invariants results
        in an invariant.

From-SVN: r16179
1997-10-26 09:20:07 -07:00
Richard Henderson
ca0f22208f expr.c (get_inner_reference): Remove the array bias after converting the index to Pmode.
* expr.c (get_inner_reference): Remove the array bias after
        converting the index to Pmode.

From-SVN: r16178
1997-10-26 09:13:10 -07:00
Jeffrey A Law
a6f7ba1798 mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug.
* mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug.
        (TARGET_MULT_BUG): Define.
        (TARGET_DEFAULT): Default to TARGET_MULT_BUG.
        * mn10300.md (mulsi3): Handle TARGET_MULT_BUG.

From-SVN: r16173
1997-10-25 12:16:50 -06:00
Brendan Kehoe
fc55478797 Reverse this, bad call on my part:
1,4d0
< Fri Oct 24 17:49:10 1997  Jim Wilson  <wilson@cygnus.com>
<
< 	* integrate.c (save_for_inline_copying): Copy parm_reg_stack_loc.
<

From-SVN: r16172
1997-10-25 12:23:10 -04:00
Jim Wilson
f15e65f1fe integrate.c (save_for_inline_copying): Copy parm_reg_stack_loc.
* integrate.c (save_for_inline_copying): Copy parm_reg_stack_loc.

fixes many of the inlining problems causing various suite++ and perennial
test failures, among others

From-SVN: r16171
1997-10-24 20:50:35 -04:00
Jeffrey A Law
17ad8a3bb9 mn10200.c (indirect_memory_operand): Delete unused function.
* mn10200.c (indirect_memory_operand): Delete unused function.
        * mn10200.h (EXTRA_CONSTRAINT): Handle 'R'.
        * mn10200.md (bset, bclr insns): Handle output in a reg too.

From-SVN: r16169
1997-10-24 17:36:42 -06:00
Richard Henderson
e16b49d379 alpha.md (call patterns): Revert Oct 16 change...
* alpha.md (call patterns): Revert Oct 16 change; if we are to elide
the callee's ldgp, we must do it ourselves, and we use the jsr tag
for more than scheduling.

From-SVN: r16168
1997-10-24 15:57:54 -07:00
Jeff Law
bf4219f03f Another goof in last change.
From-SVN: r16165
1997-10-24 13:56:45 -06:00
Doug Evans
27f654110e * sparc/sparc.h (ASM_SPEC): Delete asm_arch.
From-SVN: r16164
1997-10-24 19:39:08 +00:00
Doug Evans
e632a26c1d (ASM_SPEC): Delete asm_arch.
From-SVN: r16163
1997-10-24 19:36:54 +00:00
Jeff Law
371036e032 Fxi typo in last change.
From-SVN: r16162
1997-10-24 13:34:58 -06:00
Jeffrey A Law
e9ad457396 mn10300.c (symbolic_operand, [...]): New functions.
* mn10300.c (symbolic_operand, legitimize_address): New functions.
        * mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address.
        (GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic.

From-SVN: r16158
1997-10-24 13:18:29 -06:00
Jeffrey A Law
66724f0abd * version.c: Bump for snapshot.
From-SVN: r16156
1997-10-23 09:34:36 -06:00
J"orn Rennecke
c401498bbf dbxout.c (dbxout_start_new_source_file): Use output_quoted_string for FILENAME.
* dbxout.c (dbxout_start_new_source_file): Use output_quoted_string
	for FILENAME.

From-SVN: r16155
1997-10-23 13:11:19 +01:00
Jason Merrill
7b4f18a381 pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.
* pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.

Fixes libstdc++ failure.

From-SVN: r16153
1997-10-23 05:55:55 -04:00
Jeffrey A Law
56bf1fd97a toplev.c (flag_exceptions): Default value is 2.
* toplev.c (flag_exceptions): Default value is 2.
        (compile_file): If flag_exceptions still has the value 2, then
        set it to 0.

        * lex.c (lang_init): Enable flag_exceptions by default if no
        command line switch was specified.
Gross hacks to allow front-ends to override -fexceptions.

From-SVN: r16152
1997-10-22 19:29:14 -06:00
H.J. Lu
1181d2d553 libio.h (_IO_LOCK_T): Handle glibc 2 when _IO_MTSAFE_IO is not defined.
* libio.h (_IO_LOCK_T): Handle glibc 2 when _IO_MTSAFE_IO is
        not defined.

        * iovsscanf.c (vsscanf): Make it weak alias of _IO_vsscanf if
        __linux__ is defined instead of __ELF__

        * config/linuxlibc1.mt (USER_INCLUDES): Add libio.h.
OK'd by Ulrich.

From-SVN: r16151
1997-10-22 19:17:58 -06:00
Brendan Kehoe
4966381af5 method.c (build_template_parm_names, [...]): Add static to definitions.
* method.c (build_template_parm_names, build_decl_overload_real):
        Add static to definitions.
        * pt.c (add_to_template_args, note_template_header,
        processing_explicit_specialization, type_unification_real): Likewise.
        ({determine,check}_explicit_specialization): Use a single string for
        error messages.

fixes problems building with sunos4 system cc

From-SVN: r16150
1997-10-22 20:00:20 -04:00
Jeffrey A Law
a04232e5ff rs6000.c (struct machine_function): Add pic_offset_table_rtx.
* rs6000.c (struct machine_function): Add pic_offset_table_rtx.
        (rs6000_save_machine_status): Save pic_offset_table_rtx.
        (rs6000_restore_machine_status: Restore pic_offset_table_rtx.

From-SVN: r16149
1997-10-22 15:10:49 -06:00
Richard Henderson
83ffecd201 com.c (ffecom_expr_): Take an new arg TREE_TYPE that if non-null specifies the type in which to do...
* com.c (ffecom_expr_): Take an new arg TREE_TYPE that if non-null
        specifies the type in which to do the calculation.  Change all callers.
        [FFEBLD_opARRAYREF]: Force the index expr to use sizetype.

From-SVN: r16148
1997-10-22 11:38:47 -07:00
Jeffrey A Law
0bd83abd44 local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions are shared.
* local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions
        are shared.

From-SVN: r16147
1997-10-22 09:58:33 -06:00
Jeffrey A Law
b22b9b3ef2 rs6000.md (*movsi_got_internal_mem): New pattern.
* rs6000.md (*movsi_got_internal_mem): New pattern.
        (*movsi_got_internal_mem splitter): New define_split.
Fixes some egcs bugs.

From-SVN: r16146
1997-10-22 00:31:00 -06:00
Michael Meissner
70cfa7adbd Add documentation for Haifa ISSUE_RATE
From-SVN: r16145
1997-10-22 02:06:18 +00:00
Jim Wilson
c1e385dbd1 Fix typo in last obstack.h change.
* obstack.h (obstack_empty_p): Fix spurious space after backslash.

From-SVN: r16144
1997-10-21 18:16:10 -07:00
Jeffrey A Law
c6ee9150da mn10300.md (movqi, movhi): Avoid using address registers as destinations unless absolutely necessary.
* mn10300.md (movqi, movhi): Avoid using address registers as
        destinations unless absolutely necessary.

From-SVN: r16141
1997-10-21 18:41:31 -06:00
Geoff Keating
1a98615242 rs6000.c: Avoid creating a stack frame under SYSV ABI if we only need to save LR.
* rs6000.c: Avoid creating a stack frame under SYSV ABI if we
        only need to save LR.

From-SVN: r16140
1997-10-21 18:31:13 -06:00
Jeffrey A Law
d5255ba2cb * mn10200.c (expand_prologue): Fix typo.
From-SVN: r16139
1997-10-21 14:58:16 -06:00
Jeff Law
9d2128b88e mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed addresses.
* mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed
        addresses.
        * mn10200.md (neghi2): Provide an alternative which works if
        the input and output register are the same.

[[Split portion of a mixed commit.]]

From-SVN: r16137.2
1997-10-21 13:55:51 -06:00
Jeff Law
e92f9bcf4d mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed addresses.
* mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed
        addresses.
        * mn10200.md (neghi2): Provide an alternative which works if
        the input and output register are the same.

From-SVN: r16136
1997-10-21 13:52:12 -06:00
Jeffrey A Law
576e5accbd mn10300.c (print_operand): Handle 'S'.
* mn10300.c (print_operand): Handle 'S'.
        * mn10300.md (ashlsi3, lshrsi3, ashrsi3): Use %S for
        shift amount in last alternative

From-SVN: r16134
1997-10-21 13:10:24 -06:00
Jeffrey A Law
5d29a95f92 mn10300.c (expand_epilogue): Rework to handle register restores in "ret" and "retf" instructions correctly.
* mn10300.c (expand_epilogue): Rework to handle register restores
        in "ret" and "retf" instructions correctly.

From-SVN: r16132
1997-10-21 10:04:57 -06:00
Jim Wilson
3bf1b08254 Patches to fix minor optimizer bugs
Patches to fix minor optimizer bugs
	* expmed.c (extract_bit_field): Don't make flag_force_mem disable
	extzv for memory operands.
	* cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse
	redundant conditional moves to single operand.

From-SVN: r16129
1997-10-20 16:49:48 -07:00
Doug Evans
ded17aad24 Update sparc docs.
From-SVN: r16127
1997-10-20 22:06:10 +00:00
Nick Clifton
ddbd8d3619 v850.h: Move define of __v850__ from CPP_PREDEFINES to CPP_SPEC.
* v850.h: Move define of __v850__ from CPP_PREDEFINES
        to CPP_SPEC.

        * xm-v850.h: Use __v850 rather than __v850__ to
        identify v850 port.

From-SVN: r16126
1997-10-20 15:33:53 -06:00
Doug Evans
617b50b641 Expect SPARC_DEFAULT_CMODEL to be overridden in cover file.
From-SVN: r16125
1997-10-20 21:29:01 +00:00
Doug Evans
202fd1d57e Update copyright year.
From-SVN: r16124
1997-10-20 21:28:27 +00:00
Jim Wilson
a944a4ebfd Fix O32 -p bug reported by Ralf Baechle.
* mips/mips.c (compute_frame_size): Not a leaf function if
	profile_flag set.

From-SVN: r16110
1997-10-20 14:16:21 -07:00
Doug Evans
f0a9fa6c6a Lotsa sparc stuff.
From-SVN: r16109
1997-10-20 20:50:34 +00:00
Doug Evans
a0a301fc97 sparc.h (SPARC_V9,SPARC_ARCH64): Delete.
* sparc/sparc.h (SPARC_V9,SPARC_ARCH64): Delete.
	(DEFAULT_ARCH32_P): New macro.
	(TARGET_ARCH{32,64}): Allow compile time or runtime selection.
	(enum cmodel): Declare.
	(sparc_cmodel_string,sparc_cmodel): Declare.
	(SPARC_DEFAULT_CMODEL): Provide default.
	(TARGET_{MEDLOW,MEDANY}): Renamed to TARGET_CM_{MEDLOW,MEDANY}.
	(TARGET_FULLANY): Deleted.
	(TARGET_CM_MEDMID): New macro.
	(CPP_CPU_DEFAULT_SPEC): Renamed from CPP_DEFAULT_SPEC.
	(ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC.
	(CPP_PREDEFINES): Take out stuff now handled by %(cpp_arch).
	(CPP_SPEC): Rewrite.
	(CPP_ARCH{,32,64,_DEFAULT}_SPEC): New macros.
	(CPP_{ENDIAN,SUBTARGET}_SPEC): New macros.
	(ASM_ARCH{,32,64,_DEFAULT}_SPEC): New macros.
	(ASM_SPEC): Add %(asm_arch).
	(EXTRA_SPECS): Rename cpp_default to cpp_cpu_default.
	Rename asm_default to asm_cpu_default.
	Add cpp_arch32, cpp_arch64, cpp_arch_default, cpp_arch, cpp_endian,
	cpp_subtarget, asm_arch32, asm_arch64, asm_arch_default, asm_arch.
	(NO_BUILTIN_{PTRDIFF,SIZE}_TYPE): Define ifdef SPARC_BI_ARCH.
	({PTRDIFF,SIZE}_TYPE): Provide 32 and 64 bit values.
	(MASK_INT64,MASK_LONG64): Delete.
	(MASK_ARCH64): Renamed to MASK_64BIT.
	(MASK_{MEDLOW,MEDANY,FULLANY,CODE_MODEL}): Delete.
	(EMBMEDANY_BASE_REG): Renamed from MEDANY_BASE_REG.
	(TARGET_SWITCHES): Always provide 64 bit options.
	(ARCH64_SWITCHES): Delete.
	(TARGET_OPTIONS): New option -mcmodel=.
	(INT_TYPE_SIZE): Always 32.
	(MAX_LONG_TYPE_SIZE): Define ifdef SPARC_BI_ARCH.
	(INIT_EXPANDERS): sparc64_init_expanders renamed to sparc_init_....
	(FUNCTION_{,BLOCK_}PROFILER): Delete TARGET_EMBMEDANY support.
	(PRINT_OPERAND_PUNCT_VALID_P): Add '_'.
	* sparc/linux-aout.h (CPP_PREDEFINES): Take out stuff handled by
	CPP_SPEC.
	(CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC.
	* sparc/linux.h: Likewise.
	* sparc/linux64.h (SPARC_V9,SPARC_ARCH64): Delete.
	(ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC.
	(TARGET_DEFAULT): Delete MASK_LONG64, MASK_MEDANY, add MASK_64BIT.
	(SPARC_DEFAULT_CMODEL): Define.
	(CPP_PREDEFINES): Take out stuff handled by CPP_SPEC.
	(CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC.
	(LONG_DOUBLE_TYPE_SIZE): Define.
	(ASM_SPEC): Add %(asm_arch).
	* sparc/sol2.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC.
	(CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC.
	(TARGET_CPU_DEFAULT): Add ultrasparc case.
	* sparc/sp64-aout.h (SPARC_V9,SPARC_ARCH64): Delete.
	(TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT.
	(SPARC_DEFAULT_CMODEL): Define.
	* sparc/sp64-elf.h (SPARC_V9,SPARC_ARCH64): Delete.
	(TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT.  Delete
	MASK_LONG64, MASK_MEDANY.
	(SPARC_DEFAULT_CMODEL): Define.
	(CPP_PREDEFINES): Delete.
	(CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC.
	(ASM_SPEC): Add %(asm_arch).
	(LONG_DOUBLE_TYPE_SIZE): Define.
	(DWARF2_DEBUGGING_INFO): Define.
	* sparc/splet.h (CPP_SPEC): Delete.
	* sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC.
	(FUNCTION_BLOCK_PROFILER): Delete TARGET_EMBMEDANY support.
	(BLOCK_PROFILER): Likewise.
	* sparc/sparc.c (sparc_cmodel_string,sparc_cmodel): New globals.
	(sparc_override_options): Handle code model selection.
	(sparc_init_expanders): Renamed from sparc64_init_expanders.
	* sparc/sparc.md: TARGET_<code_model> renamed to TARGET_CM_....
	TARGET_MEDANY renamed to TARGET_CM_EMBMEDANY.
	(sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_....
	(sethi_di_fullany): Delete.

From-SVN: r16108
1997-10-20 20:49:22 +00:00
Geoff Keating
2d5b6dea25 t-ppccomm: Use -msdata=none for crtstuff.
* rs6000/t-ppccomm: Use -msdata=none for crtstuff.
Should fix ctor/dtor problems on ppc-linux.

From-SVN: r16107
1997-10-20 14:13:24 -06:00
Jason Merrill
92b968383e except.c (expand_exception_blocks): Call do_pending_stack_adust.
* except.c (expand_exception_blocks): Call do_pending_stack_adust.
	(expand_end_catch_block): Likewise.
	(expand_end_eh_spec): Likewise.

From-SVN: r16106
1997-10-20 15:14:09 -04:00
Mark Mitchell
92eca6404c decl.c (duplicate_decls): Handle template specializations correctly.
Mon Oct 20 11:44:20 1997  Mark Mitchell  <mmitchell@usa.net>

	* decl.c (duplicate_decls): Handle template specializations
	correctly.
	* error.c (dump_function_name): Fix printing of specializations of
	member functions that are not member templates.
	* cp-tree.h (processing_specialization): Make global.
	* pt.c (processing_specialization): Likewise.
	* lex.c (cons_up_default_function): Save and restore
	processing_specialization to avoid confusion.

From-SVN: r16101
1997-10-20 14:46:24 -04:00
Jason Merrill
a6967cc077 decl.c (init_decl_processing): Give null_node unknown* type.
* decl.c (init_decl_processing): Give null_node unknown* type.
	* typeck.c (comp_target_types): Handle UNKNOWN_TYPE.
	(common_type): Likewise.
	* error.c (args_as_string): Recognize null_node.

From-SVN: r16100
1997-10-20 14:09:06 -04:00
Klaus Kaempf
3a133c72de vms.h (DIVSI3_LIBCALL): OTS$ functions are upper case.
* alpha/vms.h (DIVSI3_LIBCALL): OTS$ functions are upper case.
        (DIVDI3_LIBCALL, UDIVSI3_LIBCALL, UDIVDI3_LIBVALL): Likewise.
        (MODSI3_LIBCALL, MODDI3_LIBCALL): Likewise.
        (UMODSI3_LIBCALL, UMODDI3_LIBCALL): Likewise.
        * alpha/alpha.md (arg_home): Likewise.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>
Co-Authored-By: Richard Kenner <kenner@vlsi1.ultra.nyu.edu>

From-SVN: r16099
1997-10-20 09:50:29 -06:00
Klaus Kaempf
a3b0df2d4a alpha.c (output_prolog, VMS): Use alloca for entry_label and don't truncate to 64 characters.
* alpha.c (output_prolog, VMS): Use alloca for entry_label and don't
        truncate to 64 characters.

vmskrunch changes need this.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>
Co-Authored-By: Richard Kenner <kenner@vlsi1.ultra.nyu.edu>

From-SVN: r16098
1997-10-20 02:29:55 -06:00
Jeff Law
c12894e1c3 alpha.c (vmskrunch): Delete
* alpha/alpha.c (vmskrunch): Delete
        * alpha/vms.h (ENCODE_SECTION_INFO, ASM_DECLARE_FUNCTION_NAME): Delete.

        * make-l2.com: Support openVMS/Alpha.

        * vmsconfig.com: Fix to work on openVMS/Alpha and openVMS/VAX.

Some patches from Klaus.

From-SVN: r16097
1997-10-20 02:11:49 -06:00
J"orn Rennecke
7d4f2e6c2a * longlong.h (count_leading_zeros): Add missing casts to USItype.
From-SVN: r16096
1997-10-19 18:56:45 -06:00
Jeffrey A Law
decd44aced * i386/bsd386.h (ASM_COMMENT_START): Define.
From-SVN: r16095
1997-10-19 18:40:44 -06:00
Doug Evans
200d7a3251 Undo cvs entry 1.4 "Reorg sethi_{hi,si} patterns." and add comment why.
From-SVN: r16080
1997-10-19 16:46:47 +00:00
Jeff Law
4a5121b59a Initial revision
From-SVN: r16070
1997-10-19 10:29:32 -06:00
Jason Merrill
d1485032c8 tree.c (restore_tree_status): Also free up temporary storage when we finish a toplevel function.
* tree.c (restore_tree_status): Also free up temporary storage
	when we finish a toplevel function.
	(dump_tree_statistics): Print stats for backend obstacks.

	* libgcc2.c (__throw): Don't copy the return address.
	* dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address.

	* except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized).
	* toplev.c (main): Initialize exceptions_via_longjmp.

	* tree.c: Add extra_inline_obstacks.
	(save_tree_status): Use it.
	(restore_tree_status): If this is a toplevel inline obstack and we
	didn't want to save anything on it, recycle it.
	(print_inline_obstack_statistics): New fn.
	* function.c (pop_function_context_from): Pass context to
	restore_tree_status.
	* obstack.h (obstack_empty_p): New macro.

From-SVN: r16050
1997-10-18 17:10:32 -04:00
Doug Evans
6bd35f8671 * expr.c (use_group_regs): Don't call use_reg for MEMs.
From-SVN: r16046
1997-10-18 19:48:25 +00:00
Jeffrey A Law
6981eacffd * i386/freebsd.h (ASM_COMMENT_START): Fix.
From-SVN: r15993
1997-10-18 00:52:58 -06:00
Jim Wilson
1933ec7e4e v850.c (ep_memory_offset): New function.
* v850.c (ep_memory_offset): New function.
        (ep_memory_operand, substitute_ep_register, v850_reorg): Call it.

        * v850.h (CONST_OK_FOR_*): Add and correct comments.
        (CONSTANT_ADDRESS_P): Add comment.
        (EXTRA_CONSTRAINT): Define 'U'.
        * v850.md: Add comments on bit field instructions.
        (addsi3): Delete &r/r/r alternative.  Add r/r/U alternative.
        (lshrsi3): Use N not J constraint.

        * v850.md (v850_tst1+1): New define_split for tst1 instruction.

        * v850.c (reg_or_0_operand): Call register_operand.
        (reg_or_int5_operand): Likewise.
        * v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros.
        (TARGET_SWITCHES): Add "big-switch".
        (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE,
        ASM_OUTPUT_BEFORE_BASE_LABEL): Add support for TARGET_BIG_SWITCH.
        (CASE_DROPS_THROUGH): Comment out.
        (CASE_VECTOR_PC_RELATIVE, JUMP_TABLES_IN_TEXT_SECTION): Define.
        * v850.md (cmpsi): Delete compare mode.
        (casesi): New pattern.

        * v850.h (CONST_OK_FOR_N): Delete redundant compare against zero.
        * v850.md (ashlsi3): Use SImode not QImode for shift count.
        (lshrsi3): Likewise.

        * v850.c (print_operand): Add 'c', 'C', and 'z' support.  Delete
        unreachable switch statement after 'b' support.  Remove "b" from
        strings for 'b' support.
        * v850.md (branch_normal, branch_invert): Change %b to b%b.

v850 patches from Jim.

From-SVN: r15992
1997-10-17 23:46:19 -06:00
Jeffrey A Law
13c2de98de Makefile.in (LIBGCC2_CFLAGS): Avoid a backslash then an empty line if @inhibit_libc@ is empty.
* Makefile.in (LIBGCC2_CFLAGS): Avoid a backslash then an
        empty line if @inhibit_libc@ is empty.

From-SVN: r15991
1997-10-17 23:31:26 -06:00
Robert Lipe
b2167beef2 sco5.h: Let ELF use dwarf2 unwinding.
* i386/sco5.h: Let ELF use dwarf2 unwinding.  COFF uses sjlj.
        (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Defined.
        (EH_FRAME_SECTION_ASM_OP_COFF): Likewise.
        (DWARF2_UNWIND_INFO): Let this track object file format.
        (EXTRA_SECTIONS): Add in_eh.
        (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Define.
        (EH_FRAME_SECTION_ASM_OP_COFF): Likewise.

From-SVN: r15990
1997-10-17 23:21:23 -06:00
Jason Merrill
8070c78887 * tree.h, vector.h: Fix accidental divergence from SGI release.
From-SVN: r15989
1997-10-17 22:09:13 -04:00
Doug Evans
c12158208e * ginclude/va-sparc.h: Rewrite v9 support.
From-SVN: r15987
1997-10-17 23:26:02 +00:00
Doug Evans
2191290cb9 Rewrite v9 support.
From-SVN: r15986
1997-10-17 23:25:26 +00:00
Doug Evans
bf65b159ec (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use
fmovd so it works if a quad float ends up in one of the upper 32
	float regs.

From-SVN: r15985
1997-10-17 23:21:12 +00:00
Doug Evans
9d162eb296 sparc.c (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD...
* sparc.c (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use
fmovd so it works if a quad float ends up in one of the upper 32
float regs.

From-SVN: r15984
1997-10-17 23:20:03 +00:00
David S. Miller
7e37212eeb sparc.md (pic_{lo_sum,sethi}_di): New patterns necessary for PIC support on sparc64.
* sparc/sparc.md (pic_{lo_sum,sethi}_di): New patterns
	necessary for PIC support on sparc64.

From-SVN: r15982
1997-10-17 23:01:29 +00:00
Doug Evans
bd6c666f80 Reorg sethi_{hi,si} patterns.
From-SVN: r15979
1997-10-17 22:45:15 +00:00
Jeff Law
67c5b7ada6 Add some stuff.
From-SVN: r15978
1997-10-17 16:16:29 -06:00
Doug Evans
f4f8e3703a sparc.c (output_double_int): Output DI mode values correctly when HOST_BITS_PER_WIDE_INT is 64.
* sparc/sparc.c (output_double_int): Output DI mode values
	correctly when HOST_BITS_PER_WIDE_INT is 64.

From-SVN: r15977
1997-10-17 21:59:06 +00:00
David S. Miller
da2a90f71a sparc.h (FUNCTION_PROFILER): Fix format string when TARGET_MEDANY.
* sparc/sparc.h (FUNCTION_PROFILER): Fix format string when
	TARGET_MEDANY.

From-SVN: r15974
1997-10-17 21:35:20 +00:00
David S. Miller
64562cc84e * sparc/sparc.c (dwarf2out_cfi_label): Extern no longer needed.
From-SVN: r15972
1997-10-17 21:21:12 +00:00
David S. Miller
bf2a2c6b9f * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2.
From-SVN: r15971
1997-10-17 21:16:36 +00:00
Doug Evans
9ff84e679a First pass at updating to current sparc v9 abi.
From-SVN: r15969
1997-10-17 20:41:17 +00:00
Doug Evans
4fb4e4b8be sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS.
* sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS.
	* sparc/sparc.h (PROMOTE_MODE): Promote small ints if arch64.
	(PROMOTE_FUNCTION_ARGS,PROMOTE_FUNCTION_RETURN): Define.
	(SPARC_FIRST_FP_REG, SPARC_FP_REG_P): New macros.
	(SPARC_{OUTGOING,INCOMING}_INT_ARG_FIRST): New macros.
	(SPARC_FP_ARG_FIRST): New macro.
	(CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now.
	(REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER): Reorganize fp regs.
	(NPARM_REGS): There are 32 fp argument registers now.
	(FUNCTION_ARG_REGNO_P): Likewise.
	(FIRST_PARM_OFFSET): Update to new v9 abi.
	(REG_PARM_STACK_SPACE): Define for arch64.
	(enum sparc_arg_class): Delete.
	(sparc_arg_count,sparc_n_named_args): Delete.
	(struct sparc_args): Redefine and use for arch32 as well as arch64.
	(GET_SPARC_ARG_CLASS,ROUND_REG,ROUND_ADVANCE): Delete.
	(FUNCTION_ARG_ADVANCE): Rewrite.
	(FUNCTION_ARG,FUNCTION_INCOMING_ARG): Rewrite.
	(FUNCTION_ARG_{PARTIAL_NREGS,PASS_BY_REFERENCE}): Rewrite.
	(FUNCTION_ARG_CALLEE_COPIES): Delete.
	(FUNCTION_ARG_{PADDING,BOUNDARY}): Define.
	(STRICT_ARGUMENT_NAMING): Define.
	(doublemove_string): Declare.
	* sparc/sparc.c (sparc_arg_count,sparc_n_named_args): Delete.
	(single_move_string): Use GEN_INT, and HOST_WIDE_INT.
	(doublemove_string): New function.
	(output_move_quad): Clean up some of the arch64 support.
	(compute_frame_size): Add REG_PARM_STACK_SPACE if arch64.
	Don't add 8 bytes of reserved space if arch64.
	(sparc_builtin_saveregs): Combine arch32/arch64 versions.
	(init_cumulative_args): New function.
	(function_arg_slotno): New static function.
	(function_arg,function_arg_partial_nregs): New functions.
	(function_arg_{pass_by_reference,advance}): New functions.
	(function_arg_padding): New function.
First pass at updating to current v9 abi.

From-SVN: r15968
1997-10-17 20:39:37 +00:00
Jeff Law
941b1165c2 Fix from Joern.
From-SVN: r15955
1997-10-17 09:54:01 -06:00
Christian Iseli
f22376c716 regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P for hard regs to determine base and index...
* regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P
        for hard regs to determine base and index registers.

From-SVN: r15954
1997-10-17 09:46:57 -06:00
Christian Iseli
b8fb2d721d reload.c (debug_reload_to_stream): New function.
* reload.c (debug_reload_to_stream): New function.  Specify stream
        into which to write debug info.
        (debug_reload): Modify to call debug_reload_to_stream with stderr.
Thanks.  Installed.

From-SVN: r15953
1997-10-17 09:40:52 -06:00
Richard Henderson
b79ee7eb70 combine.c (can_combine_p): Don't combine with an asm whose output is a hard register.
* combine.c (can_combine_p): Don't combine with an asm whose
        output is a hard register.

From-SVN: r15940
1997-10-16 15:06:43 -07:00
Mike Stump
5c19a35643 c-decl.c (start_struct): Ensure that structs with forward declarations are in fact packed when...
* c-decl.c (start_struct): Ensure that structs with forward
        declarations are in fact packed when -fpack-struct is given.

        * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if
        we are packing a structure.  This allows a structure with only
        bytes to be aligned on a byte boundary and have no padding on a
        m68k.

From-SVN: r15939
1997-10-16 15:45:24 -06:00
Judy Goldberg
bdd7e652f4 pt.c (determine_explicit_specialization): Initialize "dummy" to keep Purify quiet.
* pt.c (determine_explicit_specialization): Initialize "dummy"
        to keep Purify quiet.

From-SVN: r15938
1997-10-16 15:33:36 -06:00
Richard Kenner
02bef6da38 rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record.
* rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record.
Bring over from gcc2.

From-SVN: r15937
1997-10-16 15:16:09 -06:00
Richard Henderson
9ecc37f0e2 alpha.c (alpha_return_addr_rtx): New variable.
* alpha.c (alpha_return_addr_rtx): New variable.
        (alpha_save_machine_status): New; save it.
        (alpha_restore_machine_status): New; restore it.
        (alpha_init_expanders): New; clear it.
        (alpha_return_addr): New; set it.
        (alpha_ra_ever_killed): New; if alpha_return_addr_rtx, regs_ever_live
        is overly conservative, so search the insns explicitly.
        (alpha_sa_mask [VMS]): Check alpha_ra_ever_killed.
        (alpha_sa_size [VMS && !VMS]): Likewise.
        * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr.
        (INIT_EXPANDERS): New definition.

        * alpha.c: Move REG_PV, REG_RA somewhere more visible in the file.
        (output_prolog [!VMS]): Use them.

        * alpha.c (output_prolog [!VMS]): Move gp detection to ...
        (alpha_does_function_need_gp): ... a new function.  Refine the
        CALL_INSN test to just TYPE_JSR.
        * alpha.md (most call insns): Fix some jsr/ibr type transpositions.

From-SVN: r15936
1997-10-16 11:37:59 -07:00
Jeffrey A Law
bda2ffefc8 * version.c: Bump for snapshot.
From-SVN: r15932
1997-10-16 09:39:00 -06:00
Jeff Law
1510f52e3e configure.in: Create compatibility code in bits/libc-lock.h file.
* configure.in: Create compatibility code in bits/libc-lock.h file.


        * libio.h (_IO_LOCK_T): Handle glibc 2 when _IO_MTSAFE_IO is
        not defined.

        * filedoalloc.c (_IO_file_doallocate): Don't call
        _IO_cleanup_registration_needed if __linux__ is defined.

        * iofclose.c (fclose): Make it weak alias of _IO_fclose if
        __ELF__ is defined.

        * iovsprintf.c (vsprintf): Make it weak alias of _IO_vsprintf
        if __ELF__ is defined.

        * iovsscanf.c (vsscanf): Make it weak alias of _IO_vsscanf if
        __ELF__ is defined.

        * config/linuxlibc1.mt (MT_CFLAGS): Defined as -D_G_HAVE_MMAP.
        (IO_OBJECTS): Add filedoalloc.o fileops.o genops.o iofclose.o
        iovsprintf.o iovsscanf.o strops.o.

From-SVN: r15931
1997-10-16 09:30:26 -06:00
Paul Koning
022abf9081 Make-lang.in (stmp-f2c.h): Don't configure the runtime directory if LANGUAGES does not include f77.
* Make-lang.in (stmp-f2c.h): Don't configure the runtime
        directory if LANGUAGES does not include f77.

From-SVN: r15930
1997-10-16 02:02:09 -06:00
Ian Lance Taylor
a6e74b833c asprintf.c: Consistently use either stdarg or varargs.
* asprintf.c: Consistently use either stdarg or varargs.

Bring over from devo.

From-SVN: r15929
1997-10-16 01:39:03 -06:00
Jason Merrill
2636fde4ba method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
* method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
	(build_overload_int): Not here.

Wed Oct 15 00:35:28 1997  Mike Stump  <mrs@wrs.com>

	* class.c (build_type_pathname): Remove.
	(prepare_fresh_vtable): Fix problem with complex MI vtable names.

From-SVN: r15928
1997-10-16 03:20:46 -04:00
Richard Kenner
96b63cd7a2 pa.c (move_operand): Respect -mdisable-indexing.
* pa.c (move_operand): Respect -mdisable-indexing.
        * pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
Bring over from gcc2.  Fixes ada -O2 bootstrap.

From-SVN: r15927
1997-10-15 21:37:28 -06:00
David Edelsohn
f192bf8b22 Add patch from Edelsohn
From-SVN: r15918
1997-10-16 01:37:11 +00:00
Richard Henderson
2ea844d394 alpha.c (final_prescan_insn): Gut, remove and transform to ...
* alpha.c (final_prescan_insn): Gut, remove and transform to ...
        (alpha_handle_trap_shadows): ... a new function.  Handle the entire
        function in one go.  Emit RTL for trapb, instead of printf directly.
        (alpha_reorg): New function.  Call alpha_handle_trap_shadows.
        (trap_pending): Kill global variable.
        (output_epilog): Don't call final_prescan_insn.
        (struct shadow_summary): Elide $31 and $f31; now it fits in a word.
        * alpha.h (FINAL_PRESCAN_INSN): Remove.
        (MACHINE_DEPENENT_REORG): Define.
        * alpha.md (jsr patterns with trapb): Stupid and useless.  Kill.
        (trapb): New insn.

From-SVN: r15917
1997-10-15 18:23:23 -07:00
Richard Henderson
74835ed802 alpha.h (ISSUE_RATE): Define.
* alpha.h (ISSUE_RATE): Define.
        * alpha.c (alpha_adjust_cost): Handle EV5 mult delay; don't apply
        EV4 adjustments to EV5.
        * alpha.md: Remove all scaling from function unit delays.  Rework
        EV5 function units to match the CPU.
        (umuldi3_highpart): EV5 added the IMULH insn class.

From-SVN: r15916
1997-10-15 18:16:42 -07:00
Richard Henderson
ee80685a3b Forgot to commit last night.
From-SVN: r15915
1997-10-15 17:47:47 -06:00
Jeffrey A Law
cdc0de30d8 pa.c (following_call): Fail if the CALL_INSN is an indirect call.
* pa.c (following_call): Fail if the CALL_INSN is an indirect
        call.
Brought over from devo.

From-SVN: r15914
1997-10-15 17:41:10 -06:00
Jason Merrill
af4142d50b restore dwarf2 prototypes
From-SVN: r15912
1997-10-15 13:19:40 -04:00
Richard Henderson
0e52c1777d signal_.c (G77_signal_0): Make return type sig_pf as well.
* libF77/signal_.c (G77_signal_0): Make return type sig_pf as well.
        * libI77/fio.h: Include <string.h> if STDC_HEADERS.
        * libU77/chmod_.c: Likewise.

From-SVN: r15911
1997-10-15 10:02:53 -06:00
Richard Henderson
38bf38c1bc man.c (find_man_formatter): Don't cast getenv(), but provide a minimal declaration at top level.
* info/man.c (find_man_formatter): Don't cast getenv(), but provide
        a minimal declaration at top level.

        * makeinfo/makeinfo.c: Don't redefine alloca if it is already defined.

From-SVN: r15910
1997-10-15 09:49:40 -06:00
Jeff Law
87a0d1ac69 Remove code accidentally added twice.
From-SVN: r15909
1997-10-15 09:44:05 -06:00
Jeff Law
434fc96fca No .Sanitize files in egcs.
From-SVN: r15908
1997-10-14 22:26:58 -06:00
Brendan Kehoe
32066e1ae2 parse.y (unary_expr): Give a pedwarn if someone tries to use the &&label GNU extension.
* parse.y (unary_expr): Give a pedwarn if someone tries to use the
	&&label GNU extension.

From-SVN: r15907
1997-10-14 21:26:06 -04:00
Brendan Kehoe
6640eba99b fix two typos
From-SVN: r15906
1997-10-14 16:45:22 -04:00
Jason Merrill
1f479842ab regen
From-SVN: r15905
1997-10-14 15:19:35 -04:00
Mark Mitchell
1f06b26767 decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it, so as to avoid incorrect manglings.
Tue Oct 14 12:01:00 1997  Mark Mitchell  <mmitchell@usa.net>

	* decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
	so as to avoid incorrect manglings.
	* method.c (build_decl_overload_real): Don't mangle return types
	for constructors.

From-SVN: r15904
1997-10-14 15:12:56 -04:00
Mark Mitchell
041c97f2fb cplus-dem.c (demangle_signature): Don't look for return types on constructors.
* cplus-dem.c (demangle_signature): Don't look for return types on
	constructors.  Handle member template constructors.

From-SVN: r15903
1997-10-14 15:12:27 -04:00
Jason Merrill
438998a93d and these
From-SVN: r15902
1997-10-14 15:11:36 -04:00
Jason Merrill
19ddc834bc cplus-dem.c (demangle_signature): Don't look for return types on constructors.
Tue Oct 14 12:01:00 1997  Mark Mitchell  <mmitchell@usa.net>

	* cplus-dem.c (demangle_signature): Don't look for return types on
	constructors.  Handle member template constructors.

and update from devo.

From-SVN: r15901
1997-10-14 15:10:45 -04:00
Jason Merrill
e66d884e7b cp-tree.h (scratchalloc, [...]): Define as macros for now.
* cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec,
	scratch_tree_cons): Define as macros for now.
	* call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c,
	lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c,
	typeck2.c: Use them and the expression_obstack variants.

From-SVN: r15900
1997-10-14 14:59:03 -04:00
Jason Merrill
22ef8a131a tree.h: Declare them.
* tree.h: Declare them.

Oop.

From-SVN: r15899
1997-10-14 14:52:33 -04:00
Jason Merrill
f06327624c * tree.c (expr_tree_cons, build_expr_list, expralloc): New fns.
From-SVN: r15898
1997-10-14 14:43:16 -04:00
Benjamin Kosnik
378ec56d93 Bring over test cases
From-SVN: r15897
1997-10-14 18:41:30 +00:00
Benjamin Kosnik
dae1d6f685 decl.c (store_return_init): Allow classes with explicit ctors to be used with the named return values extension.
* decl.c (store_return_init): Allow classes with explicit ctors to
  be used with the named return values extension.

From-SVN: r15896
1997-10-14 18:36:34 +00:00
Jeff Law
31c0e01bc5 new test from egcs-bug archives.
From-SVN: r15895
1997-10-14 11:35:26 -06:00
Richard Henderson
9abbaac7c2 Make-lang.in (g77*): Copied from cp/Make-lang.in g++*.
* Make-lang.in (g77*): Copied from cp/Make-lang.in g++*.
        * g77spec.c: New file, mostly copied from g++spec.c
        * g77.c: Removed.

From-SVN: r15893
1997-10-13 12:09:13 -06:00
Jeff Law
8c0a849156 Bring over from devo.
From-SVN: r15892
1997-10-13 10:03:04 -06:00
Doug Evans
d60bee3a82 (INCOMING_RETURN_ADDR_RTX,INCOMING_FRAME_SP_OFFSET): Move definitions
to a more sane place.

From-SVN: r15891
1997-10-10 22:33:24 +00:00
Doug Evans
992b2778ce * sparc/t-sp64 (LIBGCC2_CFLAGS): Delete.
From-SVN: r15890
1997-10-10 20:49:12 +00:00
Doug Evans
dec883836b configure.in: Handle --with-newlib.
* configure.in: Handle --with-newlib.
	* Makefile.in (LIBGCC2_CFLAGS): Add @inhibit_libc@.

	* sparc/t-sp64 (LIBGCC2_CFLAGS): Delete.

From-SVN: r15889
1997-10-10 20:48:55 +00:00
Jason Merrill
7ac63bcadb * pt.c (instantiate_decl): Fix previous change.
From-SVN: r15888
1997-10-10 15:22:04 -04:00
Jason Merrill
9cd60aa99b bastring.h: Use ibegin internally.
* std/bastring.h: Use ibegin internally.  Return passed iterator
	instead of recalculating it were appropriate.
	* std/bastring.cc: Adjust for erase.

	From Yotam Medini:
	* std/bastring.h: Replace remove with erase.

From-SVN: r15887
1997-10-10 03:44:56 -04:00
Jason Merrill
38bab5d4c6 * tstring.cc (identitytest): s/remove/erase/.
From-SVN: r15886
1997-10-10 03:43:28 -04:00
Jason Merrill
da8c445d07 stdexcepti.cc (__out_of_range): New fn.
* stdexcepti.cc (__out_of_range): New fn.
	(__length_error): New fn.

	* std/bastring.h (OUTOFRANGE): Fix logic.  Use throwing functions.
	(LENGTHERROR): Likewise.
	Revert Oct 2 changes.
	* string: Revert Oct 2 changes.

	* std/{f,d,ld}complex.h: Replace guiding fns if not -ansi.

From-SVN: r15885
1997-10-10 02:56:56 -04:00
Brendan Kehoe
5b76d03baa add GPL comment at the top
From-SVN: r15884
1997-10-09 21:18:29 -04:00
Brendan Kehoe
e050253aa5 add an initial very rough description of how `explicit' is handled
From-SVN: r15883
1997-10-09 20:05:55 -04:00
Jason Merrill
fee23f5442 pt.c (tsubst): Fix thinko.
* pt.c (tsubst): Fix thinko.
	(instantiate_decl): Really use the original template.

	* call.c (build_new_method_call): Use simple constructor_name for
	error messages.

From-SVN: r15882
1997-10-09 15:13:22 -04:00
Jeffrey A Law
c89078531b method.c (build_underscore_int): Don't use ANSI specific features.
* method.c (build_underscore_int): Don't use ANSI specific
        features.

From-SVN: r15881
1997-10-08 22:45:14 -06:00
Jeffrey A Law
0e1f3f5eb4 Fix typo.
From-SVN: r15880
1997-10-08 14:37:08 -06:00
Jeffrey A Law
12504ae0b9 * version.c: Bump for snapshot.
From-SVN: r15878
1997-10-08 08:55:00 -06:00
Jason Merrill
3bd1e206cb decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN for our key method; it might have been inlined by -O3.
* decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN
	for our key method; it might have been inlined by -O3.

From-SVN: r15877
1997-10-08 03:19:53 -04:00
Jason Merrill
ffb690bd08 [multiple changes]
Tue Oct  7 23:00:12 1997  Mark Mitchell  <mmitchell@usa.net>

	* decl.c (make_typename_type): Do not try to call lookup_field for
	non-aggregate types.

Tue Oct  7 22:52:10 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* typeck.c (build_reinterpret_cast): Tweak.

Tue Oct  7 22:45:31 1997  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* typeck.c (build_reinterpret_cast): converting a void pointer
	to function pointer with a reinterpret_cast produces a warning
	if -pedantic is issued

Tue Oct  7 22:43:43 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

	* typeck.c (c_expand_return): Don't warn about returning a
	reference-type variable as a reference.

From-SVN: r15876
1997-10-08 02:04:28 -04:00
Jeff Law
51cbea761b One more thinko.
From-SVN: r15875
1997-10-07 23:23:19 -06:00
Jeff Law
253a01b4a6 Fix thinko in last change.
From-SVN: r15874
1997-10-07 23:18:17 -06:00
Jason Merrill
a6f025879b method.c (build_static_name): Fix typo.
* method.c (build_static_name): Fix typo.

1997-10-07  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on
	OLDDECL before we try to do DECL_USE_TEMPLATE.

From-SVN: r15873
1997-10-08 00:26:17 -04:00
Richard Henderson
7e9e3823c7 Makefile.in (CGFLAGS): Don't force -g0.
* Makefile.in (CGFLAGS): Don't force -g0.
        * libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in: Likewise.

From-SVN: r15872
1997-10-07 18:20:24 -06:00
Jeff Law
d1c32bc7ac Undo last incorrect change.
From-SVN: r15871
1997-10-07 17:21:42 -06:00
Jeff Law
5d52c1c3c8 Remove include of <std>
From-SVN: r15870
1997-10-07 16:41:18 -06:00
Manfred Hollstein
e1feece83e cp-tree.h (JOINER): Define to '_' if no '$' or '.' characters are allowed.
* cp-tree.h (JOINER): Define to '_' if no '$' or '.' characters
	are allowed.

From-SVN: r15869
1997-10-07 16:38:40 -06:00
Manfred Hollstein
5643c767f4 aclocal.m4: Substitute INSTALL.
* aclocal.m4: Substitute INSTALL.
        * configure: Re-built.

From-SVN: r15868
1997-10-07 16:26:56 -06:00
Jeff Law
c986829edf Handle std.h -> std rename.
From-SVN: r15867
1997-10-07 16:20:35 -06:00
Jeffrey A Law
f644bd1425 integrate.c (save_for_inline_copying): Avoid undefined pointer operations.
* integrate.c (save_for_inline_copying): Avoid undefined pointer
        operations.
        (expand_inline_function): Likewise.

From-SVN: r15866
1997-10-07 15:43:02 -06:00
Jeffrey A Law
aa0c140117 dwarf2out.c (output_call_frame_info): Reinstate last change using flag_debug_asm check instead of flag_verbose_asm.
* dwarf2out.c (output_call_frame_info): Reinstate last change
        using flag_debug_asm check instead of flag_verbose_asm.

From-SVN: r15865
1997-10-07 15:35:54 -06:00
Jim Wilson
6c2df6c96e Remove incorrect change from Manfred Hollstein.
* dwarf2out.c (output_call_frame_info): Remove last change.

From-SVN: r15864
1997-10-07 12:58:36 -07:00
Andreas Schwab
13ab2b8367 frame.c (__frame_state_for): Execute the FDE insns until the current pc value is strictly bigger than the...
* frame.c (__frame_state_for): Execute the FDE insns until the
        current pc value is strictly bigger than the target pc value.

From-SVN: r15863
1997-10-07 14:42:54 -04:00
Jason Merrill
066c2fea8d regclass.c (init_reg_modes): If we can't find a mode for the register, use the previous one.
* regclass.c (init_reg_modes): If we can't find a mode for the
	register, use the previous one.

From-SVN: r15862
1997-10-07 14:36:48 -04:00
Jason Merrill
c0da11c40a * toplev.c (rest_of_compilation): Defer all non-nested inlines.
From-SVN: r15861
1997-10-07 14:04:33 -04:00
Jeff Law
6714c1ae69 REG_BR_PRED docs.
From-SVN: r15860
1997-10-07 11:15:27 -06:00
Richard Henderson
2f308fec0e haifa-sched.c (print_block_visualization): Call fprintf directly, don't sprintf through an alloca'ed buffer.
* haifa-sched.c (print_block_visualization): Call fprintf directly,
        don't sprintf through an alloca'ed buffer.

From-SVN: r15859
1997-10-07 10:53:16 -06:00
Thomas Koenig
43984e2969 * reload.c (decompose): Always initialize val.base.
From-SVN: r15858
1997-10-07 10:50:13 -06:00
Manfred Hollstein
d4dae59c22 man.c (SIGCHLD): Define to SIGCLD if <sys/signal.h> fails to provide it.
* info/man.c (SIGCHLD): Define to SIGCLD if <sys/signal.h>
        fails to provide it.

From-SVN: r15857
1997-10-07 10:22:48 -06:00
Manfred Hollstein
e9e3025300 mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment instead of aborting.
* m68k/mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment
        instead of aborting.
        * dwarf2out.c (output_call_frame_info): Call app_enable and
        app_disable to let GNU as accept the generated comments.

From-SVN: r15856
1997-10-07 10:20:44 -06:00
Michael Meissner
496651db26 Declare get_file_function_name
From-SVN: r15855
1997-10-07 16:07:46 +00:00
Chip Salzenberg
e634745692 Makefile.in (program_transform_name): Let autoconf substitute the correct value.
* Makefile.in (program_transform_name): Let autoconf substitute
        the correct value.

From-SVN: r15854
1997-10-07 09:59:26 -06:00
Jeffrey A Law
1447b516d2 haifa-sched.c (schedule_block): If the first real insn in a block has any special notes attached to it, remove them.
* haifa-sched.c (schedule_block): If the first real insn in a
        block has any special notes attached to it, remove them.
Fixes bug reported by Weiwen Liu.

From-SVN: r15853
1997-10-07 09:52:32 -06:00
Richard Henderson
1a42ead7f3 * alpha.h (FLOAT_STORE_FLAG_VALUE): It's 2.0 not 0.5.
From-SVN: r15852
1997-10-07 09:45:43 -06:00
Jason Merrill
c32381b187 decl.c (duplicate_decls): Don't warn about template instances.
* decl.c (duplicate_decls): Don't warn about template instances.

	* typeck.c (mark_addressable): Lose ancient code that unsets
	DECL_EXTERNAL.

	* pt.c (do_decl_instantiation): Lose support for instantiating
	non-templates.

	* call.c (build_new_function_call): Fix handling of null explicit
 	template args.
	(build_new_method_call): Likewise.

Mon Oct  6 23:44:34 1997  Mark Mitchell  <mmitchell@usa.net>

	* method.c (build_underscore_int): Fix typo.

From-SVN: r15851
1997-10-07 03:50:21 -04:00
Brendan Kehoe
45f22fa255 add missing tests, put in various test adjustments from devo
From-SVN: r15850
1997-10-06 20:08:46 -04:00
Brendan Kehoe
3f2270ec44 tree.c (print_lang_statistics): #if 0 call to print_inline_obstack_statistics until its definition is checked in.
* tree.c (print_lang_statistics): #if 0 call to
        print_inline_obstack_statistics until its definition is checked in.

the definition of the fn's not checked in yet by jason

From-SVN: r15849
1997-10-06 17:09:49 -04:00
Brendan Kehoe
bfcbf73e1d tree.c (print_lang_statistics): #if 0 call to print_inline_obstack_statistics until its definition is checked in.
* tree.c (print_lang_statistics): #if 0 call to
	print_inline_obstack_statistics until its definition is checked in.

the definition of the fn's not checked in yet by jason

From-SVN: r15848
1997-10-06 17:09:23 -04:00
Jeffrey A Law
ba0cfe5bd1 * Makefile.in (distclean): Do a better job at cleaning up.
From-SVN: r15847
1997-10-06 14:14:47 -06:00
Jeffrey A Law
bac2a45427 Make-lang.in (f77.mostlyclean): Clean up stuff in the object tree too.
* Make-lang.in (f77.mostlyclean): Clean up stuff in the
        object tree too.
        (f77.clean, f77.distclean, f77.maintainer-clean): Likewise.

From-SVN: r15846
1997-10-06 14:13:30 -06:00
Manfred Hollstein
4b6140f1c1 * m88k.c (m88k_begin_prologue): Remove superfluous backslash.
From-SVN: r15845
1997-10-06 12:45:32 -06:00
Jeff Law
6cb68ff4c1 Initial revision
From-SVN: r15841
1997-10-06 12:08:35 -06:00
Jeffrey A Law
dc84d7bca1 Makefile.in (check-g77): New test target.
* Makefile.in (check-g77): New test target.
        (CHECK-TARGETS): Add check-g77.

From-SVN: r15840
1997-10-06 12:02:25 -06:00
Jeffrey A Law
335043a81b * lib/g77.exp, lib/f-torture.exp: New files.
From-SVN: r15839
1997-10-06 12:00:04 -06:00
Jason Merrill
27bb83393c pt.c (instantiate_decl): Look for the original template.
Mon Oct  6 09:27:29 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* pt.c (instantiate_decl): Look for the original template.
	(tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations
	of member templates.

Fixes tstring.

From-SVN: r15838
1997-10-06 12:37:44 -04:00
Michael Meissner
d8d64559de Cast alloca return value for char *
From-SVN: r15837
1997-10-03 19:51:50 +00:00
Jason Merrill
c44e099f65 iostream.cc, libio.h: Convert other uses of #ifdef _G_HAVE_PRINTF_FP to #if.
* iostream.cc, libio.h: Convert other uses of #ifdef
	_G_HAVE_PRINTF_FP to #if.

From-SVN: r15836
1997-10-03 13:14:05 -04:00
Richard Henderson
e414ab2935 Patch from Richard Henderson to make __builtin_return_address(0) work.
* i386.h (RETURN_ADDR_RTX): New definition that works for
	__builtin_return_address(0) and -fomit-frame-pointer.

From-SVN: r15835
1997-10-02 21:15:56 -07:00
Brendan Kehoe
808d0b1063 iostream.cc (operator<<): Use `#if _G_HAVE_PRINTF_FP', not ifdef.
* iostream.cc (operator<<): Use `#if _G_HAVE_PRINTF_FP', not ifdef.

... since it comes in defined, either 0 or 1

From-SVN: r15834
1997-10-02 18:52:19 -04:00
Jason Merrill
5a3a2567e9 [multiple changes]
Thu Oct  2 10:36:49 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* gen-params: Fix __printf_fp test.
	* config/linuxlibc1.mt (gxx_includedir): Don't define.

Thu Oct  2 10:36:26 1997  Ulrich Drepper  <drepper@rtl.cygnus.com>

	* config/linuxlibc1.mt (_G_CONFIG_H): Don't define.
	* gen-params: Add test for __printf_fp.

Getting closer...

From-SVN: r15833
1997-10-02 13:39:40 -04:00
Jason Merrill
b6aa195e20 bastring.h: Move exception stuff after definition of string.
* std/bastring.h: Move exception stuff after definition of string.
	Move typedef of string here.
	* string: From here.

From-SVN: r15832
1997-10-02 13:26:16 -04:00
Jim Wilson
15039abedc Fix 961223-1.c irix6 c-torture failure.
* mips.c (function_arg): Handle passing a struct
	containing a double in a DFmode register without the PARALLEL.

From-SVN: r15830
1997-10-01 13:49:25 -07:00
Jason Merrill
236bdb77b5 tweak
From-SVN: r15828
1997-10-01 13:56:23 -04:00
Jason Merrill
5408ce7864 Makefile.in (g++FAQ.*): New rules.
* Makefile.in (g++FAQ.*): New rules.
	(CONFLICTS): Update.
	* g++FAQ.texi: Moved from libg++.

	* parse.y (PFUNCNAME): Only specify the type once.

From-SVN: r15827
1997-10-01 13:50:03 -04:00
Brendan Kehoe
a3f44a1337 lex.c (real_yylex): Clean up the code to fully behave the way the c-lex.c parser does for complex...
* lex.c (real_yylex): Clean up the code to fully behave the way
	the c-lex.c parser does for complex and real numbers.

From-SVN: r15826
1997-10-01 12:56:13 -04:00
Ian Lance Taylor
281de624e3 pexecute.c: Use spawn if __CYGWIN32__.
* pexecute.c: Use spawn if __CYGWIN32__.

        * pexecute.c: Include "config.h" first, as per autoconf manual
	(from Paul Eggert  <eggert@twinsun.com>).

From-SVN: r15825
1997-10-01 15:15:06 +00:00
Jeff Law
0d9011fd81 Fix typo.
From-SVN: r15824
1997-10-01 07:52:31 -06:00
Philippe De Muyter
56f21d6ffd sys_clock_.c: File renamed from system_clock_.c.
* libU77/sys_clock_.c: File renamed from system_clock_.c.
        libU77/Makefile.in, Makefile.in : Reference sys_clock_.*, not
        system_clock_.*.
        * libU77/dtime_.c (clk_tck): Try also HZ macro.
        * libU77/access.c (G77_access_0): Check malloc return value against 0,
        not NULL.
        libU77/getlog_.c, libU77/ttynam_.c, libU77/chdir_.c: Ditto.
        libU77/chmod_.c, libU77/rename_.c: Ditto.

From-SVN: r15821
1997-10-01 01:43:22 -06:00
Philippe De Muyter
3c8f617e2f * g77.c (pexecute, main): Use unlink, not remove.
From-SVN: r15820
1997-10-01 01:42:36 -06:00
Philippe De Muyter
3cbdd5fc16 x-mot3300 (XCFLAGS): Disable as's long/short jump optimisation for f/expr.o and f/stb.o.
* config/m68k/x-mot3300 (XCFLAGS): Disable as's long/short jump
        optimisation for f/expr.o and f/stb.o.

From-SVN: r15819
1997-10-01 01:41:57 -06:00
Jeff Law
82d109f263 Update to 0.5.22-19970929.
From-SVN: r15818
1997-10-01 01:28:03 -06:00
Thomas Koenig
d3878e4948 * cccp.c (expand_to_temp_buffer): Initialize all members of obuf.
From-SVN: r15817
1997-10-01 00:22:46 -06:00
Jeffrey A Law
135d84b899 * cse.c (this_insn_cc0_mode): Initialize.
From-SVN: r15816
1997-09-30 23:46:27 -06:00
Thomas Koenig
55d8971965 * haifa-sched.c: (get_block_head_tail) Remove unneeded initialization.
From-SVN: r15815
1997-09-30 23:08:31 -06:00
Richard Henderson
e9d0757e5c alpha.md (beq): For registers and ints 0-255...
* alpha.md (beq): For registers and ints 0-255, use cmpeq+bne, since
        that pair will dual-issue on the 21164 and plus+beq won't.
        (bne): Likewise for cmpeq+beq.

From-SVN: r15814
1997-09-30 23:04:30 -06:00
Jim Wilson
3f34faec1a Fix error in immediately preceeding patch.
* except.c (find_exception_handler_labels): Correct argument to free.

From-SVN: r15812
1997-09-30 16:15:58 -07:00
Brendan Kehoe
3226dac5e0 adjust date to be the old form, instead of the emacs 20.x shortened style,
for now.

From-SVN: r15811
1997-09-30 15:15:20 -04:00
Brendan Kehoe
988cea7dd5 except.c (find_exception_handler_labels): Free LABELS when we're done.
* except.c (find_exception_handler_labels): Free LABELS when we're
	done.

fixes memory leak

From-SVN: r15808
1997-09-30 14:25:09 -04:00
Jason Merrill
d770d3b33c add -Wold-style-cast
From-SVN: r15807
1997-09-30 13:49:34 -04:00
Jason Merrill
8c81598dba revert gratuitous whitespace changes
From-SVN: r15806
1997-09-30 13:47:48 -04:00
Jason Merrill
5a45bc3e5b * method.c (build_decl_overload_real): Reformat.
From-SVN: r15804
1997-09-30 11:53:04 -04:00
Jason Merrill
b7067a12bf * method.c (synthesize_method): If at_eof, determine our linkage.
From-SVN: r15803
1997-09-30 03:20:00 -04:00
Paul Eggert
4f6140be61 lex.c (real_yylex): Treat $' just like _'...
1997-09-29  Paul Eggert  <eggert@twinsun.com>

	* lex.c (real_yylex): Treat `$' just like `_', except issue a
	diagnostic if !dollars_in_ident or if pedantic.

	* lang-specs.h (@c++): -ansi no longer implies -$.

	* decl2.c (lang_decode_option):
	-traditional and -ansi now do not mess with
	dollars_in_ident.

From-SVN: r15802
1997-09-30 01:32:19 -04:00
H.J. Lu
9f6177175d Makefile.in (parse.o, decl.o): Also depend on $(srcdir)/../except.h $(srcdir)/../output.h.
Mon Sep 29 19:57:51 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* Makefile.in (parse.o, decl.o): Also depend on
	$(srcdir)/../except.h $(srcdir)/../output.h.
	(decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
	$(srcdir)/../except.h $(srcdir)/../output.h.
	(typeck.o, init.o): Also depend on $(srcdir)/../expr.h
	../insn-codes.h.

	* call.c, cp-tree.h, decl.c, tree.c: Finish prototyping.

	* expr.c (cplus_expand_expr): Make it static.

	* decl2.c, init.c, typeck.c: Include "expr.h".
	(expand_expr): Use proper values when calling the function.

From-SVN: r15801
1997-09-29 23:36:39 -04:00
Jeffrey A Law
3a6eabfad6 * version.c: Bump for snapshot.
From-SVN: r15795
1997-09-29 14:02:27 -06:00
Jason Merrill
0c4b14c4d3 [multiple changes]
Mon Sep 29 11:05:54 1997  Alexandre Oliva  <oliva@dcc.unicamp.br>

	* lang-options.h: new -Wold-style-cast flag.
	* cp-tree.h (warn_old_style_cast): new variable.
	* decl2.c (warn_old_style_cast): ditto.
	(lang_decode_option): support -Wold-style-cast.
	(reparse_absdcl_as_casts): produce old-style-cast warning.

Mon Sep 29 09:20:53 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>

	* decl.c (cp_finish_decl): Allow expand_aggr_init to set
 	TREE_USED, reset value based on already_used.

	* init.c (expand_member_init): Revert change.

From-SVN: r15793
1997-09-29 15:05:04 -04:00
Jason Merrill
974c50f907 flow.c (find_basic_blocks): Mark calls as potentially jumping to the EH labels.
* flow.c (find_basic_blocks): Mark calls as potentially jumping
        to the EH labels.

From-SVN: r15792
1997-09-29 10:49:57 -06:00
Jeffrey A Law
2b67aa29e5 * intdoc.c (main): Remove unused attribute for main's arguments.
From-SVN: r15791
1997-09-29 10:35:19 -06:00
Jason Merrill
893de33c13 cp-tree.h, [...]: Lose DECL_C_STATIC and DECL_PUBLIC.
* cp-tree.h, decl.c, decl2.c, pt.c:
 	Lose DECL_C_STATIC and DECL_PUBLIC.  Don't pretend statics are public.

	* decl2.c (lang_decode_option): Add missing ;.

From-SVN: r15789
1997-09-29 12:08:34 -04:00
Jeffrey A Law
9b16d2c4ef configure.in: Substitute for "install" too.
* configure.in: Substitute for "install" too.
        * configure: Rebuilt.

From-SVN: r15788
1997-09-29 10:00:50 -06:00
Aaron Jackson
b1e3ddfd29 Makefile.in (bootstrap-lean): New target.
* Makefile.in (bootstrap-lean): New target.
        * gcc/Makefile.in (bootstrap-lean, compare-lean): New targets.

From-SVN: r15786
1997-09-29 00:37:11 -06:00
Richard Henderson
c02f035f40 alias.c (base_alias_check): Two symbols can conflict if they are accessed via AND.
* alias.c (base_alias_check): Two symbols can conflict if they
        are accessed via AND.
        (memrefs_conflict_p): Likewise.

From-SVN: r15785
1997-09-29 00:21:18 -06:00
Richard Henderson
7a14fdc538 alpha.h (SETUP_INCOMING_VARARGS): Emit a blockage insn after flushing argument registers to the stack.
* alpha.h (SETUP_INCOMING_VARARGS): Emit a blockage insn
        after flushing argument registers to the stack.

From-SVN: r15784
1997-09-29 00:18:28 -06:00
Richard Henderson
6662a38d28 * Makefile.in (mostlyclean): Remove .regmove files.
From-SVN: r15783
1997-09-29 00:16:21 -06:00
Jason Merrill
f34471094c * libgcc2.c (__throw): Fix thinko.
From-SVN: r15781
1997-09-28 22:02:26 -04:00
Mark Mitchell
37f6b6bfd2 cplus-dem.c (demangle_template): Add new parameter.
Sun Sep 28 12:00:52 1997  Mark Mitchell  <mmitchell@usa.net>

        * cplus-dem.c (demangle_template): Add new parameter.  Handle new
        template-function mangling.
        (consume_count_with_underscores): New function.
        (demangle_signature): Handle new name-mangling scheme.

From-SVN: r15780
1997-09-28 15:59:54 -04:00
Mark Mitchell
a3a5b5b7bf cplus-dem.c (demangle_template): Add new parameter.
Sun Sep 28 12:00:52 1997  Mark Mitchell  <mmitchell@usa.net>

        * cplus-dem.c (demangle_template): Add new parameter.  Handle new
        template-function mangling.
        (consume_count_with_underscores): New function.
        (demangle_signature): Handle new name-mangling scheme.

From-SVN: r15778
1997-09-28 15:37:05 -04:00
Jason Merrill
a98d45ff1f new tests and adjustments for explicit function template qualification
From-SVN: r15777
1997-09-28 15:26:50 -04:00
Jason Merrill
905a881f36 [multiple changes]
Sat Sep 27 16:48:00 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* std/complext.h: Lose injection decls.
	* std/fcomplex.h: Likewise.
	* std/dcomplex.h: Likewise.
	* std/ldcomplex.h: Likewise.

Sat Sep 27 16:47:35 1997  Mark Mitchell  <mmitchell@usa.net>

	* std/complext.h: Declare templates before making them
	friends.  Use new friend <> syntax.
	* std/complext.cc: Don't rely on guiding declarations.
	* std/fcomplex.h: Use new friend <> syntax.
	* std/dcomplex.h: Likewise.
	* std/ldcomplex.h: Likewise.

From-SVN: r15776
1997-09-28 15:21:52 -04:00
Mark Mitchell
920253a3bc iomanip.h: Use new friend <> syntax.
Sun Sep 28 12:09:04 1997  Mark Mitchell  <mmitchell@usa.net>

        * iomanip.h: Use new friend <> syntax.

From-SVN: r15775
1997-09-28 15:18:16 -04:00
Jason Merrill
386b8a85a6 [multiple changes]
Sat Sep 27 16:22:48 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* friend.c (do_friend): Disable injection for all template-derived
 	decls.
	* decl2.c (lang_decode_option): Handle -fguiding-decls.
	* parse.y (notype_template_declarator): New nonterminal.
	(direct_notype_declarator): Use it.
	(complex_direct_notype_declarator): Likewise.
	(object_template_id): Accept any kind of identifier after TEMPLATE.
	(notype_qualified_id): Don't add template declarators here.

Sat Sep 27 16:21:58 1997  Mark Mitchell  <mmitchell@usa.net>

        * call.c (add_template_candidate): Add explicit_targs parameter.
        (build_scoped_method_call): Use it.
        (build_overload_call_real): Likewise.
        (build_user_type_conversion_1): Likewise.
        (build_new_function_call): Likewise.
        (build_object_call): Likewise.
        (build_new_op): Likewise.
        (build_new_method_call): Likewise.
        (build_new_function_call): Handle TEMPLATE_ID_EXPR.
        (build_new_method_call): Likewise.

        * class.c (finish_struct_methods): Add specialization pass to
        determine which methods were specializing which other methods.
        (instantiate_type): Handle TEMPLATE_ID_EXPR.

        * cp-tree.def (TEMPLATE_ID_EXPR): New tree code.

        * cp-tree.h (name_mangling_version): New variable.
	(flag_guiding_decls): Likewise.
        (build_template_decl_overload): New function.
        (begin_specialization): Likewise.
        (reset_specialization): Likewise.
        (end_specialization): Likewise.
        (determine_explicit_specialization): Likewise.
        (check_explicit_specialization): Likewise.
        (lookup_template_function): Likewise.
        (fn_type_unification): Add explicit_targs parameter.
        (type_unification): Likewise.

        * decl.c (duplicate_decls): Add smarts for explicit
        specializations.
        (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
        specializations.
        (grokfndecl): Call check_explicit_specialization.

        * decl2.c (lang_decode_option): Handle -fname-mangling-version.
        (build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
        (check_classfn): Handle specializations.

        * error.c (dump_function_name): Print specialization arguments.

	* friend.c (do_friend): Don't call pushdecl for template
        instantiations.

        * init.c (build_member_call): Handle TEMPLATE_ID_EXPR.

        * lang-options.h: Add -fname-mangling-version, -fguiding-decls,
	and -fno-guiding-decls.

        * lex.c (identifier_type): Return PFUNCNAME for template function
        names.

        * method.c (build_decl_overload_real): New function.
        (build_template_parm_names): New function.
        (build_overload_identifier): Use it.
        (build_underscore_int): New function.
        (build_overload_int): Use it.  Add levels for template
        parameters.
        (build_overload_name): Likewise.  Also, handle TYPENAME_TYPEs.
        (build_overload_nested_names): Handle template type parameters.
        (build_template_decl_overload): New function.

        * parse.y (YYSTYPE): New ntype member.
        (nested_name_specifier): Use it.
        (nested_name_specifier_1): Likewise.
        (PFUNCNAME): New token.
        (template_id, object_template_id): New non-terminals.
        (template_parm_list): Note specializations.
        (template_def): Likewise.
        (structsp): Likewise.
        (fn.def2): Handle member template specializations.
        (component_decl_1): Likewise.
        (direct_notype_declarator): Handle template-ids.
        (component_decl_1): Likewise.
        (direct_notype_declarator): Handle template-ids.
        (primary): Handle TEMPLATE_ID_EXPR, and template-ids.

        * pt.c (processing_specializations): New variable.
        (template_header_count): Likewise.
        (type_unification_real): New function.
        (processing_explicit_specialization): Likewise.
        (note_template_header): Likewise.
        (is_member_template): Handle specializations.
        (end_template_decl): Call reset_specialization.
        (push_template_decl): Handle member template specializations.
        (tsubst): Likewise.
        (tsubst_copy): Handle TEMPLATE_ID_EXPR.
        (instantiate_template): Handle specializations.
        (instantiate_decl): Likewise.
        (fn_type_unification): Handle explicit_targs.
        (type_unification): Likewise.  Allow incomplete unification
        without an error message, if allow_incomplete.
        (get_bindings): Use new calling sequence for fn_type_unification.

        * spew.c (yylex): Handle PFUNCNAME.

        * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
        (really_overloaded_fn): Likewise.
        (get_first_fn): Handle function templates.

        * typeck.c (build_x_function_call): Use really_overloaded_fn.
        Handle TEMPLATE_ID_EXPR.
        (build_x_unary_op): Likewise.
        (build_unary_op): Likewise.
        (mark_addressable): Templates whose address is taken are marked
        as used.

From-SVN: r15774
1997-09-28 15:16:59 -04:00
Jason Merrill
e741306e3c * libio.h: Don't use _IO_LOCK_T if it's not defined.
From-SVN: r15773
1997-09-28 15:08:43 -04:00
Jason Merrill
72b0b53ec1 update
From-SVN: r15772
1997-09-28 15:02:46 -04:00
Philippe De Muyter
adfc539e94 flow.c (print_rtl_with_bb): Cast alloca return values for variables start and end.
* flow.c (print_rtl_with_bb): Cast alloca return values for variables
        start and end.

From-SVN: r15753
1997-09-28 01:52:39 -06:00
Jeffrey A Law
771c2d1bb7 Make-lang.in (G77_FLAGS_TO_PASS): Pass down RANLIB, RANLIB_TEST and AR instead of the _FOR_TARGET versions.
* Make-lang.in (G77_FLAGS_TO_PASS): Pass down RANLIB, RANLIB_TEST
        and AR instead of the _FOR_TARGET versions.

From-SVN: r15752
1997-09-28 01:44:42 -06:00
Jeffrey A Law
92cbe4d261 frame.c: Remove last change.
* frame.c: Remove last change.
        * dwarf2.h: Remove last change.
        * tree.h: Add declarations of DWARF2 unwind info support
        functions.
As requested by Jason.

From-SVN: r15751
1997-09-28 01:03:02 -06:00
Jason Merrill
2f3ca9e7f4 c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.
* c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.
	* tree.h (built_in_function): Likewise.
	* expr.c (expand_builtin): Likewise.
	* except.h: Likewise.
	* dwarf2out.c (expand_builtin_dwarf_reg_size): New fn.
	* libgcc2.c (copy_reg): New fn.
	(__throw): Use it.

From-SVN: r15750
1997-09-27 14:16:15 -04:00
Jason Merrill
faf199a621 regen
From-SVN: r15749
1997-09-27 14:15:16 -04:00
Jeff Law
dc09d4f07b New file from Ulrich.
From-SVN: r15742
1997-09-26 22:07:24 -06:00
Ulrich Drepper
d604f4c6a3 libio changes from Ulrich to help "old linux" systems.
libio changes from Ulrich to help "old linux" systems.  See ChangeLog
for details.

From-SVN: r15741
1997-09-26 22:07:00 -06:00
Andreas Schwab
a7cc7f29f4 frame.c: Include gansidecl.h for PROTO.
* frame.c: Include gansidecl.h for PROTO.
        * dwarf2out.c: Move inclusion of dwarf2.h down so that PROTO is
        defined.  Don't declare dwarf2out_cfi_label here.
        * dwarf2.h: Add declarations of DWARF2 unwind info support
        functions.
        * m68k.c: Include dwarf2.h.
        (output_function_prologue): Add dwarf2 support.
        * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros.
        (INCOMING_FRAME_SP_OFFSET): Likewise.
Update m68k patch from Andreas.

From-SVN: r15740
1997-09-26 21:58:57 -06:00
Paul Eggert
407cb092e3 c-typeck.c (build_binary_op): Warn about comparing signed vs unsigned if...
* c-typeck.c (build_binary_op): Warn about comparing signed vs
        unsigned if -W is specified and -Wno-sign-compare is not.
        * c-decl.c (warn_sign_compare): Initialize to -1.
        (c_decode_option): -Wall no longer implies -Wsign-compare.

From-SVN: r15739
1997-09-26 21:46:35 -06:00
Andreas Schwab
3ba104945b integrate.c (expand_inline_function): Make sure there is at least one insn that can be used as an insertion point.
* integrate.c (expand_inline_function): Make sure there is at
        least one insn that can be used as an insertion point.

From-SVN: r15738
1997-09-26 21:42:59 -06:00
Andreas Schwab
b9620d0e58 decl.c (init_decl_processing): Declare __builtin_constant_p as accepting any kind of type, not only int.
1997-09-25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* decl.c (init_decl_processing): Declare __builtin_constant_p as
	accepting any kind of type, not only int.

From-SVN: r15734
1997-09-26 11:59:35 -04:00
Jason Merrill
cc1c702f8c update
From-SVN: r15733
1997-09-26 11:50:51 -04:00
Jason Merrill
1052cd6573 search.c (get_matching_virtual): Notice virtual bases when sorrying about covariant returns.
* search.c (get_matching_virtual): Notice virtual bases when sorrying
	about covariant returns.

From-SVN: r15732
1997-09-26 11:42:46 -04:00
Jason Merrill
c2b9a5c49d never mind
From-SVN: r15731
1997-09-26 11:39:41 -04:00
Jason Merrill
318e85cf8d add
From-SVN: r15721
1997-09-26 03:40:44 -04:00
Jason Merrill
405a745b2e parse.y (member_init): Also imply typename here.
* parse.y (member_init): Also imply typename here.  Remove ancient
	extension for initializing base members.

From-SVN: r15720
1997-09-26 03:24:48 -04:00
Jason Merrill
1e60a96e07 fix thinko
From-SVN: r15719
1997-09-26 03:03:44 -04:00
Jason Merrill
3055528c86 add
From-SVN: r15718
1997-09-25 23:13:35 -04:00
Jason Merrill
5a4a879c40 bastring.h: Enable exceptions.
* std/bastring.h: Enable exceptions.
 	(assign, append, insert, replace): Implement member template versions.

	* tstring.cc: Add some tests for the member templates.

From-SVN: r15717
1997-09-25 23:01:01 -04:00
Jason Merrill
896470e737 update
From-SVN: r15716
1997-09-25 21:38:04 -04:00
Jason Merrill
653cc74afc Handle multi-level typenames and implicit typename in base list.
* parse.y (typename_sub{,[0-2]}): New rules.
	(structsp, rule TYPENAME_KEYWORD): Use typename_sub.
	(nonnested_type): New rule.
	(complete_type_name): Use it.
	(base_class.1): Use typename_sub and nonnested_type.
	(nested_name_specifier): Don't elide std:: here.
	* decl.c (make_typename_type): Handle getting a type for NAME.
	(lookup_name_real): Turn std:: into :: here.

	Rvalue conversions were removed in London.
	* call.c (is_subseq): Don't consider lvalue transformations.
	(build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
	(joust): Reenable ?: kludge.

From-SVN: r15715
1997-09-25 14:56:40 -04:00
Doug Evans
6d4312ddbf Add docs for sparc -malign-{jumps,loops,functions}.
Fix typo in i386 -malign-functions docs.
Brought over from FSF.

From-SVN: r15714
1997-09-25 15:57:01 +00:00
Jason Merrill
c5cec899dd dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/
* dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/

	* final.c (final_end_function): Also do dwarf2 thing if
	DWARF2_DEBUGGING_INFO.
	(final_start_function): Likewise.

From-SVN: r15713
1997-09-25 00:57:50 -04:00
Jeffrey A Law
e166cb188a Bump for snapshot.
From-SVN: r15710
1997-09-24 22:10:25 -06:00
Doug Evans
01a94cba00 sparc stuff brought over from fsf.
From-SVN: r15709
1997-09-25 01:15:30 +00:00
Doug Evans
1ccfa253c9 sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc.
* sparc/sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc.
	(TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=,
	-malign-functions=.
	(sparc_align_{loops,jumps,funcs}_string): Declare.
	(sparc_align_{loops,jumps,funcs}): Declare.
	(DEFAULT_SPARC_ALIGN_FUNCS): New macro.
	(FUNCTION_BOUNDARY): Use sparc_align_funcs.
	(STACK_BIAS): Define.
	(SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT first, then perform
	test.
	(SPARC_SETHI_P): New macro.
	(CONST_OK_FOR_LETTER_P): Use it.
	(ASM_OUTPUT_ALIGN_CODE): Define.
	(ASM_OUTPUT_LOOP_ALIGN): Define.

	* sparc.h (ASM_COMMENT_START): Define.

	* sparc/sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print
	ascii form as well.

From-SVN: r15708
1997-09-25 01:14:03 +00:00
Doug Evans
96987e9648 sparc.c (dwarf2out_cfi_label): Add declaration.
* sparc.c (dwarf2out_cfi_label): Add declaration.
	(save_regs, output_function_prologue): Remove cast for it.
	(sparc_flat_{save_restore,output_function_prologue): Likewise.
	({save,restore}_regs): No longer inline.

From-SVN: r15707
1997-09-25 01:10:47 +00:00
Doug Evans
bf62bbf1bc sparc.c (finalize_pic): Update call to gen_get_pc_via_call.
* sparc/sparc.c (finalize_pic): Update call to gen_get_pc_via_call.

	* sparc/sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals.
	(sparc_align_{loops,jumps,funcs}): New globals.
	(sparc_override_options): Handle -malign-loops=, -malign-jumps=,
	-malign-functions=.
	(move_operand): Use SPARC_SETHI_P.
	(arith_double_operand): Cast to unsigned HOST_WIDE_INT first, then
	perform test.
	(arith11_double_operand): Likewise.
	(arith10_double_operand): Likewise.
	(finalize_pic): Finish sparc64 support.
	(emit_move_sequence): Use SPARC_SETHI_P.  Simplify low part of
	64 bit constants if able.
	(output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD.
	(sparc_builtin_saveregs, sparc64 case): Don't save fp regs if
	! TARGET_FPU.

	* sparc.h (ASM_COMMENT_START): Define.
	* sparc.c (output_function_prologue): Use it.
	(sparc_flat_output_function_{epi,pro}logue): Likewise.

From-SVN: r15706
1997-09-25 01:09:41 +00:00
Doug Evans
5d4f5e8767 sparc.md (*): Use GEN_INT instead of gen_rtx.
* sparc/sparc.md (*): Use GEN_INT instead of gen_rtx.
	(get_pc_sp32): Use for sparc64 as well.
	(lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts.
	(sethi_di_sp64_const): Likewise.
	(movtf_cc_sp64): Check TARGET_HARD_QUAD.
	(cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast.
	(ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.

From-SVN: r15705
1997-09-25 01:03:13 +00:00
Doug Evans
26b551afd8 Regenerate.
From-SVN: r15704
1997-09-25 00:59:12 +00:00
Doug Evans
2334126e71 configure.in (sparc64-*-linux*): Recognize.
* configure.in (sparc64-*-linux*): Recognize.  Add sparc/xm-sparc.h
	to xm_file list on 32-bit sparc-linux.

From-SVN: r15703
1997-09-25 00:55:32 +00:00
Doug Evans
6f7423f547 * glimits.h (LONG_MAX): Handle sparc64.
From-SVN: r15702
1997-09-25 00:50:38 +00:00
Doug Evans
d98cda2239 * config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define.
From-SVN: r15701
1997-09-25 00:49:27 +00:00
Doug Evans
bbfbedb141 xm-linux.h: Include some standard headers if not inhibit_libc.
* sparc/xm-linux.h: Include some standard headers if not inhibit_libc.
	Don't include xm-sparc.h.

From-SVN: r15700
1997-09-25 00:44:26 +00:00
Doug Evans
18b14bd816 Sync with fsf version.
From-SVN: r15699
1997-09-25 00:41:02 +00:00
Doug Evans
a120a9eaa7 sysv4.h (ASM_COMMENT_START): Delete.
* sparc/sysv4.h (ASM_COMMENT_START): Delete.
	* sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete,
	use sparc.h's copies.

From-SVN: r15698
1997-09-25 00:38:04 +00:00
Doug Evans
0286bd98f3 linux-aout.h (COMMENT_BEGIN): Delete.
* sparc/linux-aout.h (COMMENT_BEGIN): Delete.
	* sparc/linux.h (COMMENT_BEGIN): Likewise.
Bring over from FSF.

From-SVN: r15697
1997-09-25 00:33:48 +00:00
Jim Wilson
5a5e9503b2 Fix typo in hjl ChangeLog entry.
From-SVN: r15689
1997-09-24 15:31:10 -07:00
Jason Merrill
3041f77a20 update
From-SVN: r15687
1997-09-24 00:51:57 -04:00
Jeff Law
5dceb6d28e new test (already in c-torture)
From-SVN: r15685
1997-09-23 15:20:32 -06:00
Doug Evans
bfe8701346 New files for sparc64-linux port.
From-SVN: r15679
1997-09-23 18:41:47 +00:00
Jeff Law
ce2157a1a9 fold-const.c (make_range): Correctly handle cases of converting from unsigned to signed type.
* fold-const.c (make_range): Correctly handle cases of converting
        from unsigned to signed type.

        * fold-const.c (merge_ranges): Make sure that if one range is subset
        of another, it will always be the second range.  Correct (+,-) case to
        account for this.

Brought over from gcc2; fixes sparc bug.

From-SVN: r15678
1997-09-23 12:35:51 -06:00
Doug Evans
4bc8c3c116 New files for sparc64-linux port.
From-SVN: r15675
1997-09-23 18:33:32 +00:00
David S. Miller
e13a25d5a3 expmed.c (expand_divmod): If compute_mode is not the same as mode...
* expmed.c (expand_divmod): If compute_mode is not the same as
        mode, handle the case where convert_modes() causes op1 to no
        longer be a CONST_INT.

From-SVN: r15672
1997-09-23 01:25:25 -06:00
Alexandre Oliva
4fd10464e7 Forgot to commit.
From-SVN: r15671
1997-09-23 01:19:31 -06:00
David S. Miller
c107334d5c reorg.c (dbr_schedule): At end of this pass...
* reorg.c (dbr_schedule): At end of this pass, add REG_BR_PRED
        note holding get_jump_flags() calculation to all JUMP_INSNs.
        * rtl.h (enum reg_note): New note types REG_BR_PRED and REG_SAVE_AREA.
        * rtl.c (reg_note_name): Add new note types.

From-SVN: r15670
1997-09-23 01:14:07 -06:00
Dave Love
5cd278f399 dtime_.c (G77_dtime_0): Fix types in HAVE_GETRUSAGE case so as not to truncate results to integer values.
* libU77/dtime_.c (G77_dtime_0): Fix types in HAVE_GETRUSAGE case
        so as not to truncate results to integer values.
        * libU77/Version.c: Bump.

From-SVN: r15669
1997-09-23 01:06:54 -06:00
Jeff Law
0774afd709 Fix typo.
From-SVN: r15668
1997-09-23 01:01:34 -06:00
Jeffrey A Law
8d7532d94f rtlanal.c (jmp_uses_reg_or_mem): Fix typo in last change.
* rtlanal.c (jmp_uses_reg_or_mem): Fix typo in last change.
Fixes various bootstrap problems (hopefully).

From-SVN: r15667
1997-09-23 00:58:12 -06:00
H.J. Lu
7019d00e09 loop.c (indirect_jump_in_function_p): Return 0 by default.
* loop.c (indirect_jump_in_function_p): Return 0
        by default.

From-SVN: r15666
1997-09-23 00:40:37 -06:00
Alexandre Oliva
4d935b402f Make-lang.in: install.texi was renamed to g77install.texi
* Make-lang.in: install.texi was renamed to g77install.texi
        * install0.texi: Likewise.

From-SVN: r15665
1997-09-23 00:38:19 -06:00
Jeffrey A Law
b9dfb357c8 xm-rs6000.h: Fix thinko in last change.
* rs6000/xm-rs6000.h: Fix thinko in last change.
        * rs6000/xm-sysv4.h: Likewise.

From-SVN: r15664
1997-09-23 00:31:44 -06:00
Jim Wilson
4b7e467be2 Fix irix5/irix6 dwarf2out assertion failures
Fix irix5/irix6 dwarf2out assertion failures
	* mips.c (save_restore_insns): Only set RTX_FRAME_RELATED_P if store_p.

From-SVN: r15661
1997-09-22 21:48:36 -07:00
Brendan Kehoe
59f1f2c4c4 decl.c (start_function): Up warning of no return type to be a pedwarn.
* decl.c (start_function): Up warning of no return type to be a
	pedwarn.

From-SVN: r15660
1997-09-22 22:13:04 -04:00
Jeffrey A Law
8c8e6faa0d * reg-stack.c (find_blocks): Fix thinko in last change.
From-SVN: r15655
1997-09-22 14:38:35 -06:00
Andreas Schwab
078e983e51 m68k.c (output_function_prologue): Add dwarf2 support.
* m68k.c (output_function_prologue): Add dwarf2 support.

        * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM,
        INCOMING_FRAME_SP_OFFSET): New definitions.

From-SVN: r15631
1997-09-22 11:46:38 -06:00
David S. Miller
9524f769a7 combine.c (try_combine): Use NULL_RTX instead of '0' where appropriate in calls to gen_rtx().
* combine.c (try_combine): Use NULL_RTX instead of '0' where
        appropriate in calls to gen_rtx().
        * cse.c (cse_main): Likewise.
        * emit-rtl.c (gen_label_rtx): Likewise.
        * expr.c (init_expr_once): Likewise.
        * haifa-sched.c (flush_pending_lists, sched_analyze_insn,
        sched_analyze, init_rgn_data_dependences,
        compute_block_backward_dependences): Likewise.
        * sched.c (schedule_insns): Likewise.
        * varasm.c (immed_double_const): Likewise.

From-SVN: r15630
1997-09-22 11:41:48 -06:00
David S. Miller
d70276675c sparc.h (INCOMING_FRAME_SP_OFFSET): Define to SPARC_STACK_BIAS for sake of dwarf2 on sparc64.
* sparc.h (INCOMING_FRAME_SP_OFFSET): Define to
        SPARC_STACK_BIAS for sake of dwarf2 on sparc64.

From-SVN: r15628
1997-09-22 11:34:49 -06:00
J. Kean Johnston
fbf8b71c36 sco5.h: Make ELF default file format and add -mcoff/-melf..
* i386/sco5.h: Make ELF default file format and add -mcoff/-melf..
        (MULTILIB_DEFAULTS): Define.
        (ASM_SPEC, CPP_SPEC): Handle -mcoff.
        (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise.
        (LIBGCC_SPEC): Likewise.
        (MASK_COFF, TARGET_COFF, TARGET_ELF): Define.
        (SUBTARGET_SWITCHES): Add -mcoff and -melf.
        * i386/t-sco5 (CRTSTUFF_T_CFLAGS): Add -fPIC.
        (CRTSTUFF_T_CFLAGS_S): Tweak for COFF.
        (EXTRA_PARTS, TAROUTOPTS): Delete.
        (libgcc1-elf, libgcc2-elf, libgcc-elf targets): Delete.
        (MULTILIB_OPTIONS): Define.
        (MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): Likewise.
        (MULTILIB_MATCHE, MULTILIB_EXTRA_OPTS): Likewise.
SCO Open Server patches.

From-SVN: r15627
1997-09-22 11:31:47 -06:00
Jeffrey A Law
c14a951f31 * version.c: Bump for snapshot.
From-SVN: r15624
1997-09-22 02:08:15 -06:00
Jeffrey A Law
37aa45a21d loop.c (loop_number): Delete function.
* loop.c (loop_number): Delete function.  Change all references
        to use uid_loop_num array.
        * loop.h (loop_number): Delete declaration.
        * unroll.c (unroll_loop): Change "loop_number" references to
        use uid_loop_num instead.
Still cleaning up haifa.

From-SVN: r15623
1997-09-21 21:04:36 -06:00
Jeff Law
b47404d137 loop.c (loop_unroll_factor): Move outside #ifdef HAIFA conditional.
* loop.c (loop_unroll_factor): Move outside #ifdef HAIFA
        conditional.
        (loop_unroll_iter): Remove unused variable and all references.
        (loop_optimize): Always allocate and clear space for loop_unroll_factor.
        (insert_bct): Fix minor formatting problems.
        * loop.h (loop_unroll_factor): Move decl outside #ifdef HAIFA.
        (loop_unroll_iter): Removed unused decl.
        * unroll.c (unroll_loop): Remove code to set loop_unroll_iter.
        Always record the unrolling factor.

From-SVN: r15622
1997-09-21 19:50:04 -06:00
Jeff Law
237a9795cb loop.c (loop_unroll_factor): Move outside #ifdef HAIFA conditional.
* loop.c (loop_unroll_factor): Move outside #ifdef HAIFA
        conditional.
        (loop_unroll_iter): Remove unused variable and all references.
        (loop_optimize): Always allocate and clear space for loop_unroll_factor.
        (insert_bct): Fix minor formatting problems.
        * loop.h (loop_unroll_factor): Move decl outside #ifdef HAIFA.
        (loop_unroll_iter): Removed unused decl.
        * unroll.c (unroll_loop): Remove code to set loop_unroll_iter.
        Always record the unrolling factor.
More haifa cleanup

From-SVN: r15621
1997-09-21 19:49:19 -06:00
Jeff Law
813f674a97 Forgot to check in last time.
From-SVN: r15620
1997-09-21 19:44:35 -06:00
Jeff Law
d5ff3a2ec5 Fix typo.
From-SVN: r15619
1997-09-21 19:33:52 -06:00
Jeffrey A Law
cb3bb2a765 cse.c (simplify_relational_operation): Set h0u just like h0s.
* cse.c (simplify_relational_operation): Set h0u just like h0s.
        Similarly for h1u and h1s.

From-SVN: r15616
1997-09-21 19:28:22 -06:00
Jeffrey A Law
2a1777af22 jump.c (jmp_uses_reg_or_mem): Deleted unused function.
* jump.c (jmp_uses_reg_or_mem): Deleted unused function.
        (find_basic_blocks): Use computed_jump_p to determine if a
        particular JUMP_INSN is a computed jump.
        * reg-stack.c (find_blocks): Use computed_jump_p to determine
        if a particular JUMP_INSN is a computed jump.
        * rtlanal.c (jmp_uses_reg_or_mem): New function.
        (computed_jump_p): Likewise.
        * rtl.h (computed_jump_p): Declare.
        * genattrtab.c (pc_rtx): Define and initialize.
        * loop.c (loop_optimize): Always determine if the current
        function has a computed jump.
        (indirect_jump_in_function_p): Use computed_jump_p to determine
        if a particular JUMP_INSN is a computed jump.
General (and haifa) cleanups.

From-SVN: r15615
1997-09-21 18:49:32 -06:00
Jeff Law
37842442c3 Finish last change.
From-SVN: r15614
1997-09-21 17:46:54 -06:00
Jeffrey A Law
7014927a4e loop.c (fix_bct_param): Delete unused function.
* loop.c (fix_bct_param): Delete unused function.
        (check_bct_param): Likewise.

From-SVN: r15613
1997-09-21 17:43:38 -06:00
Jason Merrill
6d53d7c252 * frame.c (__deregister_frame): Check properly for initialized object.
From-SVN: r15601
1997-09-20 19:46:43 -04:00
Jason Merrill
b82b76c6ba call.c (build_over_call): Do require_complete_type before build_cplus_new.
* call.c (build_over_call): Do require_complete_type before
	build_cplus_new.

Fixes t20.C mode problem.

From-SVN: r15598
1997-09-20 18:38:48 -04:00
H.J. Lu
71e4fbe6df * alpha/linux.h (HANDLE_SYSV_PRAGMA): Defined.
From-SVN: r15594
1997-09-19 20:48:37 -06:00
Jim Wilson
f1ee40b618 Makefile.in (LIBIO_OBJECTS): Depend on _G_CONFIG_H.
* Makefile.in (LIBIO_OBJECTS): Depend on _G_CONFIG_H.

Brought over from devo.

From-SVN: r15593
1997-09-19 20:43:51 -06:00
J"orn Rennecke
cc5e164240 jump.c (thread_jumps): check can_reverse_comparison_p before threading a reversed-condition jump.
* jump.c (thread_jumps): check can_reverse_comparison_p before
        threading a reversed-condition jump.

From-SVN: r15590
1997-09-19 19:05:16 -06:00
J"orn Rennecke
272299b9ca sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p.
* sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p.
        * haifa-sched.c (update_flow_info): Likewise.

From-SVN: r15589
1997-09-19 18:52:52 -06:00
Jeffrey A Law
09f97c1e6c * Makefile.in (cross): New target.
From-SVN: r15564
1997-09-18 23:56:16 -06:00
Alexandre Oliva
339c9b006c Makefile.in (bootstrap2, bootstrap3): New targets.
* Makefile.in (bootstrap2, bootstrap3): New targets.
        (all-bootstrap): Remove outdated and confusing target.
        (bootstrap, bootstrap2, bootstrap3): Don't pass BOOT_CFLAGS down.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>

From-SVN: r15563
1997-09-18 23:23:00 -06:00
Jeffrey A Law
e649372777 * Makefile.in (BOOT_CFLAGS): Use -O2.
From-SVN: r15562
1997-09-18 23:21:34 -06:00
Jeffrey A Law
a79177f5a1 proj.h (FFEPROJ_BSEARCH): Delete all references.
* proj.h (FFEPROJ_BSEARCH): Delete all references.
        (FFEPROJ_STRTOUL): Likewise.
        * proj.c (bsearch): Compile this if no bsearch is provided by the
        host system.
        (strtoul): Similarly.

From-SVN: r15561
1997-09-18 23:16:54 -06:00
Jeffrey A Law
1e467e19b0 configure.in (strtoul, bsearch): Have autoconf check for these functions.
* configure.in (strtoul, bsearch): Have autoconf check for these
        functions.
        * configure, config.in: Rebuilt.
So Fortran front end can use HAVE_STRTOUL and HAVE_BSEARCH.

From-SVN: r15560
1997-09-18 23:14:32 -06:00
Alexandre Oliva
335d0ab208 Makefile.in (bootstrap2, bootstrap3): New targets.
* Makefile.in (bootstrap2, bootstrap3): New targets.
        (all-bootstrap): Remove outdated and confusing target.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>

From-SVN: r15559
1997-09-18 21:42:14 -06:00
Jeff Law
c52c47b4cd Forgot to commit in last change.
From-SVN: r15558
1997-09-18 21:30:32 -06:00
Jeffrey A Law
185110146b xm-mot3300.h (alloca): Properly declare if __STDC__.
* m68k/xm-mot3300.h (alloca): Properly declare if __STDC__.
        * mips/mips.h (alloca): Likewise.
        * rs6000/xm-rs6000.h (alloca): Likewise.
        * rs6000/xm-sysv4.h: Likewise.
Fixes build problem when using an ANSI compiler that isn't gcc.

From-SVN: r15557
1997-09-18 21:12:55 -06:00
Jeffrey A Law
4ac480d605 g77install.texi: Renamed from install.texi
* g77install.texi: Renamed from install.texi
        * g77.texi: Corresponding changes.

Fixes problem with g77.texi getting gcc/install.texi instead of
gcc/f/install.texi when building in the source tree.

From-SVN: r15556
1997-09-18 19:28:39 -06:00
Jason Merrill
238109cd66 search.c (lookup_field): Call complete_type in all cases.
* search.c (lookup_field): Call complete_type in all cases.

Fixes CLN problems.

	* decl.c (finish_function): Just warn about flowing off the end.

From-SVN: r15555
1997-09-18 19:52:48 -04:00
Jason Merrill
6020d3605c final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code.
* final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code.
	* dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along.
	(dwarf2out_stack_adjust): A BARRIER resets the args space to 0.

	* except.c (end_eh_unwinder): Subtract 1 from return address.
	* libgcc2.c (__throw): Likewise.
	(find_exception_handler): Don't change PC here.  Compare end with >.

From-SVN: r15554
1997-09-18 19:33:56 -04:00
Jeffrey A Law
feb5876a0b * fini.c (main): Return type is int.
From-SVN: r15553
1997-09-18 17:33:06 -06:00
Jeffrey A Law
b92f5cc093 com.c (lang_printable_name): Use verbosity argument.
* com.c (lang_printable_name): Use verbosity argument.
Just to keep the compiler quiet.

From-SVN: r15552
1997-09-18 17:30:08 -06:00
Nick Clifton
b24bcfb3e6 v850.c (compute_register_save_size): Correct register number.
* v850.c (compute_register_save_size): Correct register
        number.
        * v850.md (save_interrupt, return_interrupt): Correct
        register number.
        * v850/lib1funcs.asm (save_interrupt): Correct register number.
        (return_interrupt): Use stack pointer, not element pointer.

From-SVN: r15550
1997-09-18 17:19:55 -06:00
Jeffrey A Law
9ee29ed7fd Makefile.in (stamp-lib): Don't use '$?'...
* Makefile.in (stamp-lib): Don't use '$?', explicitly
        list the variables containing the object files to include
        in libf2c.a

From-SVN: r15545
1997-09-18 16:56:25 -06:00
Jeffrey A Law
d6420b5b31 * Make-lang.in: Fix merge problems.
From-SVN: r15544
1997-09-18 16:06:05 -06:00
Brendan Kehoe
93cf819dee configure.in, configure: Make sure to create the stage* and include symbolic links in each subdirectory.
* configure.in, configure: Make sure to create the stage* and include
	symbolic links in each subdirectory.

copy that's also now in at the FSF; only does it if $symbolic_link is
defined to `ln -s'

From-SVN: r15543
1997-09-18 15:50:51 -04:00
Jeffrey A Law
f05011492b pa.md (reload_peepholes): Don't allow addresses with side effects for the memory operand.
* pa.md (reload_peepholes): Don't allow addresses with side
        effects for the memory operand.
Geez, how long have we been screwing this up...

From-SVN: r15536
1997-09-18 01:45:15 -06:00
Jeffrey A Law
5aa0f40f6a install-info.c: Only provide an external decl for strrchr if HAVE_STRCHR is not defined.
* util/install-info.c: Only provide an external decl for strrchr
        if HAVE_STRCHR is not defined.
Fixes aix build problem.

From-SVN: r15535
1997-09-17 23:54:18 -06:00
Jason Merrill
4f870c0425 libgcc2.c (find_exception_handler): Subtract one from our PC when looking for a handler...
* libgcc2.c (find_exception_handler): Subtract one from our PC when
 	looking for a handler, to avoid hitting the beginning of the next
 	region.

	* except.c (expand_builtin_set_return_addr_reg): Use force_operand.

From-SVN: r15534
1997-09-17 21:23:34 -04:00
Jeffrey A Law
4eb66248bf abi64.h (LONG_MAX_SPEC): Define.
* mips/abi64.h (LONG_MAX_SPEC): Define.
        * mips.h (LONG_MAX_SPEC): Define.
        (CPP_SPEC): Include long_max_spec.
        (EXTRA_SPECS): Include long_max_spec.

Brought over from devo.

From-SVN: r15531
1997-09-17 18:31:51 -06:00
Brendan Kehoe
f996e5138b configure.in, configure: Make sure to create the stage* and include symbolic links in each subdirectory...
* configure.in, configure: Make sure to create the stage* and include
	symbolic links in each subdirectory, as we do in configure.lang for
	non-autoconf configurations.

From-SVN: r15529
1997-09-17 19:55:30 -04:00
Brendan Kehoe
4e8a434e98 configure.in, configure: Make sure to create the stage* and include symbolic links in each subdirectory...
* configure.in, configure: Make sure to create the stage* and include
	symbolic links in each subdirectory, as we do in configure.lang for
	non-autoconf configurations.

fixes cp 3stage problem

From-SVN: r15528
1997-09-17 19:55:13 -04:00
Jeffrey A Law
4415850727 * v850.c (construct_save_jarl): Fix thinko in last change.
From-SVN: r15518
1997-09-17 14:09:41 -06:00
Jason Merrill
66f2e88dd6 decl.c (grokparms): Don't bash a permanent list node if we're in a function.
* decl.c (grokparms): Don't bash a permanent list node if we're
	in a function.

From-SVN: r15516
1997-09-17 14:18:09 -04:00
Brendan Kehoe
8552680f15 * Makefile.in (CONFLICTS): Fix s/r conflict count to 18.
From-SVN: r15514
1997-09-17 14:05:58 -04:00
Jeff Law
bf520cd90b Bump for snapshot (really, we will make a snapshot this time :-)
From-SVN: r15507
1997-09-17 09:51:45 -06:00
Jason Merrill
d5467e204a call.c (build_new_op): Give better error for syntactically correct...
* call.c (build_new_op): Give better error for syntactically
 	correct, but semantically invalid, use of undeclared template.

From-SVN: r15506
1997-09-16 22:23:05 -04:00
Ulrich Drepper
6c1d570678 Fix all problems reported by the test suite.
From-SVN: r15505
1997-09-17 02:10:30 +00:00
Jason Merrill
c0727e2a06 * libgcc2.c (find_exception_handler): Not found is -1.
From-SVN: r15504
1997-09-16 21:55:49 -04:00
Ulrich Drepper
5ae9a80ae1 Handle __set_errno correctly.
From-SVN: r15502
1997-09-17 00:54:03 +00:00
Jason Merrill
11dbec6686 revert accidental change
From-SVN: r15501
1997-09-16 19:59:15 -04:00
Jason Merrill
549121cd61 * call.c (compare_qual): Handle pmfs.
From-SVN: r15500
1997-09-16 18:44:13 -04:00
Jason Merrill
255fe733b3 integrate.c (expand_inline_function): Move expand_start_bindings after expanding the arguments.
* integrate.c (expand_inline_function): Move expand_start_bindings
	after expanding the arguments.

From-SVN: r15499
1997-09-16 17:23:59 -04:00
Jason Merrill
5c825fc20b decl.c (store_parm_decls): last_parm_cleanup_insn is the insn after the exception spec.
* decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
 	after the exception spec.

From-SVN: r15497
1997-09-16 17:08:30 -04:00
Jim Wilson
21002281e5 Fix H.J. Lu's alpha-linux bug with TImode constructors.
* expr.c (expand_expr): Remove previous incorrect change.
	If target and slot has no DECL_RTL, then call mark_addressable
	again for the slot after we give it RTL.

From-SVN: r15496
1997-09-16 13:59:22 -07:00
Jeff Law
7d9e0d333c Initial revision
From-SVN: r15492
1997-09-16 14:39:44 -06:00
Jim Wilson
518be9a392 Remove ChangeLog entry for non-existant change.
From-SVN: r15491
1997-09-16 10:36:28 -07:00
Jeff Law
dfd35b2066 Minor tweaks before snapshot.
From-SVN: r15488
1997-09-16 10:12:41 -06:00
Jeff Law
382738969d More stuff from Uli.
From-SVN: r15487
1997-09-16 10:11:13 -06:00
Ulrich Drepper
e693cc28bb Uli's libio/libstdc++ patches.
From-SVN: r15486
1997-09-16 10:01:55 -06:00
Jason Merrill
610ce97e65 expr.c (expand_expr, [...]): Call mark_addressable again for the slot after we give it RTL.
* expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable
 	again for the slot after we give it RTL.

From-SVN: r15482
1997-09-16 03:53:56 -04:00
Jeffrey A Law
f633220ce2 * version.c: Bump for snapshot.
From-SVN: r15480
1997-09-16 00:39:02 -06:00
Jeff Law
84e750688b Tweak v850 ChangeLog entries.
From-SVN: r15478
1997-09-16 00:16:57 -06:00
Nick Clifton
145870b56f v850.c (register_is_ok_for_epilogue, [...]): New functions.
* config/v850/v850.c (register_is_ok_for_epilogue,
        pattern_is_ok_for_epilogue, construct_restore_jr,
        pattern_is_ok_for_prologue, construct_save_jarl): New functions.

        * config/v850/v850.h (pattern_is_ok_for_prologue,
        pattern_is_ok_for_epilogue, register_is_ok_for_epilogue): New
        predicates.

        * config/v850/v850.md: Replace prologue and epilogue patterns with a
        match_parallel pattern.

        * config/v850/v850.c (output_move_single_unsigned): Cope with zero
        extending and moving between registers at the same time.

Brought over from devo.

From-SVN: r15477
1997-09-16 00:13:27 -06:00
Jeff Law
9302e6e54c More formatting fixes.
From-SVN: r15476
1997-09-16 00:03:16 -06:00
Jeff Law
07f7a41acc Remove more CYGNUS LOCAL markers.
From-SVN: r15475
1997-09-15 23:52:35 -06:00
Jeff Law
5bfa6cfa3d Remove CYGNUS LOCAL markers.
From-SVN: r15474
1997-09-15 23:23:38 -06:00
Jeff Law
7b9eb580d5 Forgot to check in.
From-SVN: r15473
1997-09-15 23:19:29 -06:00
Jeffrey A Law
999087f678 aclocal.m4: Add replacement for AC_PROG_INSTALL.
* aclocal.m4: Add replacement for AC_PROG_INSTALL.
        * configure.in: Use EGCS_PROG_INSTALL.

From-SVN: r15472
1997-09-15 23:01:43 -06:00
Jeffrey A Law
76143254dc aclocal.m4: New file with replacement for AC_PROG_INSTALL.
* aclocal.m4: New file with replacement for AC_PROG_INSTALL.
        * configure.in: Use EGCS_PROG_INSTALL.

From-SVN: r15471
1997-09-15 22:55:29 -06:00
Jeff Law
4401bf245c dwarf2out.c (gen_subprogram_die): Handle redefinition of an extern inline function.
* dwarf2out.c (gen_subprogram_die): Handle redefinition of an
        extern inline function.

        * dwarf2out.c (reg_loc_descriptor): Fix prototype.
        (concat_loc_descriptor): New function.
        (loc_descriptor): Call it.
        (add_AT_location_description): Also elide the descriptor if both
        halves of a CONCAT are pseudos.
        (add_location_or_const_value_attribute): Recognize CONCAT too.
Bring over from devo/fsf.

From-SVN: r15470
1997-09-15 22:39:46 -06:00
Jeff Law
33687242dc Use @code instead of @uref until we upgrade texinfo.
From-SVN: r15469
1997-09-15 22:35:37 -06:00
Manfred Hollstein
e8ee97bf2b Renamed fixinc.math to fixinc.wrap
From-SVN: r15465
1997-09-16 03:59:48 +00:00
Jason Merrill
ca55abaee7 dwarf2 EH support
From-SVN: r15464
1997-09-15 22:07:50 -04:00
Jason Merrill
5168dcfc44 * call.c (null_ptr_cst_p): Integer type, not integral type.
From-SVN: r15463
1997-09-15 19:35:18 -04:00
Richard Henderson
4bb437245c Patch from Richard Henderson for alpha-linux ld.so bug.
* alpha.md (movdi): Handle CONST_DOUBLE for TARGET_BUILD_CONSTANTS.

From-SVN: r15459
1997-09-15 15:36:34 -07:00
Richard Henderson
0d24ff5d24 Patch from Richard Henderson for large frames.
* alpha/alpha.c (output_prolog): New variable sa_reg.  Use it for
	out-or-range reg_offset.
	(output_epilog): Likewise.

From-SVN: r15458
1997-09-15 15:28:34 -07:00
Jason Merrill
4da0677ba7 dwarf2 EH support
From-SVN: r15455
1997-09-15 18:25:30 -04:00
Jeffrey A Law
05ef889761 cse.c (simplify_relational_operation): If MODE specifies a mode wider than HOST_WIDE_INT...
* cse.c (simplify_relational_operation): If MODE specifies a
        mode wider than HOST_WIDE_INT, then the high word of a CONST_INT
        is derived from the sign bit of the low word.

Brought over from r5900 branch.

From-SVN: r15454
1997-09-15 15:37:39 -06:00
Jeff Law
dcb9d1f061 Document -ms for the H8/S.
From-SVN: r15453
1997-09-15 13:15:35 -06:00
Brendan Kehoe
1d77fa5397 except.c (find_exception_handler_labels): Use xmalloc instead of alloca...
* except.c (find_exception_handler_labels): Use xmalloc instead of
	alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million
	in some cases.

From-SVN: r15452
1997-09-15 15:07:05 -04:00
Jason Merrill
18a7cd243d call.c (joust): Disable warnings until they can be moved to the right place.
* call.c (joust): Disable warnings until they can be moved to the
	right place.

From-SVN: r15450
1997-09-15 14:53:28 -04:00
Jeffrey A Law
01d8acec7a * lib/g++.exp (g++_init): Look for xgcc in $basedir too.
From-SVN: r15449
1997-09-15 00:38:11 -06:00
Jeffrey A Law
8be52aaa68 Makefile.in: Various changes to build info files in the object tree rather than the source tree.
* Makefile.in: Various changes to build info files
        in the object tree rather than the source tree.

From-SVN: r15448
1997-09-14 21:04:48 -06:00
Jeffrey A Law
f0e6e32439 Make-lang.in: Various changes to build info files in the object tree rather than the source tree.
* Make-lang.in: Various changes to build info files
        in the object tree rather than the source tree.

        * proj.h: Include ctype.h.

From-SVN: r15447
1997-09-14 21:02:41 -06:00
Jeff Law
f2d19dd24a We're moving away from distributing generated files.
From-SVN: r15446
1997-09-14 20:55:47 -06:00
Jeff Law
a3ee32467c Forgot to commit.
From-SVN: r15445
1997-09-14 14:09:02 -06:00
Jeff Law
24d28e0549 Update.
From-SVN: r15444
1997-09-14 14:04:54 -06:00
Jeff Law
34b8e4280d Update to official g77-0.5.21.
From-SVN: r15443
1997-09-14 14:04:23 -06:00
Jeff Law
ddd28aec2d This commit was generated by cvs2svn to compensate for changes in r15440,
which included commits to RCS files with non-trunk default branches.

From-SVN: r15441
1997-09-14 13:36:32 -06:00
Jeff Law
981c1e246f Initial revision
From-SVN: r15438
1997-09-14 13:34:57 -06:00
Fred Fish
a9aaedc9f7 * proj.h (isascii): Provide a default definition if none is available.
From-SVN: r15437
1997-09-14 12:36:19 -06:00
Jeff Law
be1ed94f89 fixinc.math: New file to fix math.h on some systems.
* fixinc.math: New file to fix math.h on some systems.
        * configure.in (freebsd, netbsd): Use fixinc.math on these
        systems.
        * configure: Rebuilt.
Should fix struct exception problems for freebsd, netbsd.  Can be used
for others.

From-SVN: r15436
1997-09-14 12:29:43 -06:00
Jeffrey A Law
124da27518 regmove.c (regmove_optimize): If we end up moving the original insn due to lifetime overlaps...
* regmove.c (regmove_optimize): If we end up moving the
	original insn due to lifetime overlaps, make sure to move
	REG_NOTES too.
Fixes x86 (and maybe h8) failure.

From-SVN: r15435
1997-09-14 11:11:52 -06:00
Manfred Hollstein
fca9d4b0d4 Patch from Manfred Hollstein, don't set execute bits when installing data files
* Makefile.in (INSTALL_{PROGRAM,DATA}): Use value found by configure.

From-SVN: r15431
1997-09-13 15:52:49 -07:00
Jeffrey A Law
326ee7a3fe haifa-sched.c (add_branch_dependences): Make each insn in a SCHED_GROUP_P block explicitly depend on the previous insn.
* haifa-sched.c (add_branch_dependences): Make each insn in
        a SCHED_GROUP_P block explicitly depend on the previous insn.
Fixes x86 abort.

From-SVN: r15430
1997-09-13 13:00:22 -06:00
Per Bothner
0520f6c01a * Makefile.in, config-lang.in: Convert to autoconf.
From-SVN: r15429
1997-09-12 16:25:29 -07:00
Dave Love
3c5b8fa6b4 Patch from Dave Love
* config-lang.in: Remove the messages about possible build problems.

From-SVN: r15425
1997-09-11 19:27:51 -07:00
Jason Merrill
810b9f2c0e * Makefile.in (iostream.list): Remove STDIO_WRAP_OBJECTS.
From-SVN: r15424
1997-09-11 22:16:24 -04:00
Jason Merrill
2a32969dd4 bastring.h (class basic_string): Add global scope to use of reverse_iterator.
* std/bastring.h (class basic_string): Add global scope to
	use of reverse_iterator.

From-SVN: r15423
1997-09-11 21:56:59 -04:00
Jason Merrill
85b71cf211 [multiple changes]
Thu Sep 11 17:14:55 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* decl.c (lookup_name_real): Add implicit 'typename' to types from
	base classes.

	* pt.c (most_specialized_class): Fix typo.
	(tsubst): Move constant folding to TREE_VEC case.

Thu Sep 11 10:08:45 1997  Mark Mitchell  <mmitchell@usa.net>

	* pt.c (do_poplevel): Don't warn about unused local variables
	while processing_template_decl since we don't always know whether
	or not they will need constructing/destructing.

	* pt.c (uses_template_parms): Check the values of an enumeration
	type to make sure they don't depend on template parms.

	* decl.c (make_typename_type): Don't lookup the field if the
	context uses template parms, even if we're not
	processing_template_decl at the moment.

	* pt.c (coerce_template_parms): Avoid looking at the
	TYPE_LANG_DECL portion of a typename type, since there won't be
	one.
	(tsubst): Do constant folding as necessary to make sure that
	arguments passed to lookup_template_class really are constants.

From-SVN: r15422
1997-09-11 21:53:33 -04:00
Jim Wilson
5188d2b2fa Never set prefix=/usr by default.
* configure.in (native_prefix): Delete.
	(mips-dec-netbsd): Don't set prefix.
	(*linux*): Don't set prefix.

From-SVN: r15421
1997-09-11 17:51:01 -07:00
Fred Fish
70988851ef Patches from Fred Fish for systems with sys/varargs.h but not varargs.h.
* protoize.c: Include <varargs.h> only if HAVE_VARARGS_H is
	defined.  If not defined, include <sys/varargs.h> if
	HAVE_SYS_VARARGS_H is defined.
	* configure.in: Test for varargs.h and sys/varargs.h.
	* configure: Regenerate with autoconf.
	* config.in: Regenerate with autoheader.

From-SVN: r15420
1997-09-11 17:39:10 -07:00
Jim Wilson
f401679ee1 Patches from H.J. Lu for alpha-linux -fPIC --enable-shared problem.
* Makefile.in (local-distclean): Also remove mh-frag mt-frag.
	* configure.in (skipdirs): Add target-librx for Linux.
	(alpha-*-linux*): Use config/mh-elfalphapic and config/mt-elfalphapic.
	* mh-elfalphapic, mt-elfalphapic: New files.

From-SVN: r15419
1997-09-11 16:44:33 -07:00
Fred Fish
2e384318d3 From Fred Fish, fix BeOS (I assume) related problem with mixing char pointers.
* cpplib.c (quote_string): Cast first arg of sprintf call
	from "unsigned char *" to "char *".
	(output_line_command): Ditto.
	(macroexpand): Ditto.
	(do_line): Cast atoi arg from "unsigned char *" to "char *".

From-SVN: r15418
1997-09-11 15:51:33 -07:00
Jim Wilson
ac64120eeb Add Fred Fish's LN/LN_S patch.
From-SVN: r15415
1997-09-11 13:39:08 -07:00
Jeffrey A Law
7f69978172 scope4.C: No longer expected to fail.
* g++.old-deja/g++.brendan/scope4.C: No longer expected to fail.
        * g++.old-deja/g++.mike/p7325.C: Likewise.
        * g++.old-deja/g++.mike/eh51.C: No longer expected to fail on the PA.

From-SVN: r15413
1997-09-11 13:53:52 -06:00
Jeffrey A Law
432438724e * loop.c (strength_reduce): Fix typo.
From-SVN: r15408
1997-09-11 11:08:01 -06:00
Alexandre Oliva
45591aaf4d crash20.C: Rework to avoid libg++.
* g++.old-deja/g++.brendan/crash20.C: Rework to avoid libg++.
        * g++.old-deja/g++.brendan/crash30.C: Likewise.
        * g++.old-deja/g++.brendan/crash39.C: Likewise.
        * g++.old-deja/g++.law/operators4.C: Likewise.

From-SVN: r15407
1997-09-11 10:00:02 -06:00
Joe Buck
9687fea5e0 p658.C: eliminate <bool.h> use.
* g++.old-deja/g++.mike/p658.C: eliminate <bool.h> use.
        * g++.old-deja/g++.mike/p784.C: Ditto.
        * g++.old-deja/g++.mike/p785.C: Ditto.
Avoid libg++ specific stuff.

From-SVN: r15406
1997-09-11 09:52:11 -06:00
Jeff Law
0326887985 Back out Kenner's Makefile.in patch.
From-SVN: r15403
1997-09-10 22:18:16 -06:00
Jeffrey A Law
f2e4e16f79 Bump for snapshot.
From-SVN: r15402
1997-09-10 22:11:01 -06:00
Michael Meissner
3b33f637d9 fix typo
From-SVN: r15401
1997-09-11 03:52:26 +00:00
Jeffrey A Law
3fb2f40127 Makefile (compare): Exit with nonzero status if there are comparison failures.
* Makefile (compare): Exit with nonzero status if there
        are comparison failures.  Note which files failed the
        comparison test in .bad_compare.
For toplevel "make bootstrap".

From-SVN: r15400
1997-09-10 21:36:41 -06:00
Jeffrey A Law
ec20b1b98c * Makefile.in (bootstrap): New target.
From-SVN: r15399
1997-09-10 21:32:08 -06:00
Michael Meissner
1791f8e236 make change to spacing for Kenner
From-SVN: r15398
1997-09-11 03:27:50 +00:00
Jeff Law
22cbb540d0 Remove last change. Not needed for egcs yet.
From-SVN: r15397
1997-09-10 21:01:15 -06:00
H.J. Lu
d26cb66831 Patch from H.J. Lu for alpha-linux.
* config/alpha/elf.h (CPP_PREDEFINES): Remove -D__PIC__ -D__pic__.

From-SVN: r15394
1997-09-10 17:07:06 -07:00
Jim Wilson
db87ec0b58 Clean up patches for delta88 nested function support.
* m88k/m88k.c (struct option): Rename to struct options.
	* m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here.
	* m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Delete ifdef and comments.
	* libgcc2.c (__enable_execute_stack): Check for __sysV88__ not
	__DOLPHIN__ or sysV88.

From-SVN: r15393
1997-09-10 16:34:58 -07:00
Richard Kenner
dc3fce9020 Makefile.in (LN): Add new symbol.
* Makefile.in (LN): Add new symbol.
        (FLAGS_TO_PASS): Pass it down.
        (stage[1-4]-start): Use $(LN), not "ln -s".
Bring over from gcc2.

From-SVN: r15392
1997-09-10 16:14:29 -06:00
Jim Wilson
04395f964f Fix problem reported by chris@lslsun.epfl.ch (Christian Iseli)
Fix problem reported by chris@lslsun.epfl.ch (Christian Iseli)
	* emit-rtl.c (gen_lowpart_common): For a SUBREG, add in word when
	create new subreg.

From-SVN: r15391
1997-09-10 15:04:24 -07:00
Jeffrey A Law
becdcf6da0 * config.sub: Accept 'amigados' for backward compatability.
From-SVN: r15389
1997-09-10 15:18:25 -06:00
Jim Wilson
3979dfb8b6 Install patch from H.J. Lu to make parallel make check work.
* Makefile.in (testsuite/site.exp): New target.
	(check-gcc, check-g++): Depend on testsuite/site.exp.
	Don't stop for failure.

From-SVN: r15269
1997-09-10 14:06:59 -07:00
Jason Merrill
81e98a98dc missing entry
From-SVN: r15268
1997-09-10 16:15:23 -04:00
Jim Wilson
0c65e50c07 Rebuild from source files.
From-SVN: r15264
1997-09-10 12:33:33 -07:00
H.J. Lu
1d11dd74fa Patch to fix parallel makes from H.J. Lu.
* Makefile (all): Remove sub-all.
	(stmp-sub-all): New target. Renamed from sub-all.
	(info, texinfo): Also depend on stmp-sub-all.
	(clean): Also remove stmp*.
	(maintainer-clean): New target. Same as realclean.

From-SVN: r15263
1997-09-10 11:54:55 -07:00
Jeff Law
2c3c65d745 Opps. Forgot part of the patch for $(srcdir)/INSTALL change.
From-SVN: r15262
1997-09-10 12:16:50 -06:00
Jason Merrill
4877a06fa4 dwarf2 EH support
From-SVN: r15257
1997-09-10 14:02:36 -04:00
Manfred Hollstein
9dfc6eba89 * m88k/sysv3.h (INITIALIZE_TRAMPOLINE) Define.
* libgcc2.c (__enable_execute_stack): Provide for sysV88 too.

From-SVN: r15256
1997-09-10 12:02:16 -06:00
Jason Merrill
0021b564f4 dwarf2 EH support
From-SVN: r15255
1997-09-10 14:00:28 -04:00
Jeffrey A Law
0680d17043 * expr.c (emit_block_move): Always return a value.
From-SVN: r15252
1997-09-10 10:52:45 -06:00
Jeff Law
8eb30e12b6 Arc changes I forgot in last commit.
From-SVN: r15221
1997-09-10 01:53:17 -06:00
Jeff Law
b4d940a26d Add port done awhile ago for the ARC cpu.
* arc/arc.h: New file.
        * arc/arc.c: New file.
        * arc/arc.md: New file.
        * arc/initfini.c: New file.
        * arc/lib1funcs.asm: New file.
        * arc/t-arc: New file.
        * arc/xm-arc.h: New file.
        * ginclude/va-arc.h: New file.
        * ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
        * ginclude/varargs.h: Likewise.
        * Makefile.in (USER_H): Add va-arc.h.
        * configure.in (arc-*-elf*): Recognize.
        * longlong.h: Add ARC support.
Mostly so I can test changes in snapshot scripts.

        * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
        when clearing non-BLKmode data.
Fixes sparc problem.

From-SVN: r15220
1997-09-10 01:50:16 -06:00
Jeff Law
003455d9aa Forgot to commit..
From-SVN: r15219
1997-09-10 00:42:02 -06:00
Manfred Hollstein
552592195e * xm-m88k.h (USG): Only define if it hasn't already been defined.
From-SVN: r15218
1997-09-10 00:37:46 -06:00
Manfred Hollstein
ee2910692e * Makefile.in (clean): Delete libgcc1-test.
From-SVN: r15217
1997-09-10 00:32:10 -06:00
Jeff Law
102115816c Makefile.in (INSTALL): cd to $(srcdir) before running texinfo.
* Makefile.in (INSTALL): cd to $(srcdir) before running texinfo.
(Until we start building all this gunk in objdir...)

From-SVN: r15216
1997-09-10 00:29:35 -06:00
Stan Cox
48f0be1b36 m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list template.
* m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list
        template.

Also invoke.texi tweaks for v850.

From-SVN: r15215
1997-09-09 21:57:12 -06:00
Jason Merrill
1dec6c7b3d new testcases
From-SVN: r15214
1997-09-09 23:34:51 -04:00
Jason Merrill
2ca340aed3 * pt.c (unify): Just return 0 for a TYPENAME_TYPE.
From-SVN: r15213
1997-09-09 22:53:42 -04:00
Jason Merrill
f12bc7b53d * std/bastring.h: Adjust use of reverse_iterator template.
From-SVN: r15212
1997-09-09 22:51:35 -04:00
Jason Merrill
ff893307d0 algo.h, [...]: Update To September 8 SGI release.
* algo.h, algobase.h, alloc.h, bvector.h, deque.h, hashtable.h,
	iterator.h, list.h, rope.h, ropeimpl.h, slist.h, stl_config.h,
	tree.h, vector.h: Update To September 8 SGI release.

From-SVN: r15211
1997-09-09 22:49:45 -04:00
Jim Wilson
c6b50f1082 Patch from Alexandre Oliva to fix SunOS4 install problem.
* Makefile.in (install_to_libdir, install_to_tooldir): Add MULTISUBDIR
	to all filenames in libdir and tooldir.

From-SVN: r15210
1997-09-09 19:46:16 -07:00
Mark Mitchell
113952ef50 stl_config.h (__STL_MEMBER_TEMPLATES): Enable.
Tue Sep  9 17:38:47 1997  Mark Mitchell  <mmitchell@usa.net>

	* stl_config.h (__STL_MEMBER_TEMPLATES): Enable.

From-SVN: r15209
1997-09-09 22:29:42 -04:00
Mark Mitchell
0355541399 error.c (dump_decl): Avoid crashing when presented with a uninitialized constant...
Tue Sep  9 17:57:25 1997  Mark Mitchell  <mmitchell@usa.net>

	* error.c (dump_decl): Avoid crashing when presented with a
	uninitialized constant, as can occur with a template parameter.

From-SVN: r15208
1997-09-09 22:28:20 -04:00
Jason Merrill
a2676865a6 except.c (expand_throw): Call build_delete for all exception types, not just objects with destructors.
* except.c (expand_throw): Call build_delete for all
	exception types, not just objects with destructors.

From-SVN: r15207
1997-09-09 20:59:16 -04:00
Jeff Law
c82af01654 Add libgcc2 exception to copyright notice.
From-SVN: r15205
1997-09-09 17:33:35 -06:00
Jeff Law
66ed068304 Add port done awhile ago for the ARC cpu.
* arc/arc.h: New file.
        * arc/arc.c: New file.
        * arc/arc.md: New file.
        * arc/initfini.c: New file.
        * arc/lib1funcs.asm: New file.
        * arc/t-arc: New file.
        * arc/xm-arc.h: New file.
        * ginclude/va-arc.h: New file.
        * ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
        * ginclude/varargs.h: Likewise.
        * Makefile.in (USER_H): Add va-arc.h.
        * configure.in (arc-*-elf*): Recognize.
        * longlong.h: Add ARC support.
Mostly so I can test changes in snapshot scripts.

        * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
        when clearing non-BLKmode data.
Fixes sparc problem.

From-SVN: r15198
1997-09-09 16:21:04 -06:00
Brendan Kehoe
b0d75c1eca typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to c-typeck.c.
* typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to
        c-typeck.c.

From-SVN: r15197
1997-09-09 18:20:47 -04:00
Jeff Law
ee89446f5b Add port done awhile ago for the ARC cpu.
* arc/arc.h: New file.
        * arc/arc.c: New file.
        * arc/arc.md: New file.
        * arc/initfini.c: New file.
        * arc/lib1funcs.asm: New file.
        * arc/t-arc: New file.
        * arc/xm-arc.h: New file.
        * ginclude/va-arc.h: New file.
        * ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
        * ginclude/varargs.h: Likewise.
        * Makefile.in (USER_H): Add va-arc.h.
        * configure.in (arc-*-elf*): Recognize.
        * longlong.h: Add ARC support.
Mostly so I can test changes in snapshot scripts.

        * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
        when clearing non-BLKmode data.
Fixes sparc problem.

From-SVN: r15190
1997-09-09 15:58:23 -06:00
Jeff Law
6eb70e69c4 Add port done awhile ago for the ARC cpu.
* arc/arc.h: New file.
        * arc/arc.c: New file.
        * arc/arc.md: New file.
        * arc/initfini.c: New file.
        * arc/lib1funcs.asm: New file.
        * arc/t-arc: New file.
        * arc/xm-arc.h: New file.
        * ginclude/va-arc.h: New file.
        * ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
        * ginclude/varargs.h: Likewise.
        * Makefile.in (USER_H): Add va-arc.h.
        * configure.in (arc-*-elf*): Recognize.
        * longlong.h: Add ARC support.
Mostly so I can test changes in snapshot scripts.

        * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
        when clearing non-BLKmode data.
Fixes sparc problem.

From-SVN: r15189
1997-09-09 15:57:17 -06:00
Jeff Law
81049807ba Add port done awhile ago for the ARC cpu.
* arc/arc.h: New file.
        * arc/arc.c: New file.
        * arc/arc.md: New file.
        * arc/initfini.c: New file.
        * arc/lib1funcs.asm: New file.
        * arc/t-arc: New file.
        * arc/xm-arc.h: New file.
        * ginclude/va-arc.h: New file.
        * ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
        * ginclude/varargs.h: Likewise.
        * Makefile.in (USER_H): Add va-arc.h.
        * configure.in (arc-*-elf*): Recognize.
        * longlong.h: Add ARC support.
Mostly so I can test changes in snapshot scripts.

        * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
        when clearing non-BLKmode data.
Fixes sparc problem.

From-SVN: r15188
1997-09-09 15:56:06 -06:00
Jeff Law
5680076c75 Add port done awhile ago for the ARC cpu.
* arc/arc.h: New file.
        * arc/arc.c: New file.
        * arc/arc.md: New file.
        * arc/initfini.c: New file.
        * arc/lib1funcs.asm: New file.
        * arc/t-arc: New file.
        * arc/xm-arc.h: New file.
        * ginclude/va-arc.h: New file.
        * ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
        * ginclude/varargs.h: Likewise.
        * Makefile.in (USER_H): Add va-arc.h.
        * configure.in (arc-*-elf*): Recognize.
        * longlong.h: Add ARC support.
Mostly so I can test changes in snapshot scripts.

        * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
        when clearing non-BLKmode data.
Fixes sparc problem.

From-SVN: r15187
1997-09-09 15:51:41 -06:00
Jeff Law
e90d5e5777 Add port done awhile ago for the ARC cpu.
* arc/arc.h: New file.
        * arc/arc.c: New file.
        * arc/arc.md: New file.
        * arc/initfini.c: New file.
        * arc/lib1funcs.asm: New file.
        * arc/t-arc: New file.
        * arc/xm-arc.h: New file.
        * ginclude/va-arc.h: New file.
        * ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
        * ginclude/varargs.h: Likewise.
        * Makefile.in (USER_H): Add va-arc.h.
        * configure.in (arc-*-elf*): Recognize.
        * longlong.h: Add ARC support.
Mostly so I can test changes in snapshot scripts.

        * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
        when clearing non-BLKmode data.
Fixes sparc problem.

From-SVN: r15186
1997-09-09 15:51:14 -06:00
Jeff Law
0143027a1f Add port done awhile ago for the ARC cpu.
* arc/arc.h: New file.
        * arc/arc.c: New file.
        * arc/arc.md: New file.
        * arc/initfini.c: New file.
        * arc/lib1funcs.asm: New file.
        * arc/t-arc: New file.
        * arc/xm-arc.h: New file.
        * ginclude/va-arc.h: New file.
        * ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
        * ginclude/varargs.h: Likewise.
        * Makefile.in (USER_H): Add va-arc.h.
        * configure.in (arc-*-elf*): Recognize.
        * longlong.h: Add ARC support.
Mostly so I can test changes in snapshot scripts.

        * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
        when clearing non-BLKmode data.
Fixes sparc problem.

From-SVN: r15185
1997-09-09 15:50:29 -06:00
Jeff Law
d7ad6040df Add port done awhile ago for the ARC cpu.
* arc/arc.h: New file.
        * arc/arc.c: New file.
        * arc/arc.md: New file.
        * arc/initfini.c: New file.
        * arc/lib1funcs.asm: New file.
        * arc/t-arc: New file.
        * arc/xm-arc.h: New file.
        * ginclude/va-arc.h: New file.
        * ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
        * ginclude/varargs.h: Likewise.
        * Makefile.in (USER_H): Add va-arc.h.
        * configure.in (arc-*-elf*): Recognize.
        * longlong.h: Add ARC support.
Mostly so I can test changes in snapshot scripts.

        * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
        when clearing non-BLKmode data.
Fixes sparc problem.

From-SVN: r15184
1997-09-09 15:50:26 -06:00
Jim Wilson
233bd86d2e Add CYGWIN32 support.
* g77.c (pexecute, doit): Add checks for __CYGWIN32__.

From-SVN: r15183
1997-09-09 13:21:58 -07:00
Jeffrey A Law
8f3d79e05f * haifa-sched.c (print_value): Fix last change.
From-SVN: r15181
1997-09-09 09:12:06 -06:00
Nick Clifton
74aca74bc3 v850.h (ASM_SPEC): Pass on target processor.
* v850.h (ASM_SPEC): Pass on target processor.
        (CPP_PREDEFINES): Only define if not already specified.
        (TARGET_VERSION): Only define if not already specified.
        (MASK_CPU, MASK_V850, MASK_DEFAULT): Bits to specify target
        processor.
        (EXTRA_SWITCHES): Extra entries in the switches array.
        (TARGET_DEFAULT): Set default target processor.

From-SVN: r15180
1997-09-09 09:06:54 -06:00
Jim Wilson
c0b041480e Fix m68k-hp-hpux8 problem for Manfred Holstein.
* m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): In MOTOROLA
	cases, add %# and %/, and add : to make them into extended asms.

From-SVN: r15174
1997-09-08 18:34:17 -07:00
Weiwen Liu
2ce72aa0a8 * libio.h: Fix typo.
From-SVN: r15170
1997-09-08 10:12:05 -06:00
Weiwen Liu
52b7724b84 alias.c (init_alias_analysis): Clean up incompatible pointer type warning in bzero.
* alias.c (init_alias_analysis): Clean up incompatible pointer
        type warning in bzero.
        * regmove.c (regmove_optimize): Ditto.
        * haifa-sched.c (find_rgns): Ditto.

        * haifa-sched.c (print_value): Clean up ptr->int cast
        warnings.

From-SVN: r15169
1997-09-08 10:06:18 -06:00
Jeff Law
1a5de45f37 Fix thinko.
From-SVN: r15168
1997-09-08 08:53:44 -06:00
Jody Goldberg
b3d5a58b51 decl.c (current_local_enum): Remove static.
Mon Sep  8 02:33:20 1997  Jody Goldberg  <jodyg@idt.net>

	* decl.c (current_local_enum): Remove static.
	* pt.c (tsubst_enum): Save and restore value of current_local_enum
	in case template is expanded in enum decl.
	(instantiate_class_template) : Use new tsubst_enum signature.
	(tsubst_expr): Likewise.

From-SVN: r15156
1997-09-08 05:37:29 -04:00
Mark Mitchell
786b524596 pt.c (begin_member_template_processing): Take a function as argument, not a set of template arguments.
Mon Sep  8 01:21:43 1997  Mark Mitchell  <mmitchell@usa.net>

	* pt.c (begin_member_template_processing): Take a function as
	argument, not a set of template arguments.  Use the template
	parameters, rather than the arguments.  Handle non-type parameters
	correctly.  Push a binding level for the parameters so that multiple
	member templates using the same parameter names can be declared.
	(end_member_template_processing): Pop the binding level.
	(push_template_decl): Mark member templates as static when
	appropriate.

	* lex.c (do_pending_inlines): Pass the function, not its template
	arguments, to begin_member_template_processing.
	(process_next_inline): Likewise.
	(do_pending_defargs): Likewise.

	* error.c (dump_expr): Obtain the correct declaration for a
	TEMPLATE_CONST_PARM.

	* call.c (add_template_conv_candidate): New function.
	(build_object_call): Handle member templates, as done in the other
	build_ functions.

From-SVN: r15155
1997-09-08 05:28:51 -04:00
Jason Merrill
267c09ab53 dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL prologue insn, only the first elt is significant.
* dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL
 	prologue insn, only the first elt is significant.
	(output_call_frame_info): For exception handling, always use 4-byte
 	fields as specified by the dwarf2 spec.
	Don't skip trivial FDEs.

From-SVN: r15154
1997-09-08 04:53:21 -04:00
Fred Fish
0c82f6bfae INSTALL: Change 'amigados' to 'amigaos' to match current usage.
* INSTALL: Change 'amigados' to 'amigaos' to match current usage.
	* install.texi (Configurations): Ditto.
	* config.sub: Ditto.

From-SVN: r15143
1997-09-07 23:17:48 -06:00
Jim Wilson
44010f9161 linux.mt (LIBIOSTREAM_DEP): Change stdio.list to stmp-stdio.
* linux.mt (LIBIOSTREAM_DEP): Change stdio.list to stmp-stdio.
Should fix linux build problem.

From-SVN: r15142
1997-09-07 22:58:57 -06:00
Weiwen Liu
1fed1f518f * Makefile.in (sdbout.o): Depend on insn-config.h.
From-SVN: r15141
1997-09-07 22:55:20 -06:00
Jim Wilson
624cc15e30 Fix typo in last patch.
From-SVN: r15139
1997-09-07 19:06:55 -07:00
Jim Wilson
239e68f69d Fix m68k-motorola-sysv (aka delta) build failure for Manfred Hollstein.
* m68k/m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881.
	For 68303, 68332, cpu32, subtract MASK_68040_ONLY.

From-SVN: r15138
1997-09-07 18:51:02 -07:00
Jeff Law
db7cafb0ad version.c: Bump for snapshot.
* version.c: Bump for snapshot.

        * expmed.c (expand_divmod): Make op1_is_pow2 depend on unsignedp
        for negative constants.  Promote EXACT_DIV_EXPR to TRUNC_DIV_EXPR
        when op1_is_pow2.

        * final.c (shorten_branches): During first pass, assume worst
        possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns.

        * Makefile.in (distclean): Remove various things left around
        by running the testsuite.

From-SVN: r15136
1997-09-07 16:10:34 -06:00
Jeff Law
a051ad3aea Makefile.in (distclean): Remove various things left around by running the testsuite.
* Makefile.in (distclean): Remove various things left around
        by running the testsuite.

From-SVN: r15135
1997-09-07 13:45:33 -06:00
Manfred Hollstein
7ed4611117 configure.in (out_file): Emit definition to config.status in order to have a defined value for...
* configure.in (out_file): Emit definition to config.status in order
        to have a defined value for configure.lang.
        * configure: Re-built.

From-SVN: r15134
1997-09-07 13:17:02 -06:00
Jan-Jaap van der Heijden
e41cea70d8 configure.in: Make symlink to as-new rather than as.new.
* configure.in: Make symlink to as-new rather than as.new.  Similarly
        for ld-new.
        * configure: Rebuilt.

From-SVN: r15133
1997-09-07 10:00:47 -06:00
Mark Mitchell
aa5f3bad3a decl.c (replace_defag): Undo previous change.
Sat Sep  6 10:20:27 1997  Mark Mitchell  <mmitchell@usa.net>

	* decl.c (replace_defag): Undo previous change.
	* lex.c (do_pending_defargs): Deal with member templates.

	* pt.c (is_member_template): Avoid crashing when passed a
	non-function argument.

From-SVN: r15131
1997-09-06 16:10:05 -04:00
Jason Merrill
98c1c66880 class.c (grow_method): Remove check for redeclaration.
* class.c (grow_method): Remove check for redeclaration.

Fri Sep  5 01:37:17 1997  Mark Mitchell  <mmitchell@usa.net>

	* cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro.
	(DECL_INNERMOST_TEMPLATE_PARMS): Likewise.
	(PRIMARY_TEMPLATE_P): Use it.
	* call.c (build_overload_call_real): Use it.
	* class.c (instantiate_type): Likewise.
	* decl.c (decls_match): Likewise.
	* method.c (build_overload_identifier): Likewise.
	* pt.c (push_template_decl): Likewise.
	(classtype_mangled_name): Likewise.
	(lookup_template_class): Likewise.

	* cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to
	DECL_NTPARMS to conform to usage elsewhere.
	* call.c (add_template_candidate): Likewise.
	* class.c (instantiate_type): Likewise.
	* pt.c (instantiate_template): Likewise.
	(get_bindings): Likewise.

	* class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of
	is_member_template.

	* pt.c (unify): Undo changes to allow multiple levels of template
	parameters.
	(type_unification): Likewise.
	(fn_type_unification): Likewise.
	(get_class_bindings): Likewise.
	* cp-tree.h (Likewise).

	* decl.c (replace_defarg): Check that the type of the default
	parameter does not invlove a template type before complaining
	about the initialization.

	* error.c (dump_expr): Deal with template constant parameters in
	member templates correctly.

	* pt.c (is_member_template): Deal with class specializations
	correctly.
	(tsubst): Handle "partial instantiation" of member templates
	correctly.

Wed Sep  3 12:30:24 1997  Mark Mitchell  <mmitchell@usa.net>

	* pt.c (type_unification): Change calling squence to allow for
	multiple levels of template parameters.
	(tsubst_expr): Likewise.
	(tsubst): Likewise.
	(tsubst_copy): Likewise.
	(instantiate_template): Likewise.
	(unify): Likewise.
	* call.c (build_overload_call_real): Use it.
	(add_builtin_candidate): Use it.
	(build_new_method_call): Use it.
	* class.c (instantiate_type): Use it.
	* decl.c (grokdeclarator): Use it.
	* decl2.c (finish_file): Use it.
	* method.c (build_overload_identifier): Use it.

	* call.c (add_template_candidate):  Add additional parameter for
	the function return type.  Call fn_type_unification istead of
	type_unification.
	(build_user_type_conversion_1): Handle member templates.
	(build_new_function_call): Likewise.
	(build_new_op): Likewise.
	(build_new_method_call): Likewise.

	* class.c (grow_method): Don't give an error message indicating
 	that two member templates with the same name are ambiguous.
	(finish_struct): Treat member template functions just like member
 	functions.

	* cp-tree.h (check_member_template): Add declaration.
	(begin_member_template_processing): Likewise.
	(end_member_template_processing): Likewise.
	(fn_type_unification): Likewise.
	(is_member_template): Likewise.
	(tsubst): Change prototype.
	(tsubst_expr): Likewise.
	(tsubst_copy): Likewise.
	(instantiate_template): Likewise.
	(get_bindings): Likewise.

	* decl.c (decls_match): Handle multiple levels of template
	parameters.
	(pushdecl): Handle template type params just like other type
	declarations.
	(push_class_level_binding): Return immediately if the
	class_binding_level is NULL.
	(grokfndecl): If check_classfn() returns a member_template, use
	the result of the template, not the template itself.

	* decl2.c (check_member_template): New function.  Check to see
	that the entity declared to be a member template can be one.
	(check_classfn): Allow redeclaration of member template functions
	with different types; the new functions can be specializations or
	explicit instantiations.

	* error.c (dump_decl): Handle multiple levels of template
	parameters.
	(dump_function_decl): Update to handle function	templates.

	* lex.c (do_pending_inlines): Set up template parameter context
	for member templates.
	(process_next_inline): Likewise.

	* method. (build_overload_identifier): Adjust for multiple levels
	of template parameters.

	* parse.y (fn.def2): Add member templates.
	(component_decl_1): Likewise.

	* pt.c (begin_member_template_processing): New function.
	(end_member_template_processing): Likewise.
	(is_member_template): Likewise.
	(fn_type_unification): Likewise.
	(current_template_parms): Return a vector of all the template
	parms, not just the innermost level of parms.
	(push_template_decl): Deal with the possibility of member
	templates.
	(lookup_template_class): Likewise.
	(uses_template_parms): Likewise.
	(tsubst): Modify processing to TEMPLATE_TYPE_PARM and
	TEMPLATE_CONST_PARM to deal with multiple levels of template
	arguments.   Add processing of TEMPLATE_DECL to produce new
	TEMPLATE_DECLs from old ones.
	(do_decl_instantiation): Handle member templates.

	* search.c (lookup_fnfields_1): Handle member template conversion
	operators.

	* tree.c (cp_tree_equal): Check the levels, as well as the
	indices, of TEMPLATE_CONST_PARMs.

	* typeck.c (comptypes): Check the levels, as well as the indices,
	fo TEMPLATE_TYPE_PARMs.
	(build_x_function_call): Treat member templates like member
	functions.

Member templates.

From-SVN: r15130
1997-09-06 04:10:07 -04:00
Brendan Kehoe
dbfcb4beac Insert libio rewrite and its various changes from devo.
From-SVN: r15129
1997-09-06 03:44:38 -04:00
Jim Wilson
1496c1bb0b Fix `make distclean' failure.
* Makefile.in (distclean): Do MULTICLEAN before deleting Makefile.

From-SVN: r15128
1997-09-05 17:29:47 -07:00
Jim Wilson
1aeb1f6f0b Fix undefined reference to constructor with -O3 -fprofile-arcs.
* profile.c (output_func_start_profiler): Set DECL_EXTERNAL to zero.

From-SVN: r15127
1997-09-05 16:59:43 -07:00
Christian Kuehnke
770a0113e6 sparc.md: Add ultrasparc scheduling support.
* sparc/sparc.md: Add ultrasparc scheduling support.
	* sparc/sparc.h (RTX_COSTS): For MULT give v9 a cost of 25 insns.

From-SVN: r15126
1997-09-05 23:17:19 +00:00
Joel Sherrill
3fbc0b7094 * configure.in (*-*-rtems*): Do not build libgloss for rtems.
From-SVN: r15125
1997-09-05 23:15:09 +00:00
Jeffrey A Law
50bb736a7c libio.exp (test_libio): Use libstdc++_{include,link}_flags instead of g++_{include,link}_flags.
* lib/libio.exp  (test_libio): Use libstdc++_{include,link}_flags
        instead of g++_{include,link}_flags.

From-SVN: r15123
1997-09-05 15:37:51 -06:00
Jim Wilson
04940ba5b4 sdbout.c (plain_type_1, [...]): Verify that TYPE_DOMAIN has integer TYPE_{MAX,MIN}_VALUE before using them.
* sdbout.c (plain_type_1, case ARRAY_TYPE): Verify that TYPE_DOMAIN
        has integer TYPE_{MAX,MIN}_VALUE before using them.
Bring over from the FSF.

From-SVN: r15117
1997-09-05 14:06:11 -06:00
Philippe De Muyter
f5ffa99918 integrate.c (save_for_inline_copying): Use 0, not NULL_PTR, as initial value for real_label_map.
* integrate.c (save_for_inline_copying): Use 0, not NULL_PTR,
        as initial value for real_label_map.
        (copy_for_inline): Likewise.
Brought over from the FSF.

From-SVN: r15116
1997-09-05 14:03:37 -06:00
J"orn Rennecke
acceac1aea * sched.c (update_flow_info) When looking if to set found_split_dest
or found_orig_dest, look at all parts of a PARALLEL.
        * haifa-sched.c (update_flow_info): Likewise.

From-SVN: r15115
1997-09-05 13:36:35 -06:00
Jeffrey A Law
e20d4801db * config.sub: Handle v850-elf.
From-SVN: r15114
1997-09-05 12:25:50 -06:00
Jeffrey A Law
f84271d99d v850: New directory for v850 port.
* v850: New directory for v850 port.
        * v850/lib1funcs.asm: New file.
        * t-v850, v850.c, v850.h, v850.md, xm-v850.h: New files.
        * ginclude/va-v850.h: New file.
        * varargs.h, stdarg.h: Include va-mn10200.h.
        * configure.in (mn10200-*-*): New target.
        * Makefile.in (USER_H): Add va-mn10200.h.

From-SVN: r15104
1997-09-05 11:43:51 -06:00
Jeff Law
ae180d84fc v850: New directory for v850 port.
Fri Sep  5 10:08:44 1997  Jeffrey A Law  (law@cygnus.com)

        * v850: New directory for v850 port.
        * v850/lib1funcs.asm: New file.
        * t-v850, v850.c, v850.h, v850.md, xm-v850.h: New files.
        * ginclude/va-v850.h: New file.
        * varargs.h, stdarg.h: Include va-mn10200.h.
        * configure.in (mn10200-*-*): New target.
        * Makefile.in (USER_H): Add va-mn10200.h.

From-SVN: r15103
1997-09-05 11:41:24 -06:00
Jim Wilson
89cc6098e6 m68k.h (MACHINE_STATE_SAVE, [...]): Add __HPUX_ASM__ versions.
* m68k/m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add
        __HPUX_ASM__ versions.
Fixes build problems for m68k-hp-hpux*

From-SVN: r15102
1997-09-05 09:36:39 -06:00
Jeff Law
e7fd975751 Add new pointer.
From-SVN: r15101
1997-09-05 09:18:14 -06:00
Jeffrey A Law
c74f7db87d * install.sh: Delete duplicate install script.
From-SVN: r15100
1997-09-05 09:06:54 -06:00
Jeffrey A Law
fa8adee65f * install-sh: Delete duplicate install script.
From-SVN: r15099
1997-09-05 09:05:56 -06:00
Richard Henderson
18c6629a2b * cbrt.c: Tweak to work on more targets.
From-SVN: r15098
1997-09-05 00:19:00 -06:00
Jeffrey A Law
af818dc87c Makefile.in (clean): Don't remove config.cache.
* Makefile.in (clean): Don't remove config.cache.
        (distclean): Do it here instead.

From-SVN: r15097
1997-09-05 00:16:30 -06:00
Stan Cox
914ec131d6 reg-stack.c (subst_stack_regs): Pop the stack register for a computed goto which sets the same stack register.
* reg-stack.c (subst_stack_regs): Pop the stack register for a
        computed goto which sets the same stack register.

        * reg-stack.c (compare_for_stack_reg): Swap only if the source and
        destination are both on the regstack.
        (subst_stack_regs_pat): Put the destination at the top of the regstack.
Bring over regstack bugfixes from the FSF.

From-SVN: r15096
1997-09-04 23:14:46 -06:00
Jim Wilson
d5d1738a3a Fix mips-sgi-irix5.2 eh25 g++ testsuite failure.
* mips.md (nonlocal_goto_receiver): Define.

From-SVN: r15091
1997-09-04 19:36:53 -07:00
Jim Wilson
f4da78811e Fix another -fprofile-arcs bug from Joseph Myers <jsm28@cam.ac.uk>.
* profile.c (output_arc_profiler): Check next_insert_after for non
	NULL before deferencing it.

From-SVN: r15090
1997-09-04 19:17:56 -07:00
Jim Wilson
c1090daa15 * i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define to -fPIC.
From-SVN: r15088
1997-09-04 17:54:04 -06:00
Jason Merrill
71e10e8788 tweak
From-SVN: r15086
1997-09-04 19:10:35 -04:00
Jeff Law
fe181f78b3 Test commit.
From-SVN: r15085
1997-09-04 16:20:21 -06:00
Jeffrey A Law
da594c9448 * i386.h (CPP_CPU_DEFAULT): Avoid using #elif.
From-SVN: r15083
1997-09-04 14:50:19 -06:00
Michael Meissner
3e28fe4442 For phases starting with flow, print basic block information when doing dumps
From-SVN: r15082
1997-09-04 19:15:50 +00:00
Jim Wilson
417b0fa211 Fix minor bug reported by Jan Hubicka.
* toplev.c (main): Change #elif to #else/#ifdef

From-SVN: r15081
1997-09-04 12:06:02 -07:00
Jim Wilson
7053ca7275 Fix minor bugs found by riscos build attempt.
* tlink.c: Include ctype.h.
	* ginclude/va-mips.h: Add _VA_MIPS_H_ENUM ifdef/define/endif.

From-SVN: r15080
1997-09-04 11:54:16 -07:00
Michael Meissner
f05a8b2501 ChangeLog entry for last bitmap change.
From-SVN: r15079
1997-09-04 11:17:09 -06:00
Michael Meissner
1cfabc1344 Add free declaration
From-SVN: r15078
1997-09-04 17:06:34 +00:00
Joel Sherrill
02d7a56981 * i960/i960.h: Added default for SUBTARGET_SWITCHES macro.
From-SVN: r15077
1997-09-04 09:59:54 -06:00
Jim Wilson
6030b6afe7 profile.c (output_arc_profiler): Verify next_insert_after is an INSN before and after skipping a stack pop.
* profile.c (output_arc_profiler): Verify next_insert_after is an
        INSN before and after skipping a stack pop.

From-SVN: r15076
1997-09-04 09:54:24 -06:00
Fred Fish
d30e0541de * .cvsignore (*-install): Remove.
From-SVN: r15075
1997-09-04 09:49:02 -06:00
J"orn Rennecke
04da53bd68 final.c (shorten_branches): Don't count the lengths of deleted instructions.
* final.c (shorten_branches): Don't count the lengths of deleted
        instructions.

From-SVN: r15074
1997-09-04 09:47:40 -06:00
Jeffrey A Law
780532a4c6 * version.c: Bump for snapshot.
From-SVN: r15072
1997-09-04 09:41:38 -06:00
Michael Meissner
22fa5b8add Add EXECUTE_IF_AND_IN_{BITMAP,REG_SET}, and bitmap_print
From-SVN: r15071
1997-09-04 15:12:20 +00:00
Jim Wilson
9b2c548ca6 Fix srcdir==objdir build failure with multilibbed libiberty.
* Makefile.in (stamp-needed, stamp-config): Add MULTISRCTOP to
	pathname for move-if-change.

From-SVN: r15067
1997-09-03 15:53:56 -07:00
Jason Merrill
c1bc6829b4 typeck.c (c_expand_return): Always convert_for_initialization before checking for returning a pointer to local.
* typeck.c (c_expand_return): Always convert_for_initialization
 	before checking for returning a pointer to local.

From-SVN: r15064
1997-09-03 16:01:18 -04:00
Jim Wilson
fa8b602464 Fix H.J. Lu's alpha-linux aliasing bug.
* alias.c (true_dependence): Address with AND can alias scalars.
	(anti_dependence, output_dependence): Likewise.

From-SVN: r15063
1997-09-03 12:28:49 -07:00
Jason Merrill
03e7070558 pt.c (type_unification): If strict and the function parm doesn't use template parms, just compare types.
* pt.c (type_unification): If strict and the function parm doesn't
	use template parms, just compare types.

From-SVN: r15062
1997-09-03 14:41:11 -04:00
Jim Wilson
57163df067 Fix minor alias typo found while working on H.J. Lu's alpha-linux alias bug.
* alias.c (true_dependence): Test x for BLKmode, in addition to mem.

From-SVN: r15061
1997-09-03 10:42:21 -07:00
Klaus Espenlaub
3d015f466d method.c (build_overloaded_value): Replace direct call to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
* method.c (build_overloaded_value): Replace direct call
        to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.

From-SVN: r15059
1997-09-03 09:54:14 -06:00
Joel Sherrill
8aa4e786fb go32-rtems.h, [...] (subtarget_switches): Removed SUBTARGET_SWITCHES definitions.
* i386/go32-rtems.h, i386/rtems.h, i960/rtems.h, m68k/rtems.h,
          mips/rtems64.h, pa/rtems.h, rs6000/rtems.h, sh/rtems.h,
          sparc/rtems.h (subtarget_switches): Removed SUBTARGET_SWITCHES
          definitions.  Use -qrtems instead of -mrtems.

From-SVN: r15058
1997-09-03 09:42:45 -06:00
Jeffrey A Law
57f260dfbd * lib/libstdc++.exp: Remove libg++_link_flags.
From-SVN: r15057
1997-09-03 09:38:21 -06:00
Robert Lipe
feb211221a xm-sco5.h (sys_siglist): Define.
* xm-sco5.h (sys_siglist): Define.
        (SYS_SIGLIST_DECLARED): Likewise.
From Robert Lipe.

From-SVN: r15056
1997-09-03 09:04:27 -06:00
Jason Merrill
056c014d34 typeck.c (convert_arguments): Don't arbitrarily choose the first of a set of overloaded functions.
* typeck.c (convert_arguments): Don't arbitrarily choose the first
        of a set of overloaded functions.

        * lex.c (real_yylex): Don't elide __FUNCTION__.

From-SVN: r15055
1997-09-03 04:26:52 -04:00
Jeffrey A Law
704af6a15f expr.c (convert_move): Handle truncation from TQFmode to QFmode.
* expr.c (convert_move): Handle truncation from TQFmode to QFmode.
From Christian Iseli.

From-SVN: r15054
1997-09-02 23:33:06 -06:00
Jeff Law
f04e7122c8 Tweak.
From-SVN: r15053
1997-09-02 23:02:58 -06:00
Jeffrey A Law
068f1cb8d7 xm-svr4.h (SYS_SIGLIST_DECLARED): Define.
* xm-svr4.h (SYS_SIGLIST_DECLARED): Define.
        * xm-news.h (SYS_SIGLIST_DECLARED): Likewise.
        * gcc.texi: Note that if you define sys_siglist that you should
        also define SYS_SIGLIST_DECLARED.
autoconf doesn't handle finding sys_siglist under different names.

From-SVN: r15052
1997-09-02 22:39:26 -06:00
Jeff Law
25faccf928 Makefile.in (install, [...]): Make these phony targets.
* Makefile.in (install, install-info, installdirs, uninstall): Make
        these phony targets.
So we don't overwrite a newer version of texinfo that might already be
installed on the system.

        * makeinfo/makeinfo.c: Maybe include <stdlib.h> for malloc et al.
        * util/install-info.c: Include <string*.h>.
        (my_strerror): Use strerror if available.
Avoids alpha bug and redecl of sys_errlist problems.

From-SVN: r15051
1997-09-02 22:25:26 -06:00
Torbjorn Granlund
127cd4056c except.c (eh_outer_context): Expand masking operation using expand_binop.
* except.c (eh_outer_context): Expand masking operation using
        expand_binop.
From tege.

From-SVN: r15046
1997-09-02 20:08:35 -06:00
Jim Wilson
8cf02b4799 Fix alpha-linux -mieee bug reported by H.J. Lu.
* alpha.md (floatdisf2-1): New pattern.

From-SVN: r15045
1997-09-02 18:27:01 -07:00
Jeffrey A Law
49dad301f0 mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions are relative to the next instruction...
* mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions
        are relative to the next instruction, not the current instruction.

From-SVN: r15043
1997-09-02 18:46:39 -06:00
Doug Evans
b245293e3b * lib/gcc-dg.exp (gcc-dg-test): Fix typos setting compile_type.
From-SVN: r15042
1997-09-02 23:37:40 +00:00
Jim Wilson
a172951945 Fix i386 code generation error reported by Mumit Khan.
* local-alloc.c (contains_replace_regs): New function.
	(update_equiv_regs): When adding a REG_EQUIV note for a set of a MEM,
	verify that there is no existing REG_EQUIV note, and add a call to
	contains_place_regs.

From-SVN: r15041
1997-09-02 14:40:31 -07:00
Jason Merrill
37dac03995 method.c (build_overload_value): Add in_template parm.
* method.c (build_overload_value): Add in_template parm.
	(build_overload_int): Likewise.
	(build_overload_identifier): Pass it.

	* decl.c (duplicate_decls): Don't bash a previous template
 	definition with a redeclaration.

From-SVN: r15040
1997-09-02 17:33:28 -04:00
Jason Merrill
ca79f85d9d pt.c (unify): float doesn't match double.
* pt.c (unify): float doesn't match double.

	* pt.c (do_type_instantiation): Handle getting a _TYPE or a
 	TYPE_DECL.  Handle getting non-template types.
	* parse.y (explicit_instantiation): Use typespec instead of
	aggr template_type.

Tue Sep  2 10:27:08 1997  Richard Henderson  <rth@cygnus.com>

	* typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.

From-SVN: r15037
1997-09-02 16:27:13 -04:00
H.J. Lu
290c8b1fb1 Patch from H.J. Lu for alpha-linux port.
* config/alpha/elf.h (CPP_PREDEFINES): Add -D__PIC__ -D__pic__.
	(STARTFILE_SPEC): Always use crtbegin.o%s
	(ENDFILE_SPEC): Always use crtend.o%s.

From-SVN: r15036
1997-09-02 12:53:50 -07:00
Jim Wilson
a6a503ed40 Fix alpha-linux core dump reported by H.J. Lu.
* alpha/alpha.h (PREFERRED_RELOAD_CLASS): Return NO_REGS if NO_REGS
	is passed in.
	* emit-rtl.c (gen_lowpart_common): Add code to convert CONST_INT to
	SFmode for 64 bit hosts.

From-SVN: r15035
1997-09-02 12:37:05 -07:00
Paul N. Hilfinger
a94729bc72 fixincludes: Permits spaces between # and define.
* fixincludes: Permits spaces between # and define.  Discard C++
        comments in sys/pci.h on HP/UX 10.20.

From-SVN: r15034
1997-09-02 12:38:30 -06:00
Jeffrey A Law
2eddfed1f2 pa.c (restore_unscaled_index_insn_codes): New function.
* pa.c (restore_unscaled_index_insn_codes): New function.
        (record_unscaled_index_insn_codes): Likewise.
        (output_function_prologue): Call restore_unscaled_index_insn_codes.
        (output_function_epilogue): Free memory for unscaled_index_insn_codes.
        (pa_reorg): Call record_unscaled_index_insn_codes.

From-SVN: r15028
1997-09-01 23:33:19 -06:00
Jeffrey A Law
c9e03727e0 version.c: Bump for snapshot.
* version.c: Bump for snapshot.
Preparing for next snapshot.

        * haifa-sched.c (move_insn): Handle notes correctly for insns
        with SCHED_GROUP_P set.
Should fix some x86 failures with haifa enabled.

From-SVN: r15027
1997-09-01 22:12:45 -06:00
H.J. Lu
a5d6a95b99 Patch from H.J. Lu for minor alpha-linux problem.
* alpha/xm-linux.h (USE_BFD): Undef before define.

From-SVN: r15026
1997-09-01 17:00:55 -07:00
Jim Wilson
558a1e7cb3 Fix sunos4/rs6000/powerpc/etc build problems with multilibbed libraries.
* configure.in (target_subdir): Set to libraries if enable_multilib.

From-SVN: r15025
1997-09-01 16:55:29 -07:00
Jim Wilson
bc4ddc77a0 Fix irix6 execute/921117-1.c c-torture failure.
* cse.c (cse_insn): Don't record BLKmode values.

From-SVN: r15024
1997-09-01 16:43:03 -07:00
Jason Merrill
7e3af3746e call.c (build_new_op): Strip leading REF_BIND from first operand to builtin operator.
* call.c (build_new_op): Strip leading REF_BIND from first operand
	to builtin operator.

	* decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
	use its RTL.

From-SVN: r15023
1997-09-01 17:01:30 -04:00
Jason Merrill
8e69329a82 * call.c (null_ptr_cst_p): Remove support for (void*)0.
From-SVN: r15022
1997-09-01 16:07:22 -04:00
Stephen Williams
f3e0ca6c2d * i960.h (LINK_SPEC): Handle "-mjX" and "-mrp" switches.
From-SVN: r15013
1997-09-01 11:27:19 -06:00
Jeffrey A Law
a63d08e606 cccp.c (sys_errlist): Remove special 4.4bsd declaration.
* cccp.c (sys_errlist): Remove special 4.4bsd declaration.
        * collect2.c (sys_errlist): Likewise.
        * cpplib.c (sys_errlist): Likewise.
        * gcc.c (sys_errlist): Likewise.
        * protoize (sys_errlist): Likewise.
        * configure.in: Check for strerror.
        * xm-freebsd.h (HAVE_STRERROR): Remove definition.
        * xm-gnu.h (HAVE_STRERROR): Likewise.
        * xm-linux.h (HAVE_STRERROR): Likewise.
        * xm-netbsd.h (HAVE_STRERROR): Likewise.
        * xm-bsd386.h (HAVE_STRERROR): Likewise.
        * xm-cygwin32.h (HAVE_STRERROR): Likewise.
        * xm-dos.h (HAVE_STRERROR): Likewise.
        * xm-mingw32.h (HAVE_STRERROR): Likewise.
        * xm-pa.h (HAVE_STRERROR): Likewise.
        * xm-papro.h (HAVE_STRERROR): Likewise.
        * xm-sysv4.h (HAVE_STRERROR): Likewise.
        * configure, config.in: Rebuilt.
Remove the need to define HAVE_STRERROR for each host port.

From-SVN: r15011
1997-09-01 11:02:53 -06:00
Jeffrey A Law
db814993ae Makefile.in: Add several missing "else true" clauses.
* Makefile.in: Add several missing "else true" clauses.
Cater to broken "make" programs.

From-SVN: r15010
1997-09-01 10:08:40 -06:00
Jeffrey A Law
e3512ac291 collect2.c: Change DONT_DECLARE_SYS_SIGLIST to SYS_SIGLIST_DECLARED.
* collect2.c: Change DONT_DECLARE_SYS_SIGLIST to SYS_SIGLIST_DECLARED.
        * mips-tfile.c: Likewise.
        * gcc.texi: DONT_DECLARE_SYS_SIGLIST: Remove docs.
        * xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition.
        * xm-freebsd.h, xm-bsd386.h, xm-sysv4.h, xm-sol2.h: Likewise.
        * configure.in: Check for sys_siglist declaration.
        * configure, config.in: Rebuilt.

Fix conflicting sys_siglist decls once and for all.

From-SVN: r15007
1997-09-01 08:57:29 -06:00
Joel Sherrill
5d84b57e6f go32-rtems.h, [...] (subtarget_switches): Added -mrtems as a switch.
* i386/go32-rtems.h, i386/rtems.h, i960/rtems.h,
        m68k/rtems.h, mips/rtems64.h, pa/rtems.h, rs6000/rtems.h,
        sparc/rtems.h (subtarget_switches): Added -mrtems as a switch.
        * i960/i960.h: Added SUBTARGET_SWITCHES macro.
        * rs6000/sysv4.h (extra_subtarget_switches): Added new
        macro EXTRA_SUBTARGET_SWITCHES.
        * configure.in (sh*-*-rtems*): New target.
        * sh/rtems.h: New file.
        * sh/sh.h: Added SUBTARGET_SWITCHES macro.
        * configure: Rebuilt.

From-SVN: r15006
1997-09-01 08:14:30 -06:00
Jim Wilson
2599dcc74a Fix alpha loop unrolling abort.
* unroll.c (calculate_giv_inc): Handle increment with code PLUS.

From-SVN: r15004
1997-08-30 22:57:40 -07:00
Karl Berry
4f122a21ab Fix Freedbsd build problem with patch from more recent texinfo sources.
* info/terminal.c (terminal_prep_terminal): Only use OCRNL and
		ONLCR if they are defined.  Reported by many people.

From-SVN: r15003
1997-08-30 18:48:33 -07:00
David Edelsohn
3b7e5ef4c7 Pay DF fused add ops pay attention to -mno-fused-add
From-SVN: r15002
1997-08-30 14:55:17 +00:00
Jim Wilson
5cd5f4a7b2 Fix i386-pc-solaris2.5.1 _sys_siglistp redeclaration error.
* i386/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Define.

From-SVN: r15001
1997-08-29 19:21:34 -07:00
Jeffrey A Law
63e7fe9ba4 pa.md (reload_peepholes): Make sure operand is a REG before examining REGNO.
* pa.md (reload_peepholes): Make sure operand is a REG before
        examining REGNO.  Allow general registers too.
Fixes sporatic c-torture failure.

Remove last change to fold-const.c and c-decl.c

From-SVN: r15000
1997-08-29 16:14:07 -06:00
Jim Wilson
eb7b11fd07 Fix C++ template instantiation back end core dump.
* varasm.c (mark_constants): Don't look inside CONST_DOUBLEs.

From-SVN: r14999
1997-08-29 11:52:51 -07:00
Jeffrey A Law
9aef2966e9 * execute/921007-1.c: Make strcmp static.
From-SVN: r14998
1997-08-29 12:47:40 -06:00
Philipp Thomas
c760091a0c dwarfout2.c (build_abbrev_table): Use xrealloc, not xmalloc to reallocate abbrev_die_table.
* dwarfout2.c (build_abbrev_table): Use xrealloc, not xmalloc
        to reallocate abbrev_die_table.

From-SVN: r14997
1997-08-29 09:33:54 -06:00
Jim Wilson
575833386f m68k.md (iorsi_zexthi_ashl16): Disable.
* m68k/m68k.md (iorsi_zexthi_ashl16): Disable.
Fixes m68k codegen problem.

From-SVN: r14996
1997-08-29 09:19:58 -06:00
Andreas Schwab
4f91a0f87a * Makefile.in (config.status): Depend on version.c
From-SVN: r14995
1997-08-29 09:10:18 -06:00
Andreas Schwab
eae4b97034 expr.h (insn_gen_function): Reenable prototype.
* expr.h (insn_gen_function): Reenable prototype.

	* expr.c (move_by_pieces_1, clear_by_pieces_1): Fix prototype of
	first parameter.

From-SVN: r14994
1997-08-29 09:02:03 -06:00
Jeff Law
ec83e9d31f Fix typo.
From-SVN: r14993
1997-08-29 01:03:53 -06:00
Jim Wilson
00fc09e149 Fix x86 libio -O2 miscompilation problem.
* i386.c (ix86_expand_epilogue): Emit blockage instruction when pic.

From-SVN: r14992
1997-08-28 13:04:19 -07:00
Jeffrey A Law
2601ebca41 version.c: Bump for latest snapshot.
* version.c: Bump for latest snapshot.

        * bc-optab.c: Conditionally include stdlib.h.
        (free): Provide a declaration if NEED_DECLARATION_FREE.
        * tree.c (free): Provide a declaration if NEED_DECLARATION_FREE.
        * rtl.h (free): Remove declaration.
        * tree.h (free): Remvoe declaration.

        * configure: Rebuilt.

From-SVN: r14989
1997-08-28 07:08:54 -06:00
Jeff Law
d5d23425d0 Filename change in latest g77 update.
From-SVN: r14988
1997-08-28 06:59:07 -06:00
Jeffrey A Law
e5eb27e51f flags.h (flag_move_all_movables): Declare.
* flags.h (flag_move_all_movables): Declare.
        (flag_reduce_all_givs): Likewise.
        * loop.c (move_movables): Handle flag_move_all_movables.
        (strength_reduce): Handle flag_reduce_all_givs.
        * toplev.c (flag_move_all_movables): Define.
        (flag_reduce_all_givs): Likewise.
        (f_options): Add -fmove-all-movables and -freduce-all-givs.
        * invoke.texi: Document new options, including alias stuff that
        wasn't included last time.
Two of the "Tooning" options :-)

From-SVN: r14987
1997-08-27 21:35:22 -06:00
Jeff Law
73624c403d New file in g77 front end.
From-SVN: r14986
1997-08-27 21:21:33 -06:00
Jeff Law
795232f720 Update to Aug 26 g77 front end and runtime.
From-SVN: r14985
1997-08-27 21:21:05 -06:00
Bob Manson
d995a6dc49 t-h8300: Use TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS.
* t-h8300: Use TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS.
        * t-mn10200: Ditto.
        * t-vxsparc: Ditto.
        * t-vxworks68: Ditto.
        * t-vxworks960: Ditto.
        * t-vx29k: Ditto.

From-SVN: r14984
1997-08-27 18:18:03 -06:00
Richard Henderson
ba64ca335a Patch from Richard Henderson to fix alpha-linux alloca redefinition problems.
* alpha/xm-alpha.h (alloca): Define alloca to builtin_alloca for GNUC
	if not already defined, and USE_C_ALLOCA not defined.

From-SVN: r14977
1997-08-27 16:50:04 -07:00
Jim Wilson
7818d6fcb2 Make the gcc config.guess exec the toplevel config.guess.
Make the gcc config.guess exec the toplevel config.guess.  Update the toplevel
config.guess from the gcc config.guess.

From-SVN: r14976
1997-08-27 16:20:52 -07:00
Jim Wilson
ca20876d33 alpha linux glibc2 patch from H.J. Lu
alpha linux glibc2 patch from H.J. Lu
	* config/alpha/elf.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1
	if USE_GNULIBC_1 is not defined.

From-SVN: r14975
1997-08-27 16:09:53 -07:00
Richard Henderson
704a63062f Patch from Richard Henderson to fix alpha-linux support.
* alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1.
	* config.guess: Recognize alpha-linux-gnulibc1.
	* configure.in (alpha-*-linux-gnulibc1): New target.
	(alpha-*-linux-gnu*): Don't build crtbegin/end.

From-SVN: r14974
1997-08-27 16:02:19 -07:00
Jeffrey A Law
f345de42fc reorg.c (dbr_schedule): Allow current_function_return_rtx to be something other than a REG.
* reorg.c (dbr_schedule): Allow current_function_return_rtx
        to be something other than a REG.
        * function.c (expand_function_end): Fix current_function_return_rtx
        if it was a pseudo.
Brought over from the fsf/devo.

From-SVN: r14972
1997-08-27 13:59:51 -06:00
Jim Wilson
67f68fd265 Fix newlib coldfire build failure.
* m68k.md (iorsi3_internal): Readd ! TARGET_5200 check lost in
	last change.

From-SVN: r14969
1997-08-27 11:54:11 -07:00
Doug Evans
3dedc65a1f c-decl.c (grokdeclarator): If array index or size calculations overflow, issue an error.
* c-decl.c (grokdeclarator): If array index or size calculations
        overflow, issue an error.
        * fold-const.c (int_const_binop): New static function.
        (const_binop, size_binop): Call it.
Brought over from the fsf.

From-SVN: r14967
1997-08-27 10:58:02 -06:00
Doug Evans
88016fb7ef loop.c (combine_movables): Earlier insns don't match later ones.
* loop.c (combine_movables): Earlier insns don't match later ones.
Brought over from the fsf.

From-SVN: r14966
1997-08-27 10:43:23 -06:00
H.J. Lu
33d2808ba7 Remove last change to alpha/linux.
Remove last change to alpha/linux.  It was incorrect according to Richard
Henderson.

From-SVN: r14964
1997-08-27 09:24:31 -06:00
Jeffrey A Law
bdcaf7735e * typeck.c (expand_target_expr): Make definition match declaration.
From-SVN: r14962
1997-08-27 02:07:16 -06:00
Jeffrey A Law
5ddc28a51f class.c (get_basefndecls): Make definition match declaration.
* class.c (get_basefndecls): Make definition match declaration.
Something caught by the sunos compiler.

From-SVN: r14961
1997-08-27 02:03:41 -06:00
H.J. Lu
bba17b29e1 linux.h (CC1_SPEC): Define it only if not defined.
* config/linux.h (CC1_SPEC): Define it only if not defined.

        * config/m68k/linux.h (CC1_SPEC): Undefine it before include
        <linux.h>

        * config/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1 if
        USE_GNULIBC_1 is not defined.

        * config/alpha/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined
        as 1.
        * config/rs6000/linux.h (DEFAULT_VTABLE_THUNKS): Ditto.

        * config/sparc/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined
        as 1 if USE_GNULIBC_1 is not defined.
Linux patches from HJ.

From-SVN: r14960
1997-08-27 01:26:22 -06:00
Jeffrey A Law
ed4044e070 t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS.
* t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS.
        * x-netbsd: Likewise
        * x-dgux (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS
        (INSTALL_HEADERS): Delete.
        * x-dguxbcs: Likewise.
        * x-hp3bsd44: Likewise
        * x-pa: Likewise.

From-SVN: r14959
1997-08-27 00:51:37 -06:00
Bernd Schmidt
47d3640028 i386.md (pop): pop increments the stack pointer.
* i386.md (pop): pop increments the stack pointer.
        (prologue_set_stack_ptr): New pattern.
        * i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr
        instead of subsi3.
Fixes problem with scheduling on the x86.

From-SVN: r14956
1997-08-27 00:29:59 -06:00
Alexandre Oliva
b9e6eb36ff Makefile.in: create correct multiple links to shared libstdc++.
* Makefile.in: create correct multiple links to
        shared libstdc++.

From-SVN: r14953
1997-08-27 00:04:41 -06:00
Robert Lipe
d7ce9ac718 * hostnm_.c: Include errno.h
From-SVN: r14949
1997-08-26 20:13:32 -06:00
Jim Wilson
fc79eafee8 reload.c (find_reloads, case '0'): Reject matching a non-offsettable address where an offsettable address is required.
* reload.c (find_reloads, case '0'): Reject matching a non-offsettable
        address where an offsettable address is required.
Fixes 68k bootstrap problem.

From-SVN: r14948
1997-08-26 18:49:59 -06:00
Michael P. Hayes
c5da853fcd loop.c (check_final_value): Don't miss a biv increment in a parallel.
* loop.c (check_final_value): Don't miss a biv increment in a
        parallel.

From-SVN: r14947
1997-08-26 18:44:25 -06:00
H.J. Lu
cf7c222f5d Makefile.in (check): Don't depend on site.exp.
* testsuite/Makefile.in (check): Don't depend on site.exp.
        (just-check): Depend on site.exp.
Fixes problems with SMP "make check".

From-SVN: r14945
1997-08-26 12:28:26 -06:00
Jim Wilson
d4ef15f2ca dwarfout.c (dwarfout_file_scope_decl, [...]): Check TYPE_DECL_IS_STUB instead of DECL_NAME.
* dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check
        TYPE_DECL_IS_STUB instead of DECL_NAME.

From-SVN: r14944
1997-08-26 12:05:23 -06:00
Jeff Law
d40431299d Fix stupid typo in last change.
From-SVN: r14943
1997-08-26 12:04:44 -06:00
Jeffrey A Law
823a059627 * libtxi/Makefile.in: Add dependencies for memcpy, memmove and strdup.
From-SVN: r14939
1997-08-26 11:18:19 -06:00
Jim Wilson
10549cbd85 H.J. Lu's SMP patch.
From-SVN: r14924
1997-08-25 23:36:27 -07:00
Jason Merrill
818045b6d8 input.c (sub_getch): Eventually give up and release the input file.
* input.c (sub_getch): Eventually give up and release the input file.

	* decl.c (cp_finish_decl): If #p i/i, put inline statics in the
	right place.

From-SVN: r14923
1997-08-25 21:34:48 -04:00
Jason Merrill
3e68fa8311 [multiple changes]
Mon Aug 25 14:26:45 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* Makefile.in (CXXFLAGS): Add -Weffc++.

Sat Aug 23 21:25:37 1997  Mark Mitchell  <mmitchell@usa.net>

	* bastring.h: Enable reverse_iterator and its ilk.

	* bastring.h: Provide specializations of member function templates
	for const_iterator.

From-SVN: r14922
1997-08-25 20:27:06 -04:00
Jason Merrill
922ddba49f call.c (joust): Tweak message.
* call.c (joust): Tweak message.

Sat Aug 23 18:02:59 1997  Mark Mitchell  <mmitchell@usa.net>

	* error.c (type_as_string): Put const/volatile on template type
	parameters where appropriate.

From-SVN: r14919
1997-08-25 17:30:44 -04:00
Jeffrey A Law
484df98895 haifa-sched.c (find_pre_sched_live): Remove #if 0 code.
* haifa-sched.c (find_pre_sched_live): Remove #if 0 code.
        (find_post_sched_live): Likewise.
Just cleaning up.

        * haifa-sched.c (schedule_block): Remove old code to get arguments
        from hard regs into pseudos early.
Avoids problems with bogus REG_LOOP_BEGIN notes causing aborts during
and after register allocation.

From-SVN: r14918
1997-08-25 13:15:01 -06:00
Jeff Law
39dfb55a01 version.c: Bump for new snapshot.
* version.c: Bump for new snapshot.

        * local-alloc.c (update_equiv_regs): All the target to reject
        promotion of some REG_EQUAL to REG_EQUIV notes.
        * pa.h (DONT_RECORD_EQUIVALENCE): Define.
Fixes some c-torture failures, also improves generated code.

        * pa.c (secondary_reload_class): (mem (mem ... )) does not need
        secondary reloads.
Fixes 094.fpppp/twldrv.f abort.

        * pa.c (hppa_builtin_saveregs): Emit a blockage insn after the
        store of the argument registers.
Fixes c-torture failure.

        * fold-const.c (multiple_of_p): New function.
        (fold): Turn some cases of *_DIV_EXPR into EXACT_DIV_EXPR.
One of the performance patches from the g77 folks.

From-SVN: r14915
1997-08-25 09:00:44 -06:00
Jeffrey A Law
d78778ebf9 expr.h (insn_gen_function): Temporarily remove prototype.
* expr.h (insn_gen_function): Temporarily remove prototype.
This one has to wait until more prototyped stuff is done.

From-SVN: r14914
1997-08-25 01:48:35 -06:00
Jim Wilson
8ba0f41e9b configure.in: Always make sure RANLIB_TEST is set.
* configure.in: Always make sure RANLIB_TEST is set.
        * configure: Rebuilt.

From-SVN: r14913
1997-08-25 01:44:59 -06:00
Jim Wilson
ebf92f1c90 missed ChangeLog entry for last checkin
From-SVN: r14911
1997-08-24 17:26:31 -07:00
Jim Wilson
feb9ea1a1f Fix solaris2 (without GNU install installed) install failure.
* Makefile.in (install-info): Don't cd into srcdir.  Add srcdir to
	filenames.  Use sed to extract base filename for install.

From-SVN: r14910
1997-08-24 17:25:22 -07:00
Jeffrey A Law
4c9e597b51 call.c (strictly_better): Make arguments unsigned ints.
* call.c (strictly_better): Make arguments unsigned ints.
Fixes bug reported by Peter Seebach.

From-SVN: r14909
1997-08-23 17:47:00 -06:00
John F. Carr
b6ffe60242 unroll.c (find_splittable_givs): Only share if two givs have the same add and multiply values.
* unroll.c (find_splittable_givs): Only share if two givs have the
        same add and multiply values.
Fixes some testsuite failures on the x86.

From-SVN: r14908
1997-08-23 17:25:05 -06:00
Jim Wilson
2ebfd23067 Fix typos in m68k configuration files.
* m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef.
	* m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it.

From-SVN: r14902
1997-08-23 14:41:33 -07:00
Jeffrey A Law
251ffdee0e pa.c (pa_reorg): Always put begin_brtab and end_brtab insns around branch tables.
* pa.c (pa_reorg): Always put begin_brtab and end_brtab insns
        around branch tables.
        * pa.md (begin_brtab, end_brtab): Only emit the .begin_brtab
        and .end_brtab directives if TARGET_GAS.
Should fix bootstrap problem with PA port when not using gas.

From-SVN: r14899
1997-08-23 00:19:56 -06:00
Jim Wilson
2731427487 Fix m68k-next-nextstep3 stage2 enquire compilation hang reported by Moene.
* alias.c (true_dependence): Pass x_addr not x to varies.

From-SVN: r14898
1997-08-22 21:39:31 -07:00
Jim Wilson
19372aa112 Fix AIX build problem when IBM cc is used.
* acconfig.h (NEED_DECLARATION_CALLOC): Add.
	* configure.in: Add GCC_NEED_DECLARATION call for calloc.
	* rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete
	declarations.
	* config.in, configure: Regenerate.

From-SVN: r14896
1997-08-22 14:39:10 -07:00
Jeffrey A Law
ea16770fb1 * Makefile.in (UOBJ): Include symlnk.
From-SVN: r14894
1997-08-22 08:54:27 -06:00
John F. Carr
2a2c8203b6 alias.c (find_base_value): Improve handling of PLUS, MINUS, and LO_SUM.
* alias.c (find_base_value): Improve handling of PLUS, MINUS, and
        LO_SUM.
        (record_set): Handle LO_SUM like PLUS.
        (init_alias_analysis): When following chains of base addresses,
        do not stop on reaching a hard register.
Updates from jfc.

From-SVN: r14888
1997-08-22 00:39:29 -06:00
Jeff Law
d80357b704 Tweak.
From-SVN: r14886
1997-08-21 20:16:20 -06:00
Jason Merrill
8eeda2ecd5 lex.c (real_yylex): Refer to __complex instead of complex.
* lex.c (real_yylex): Refer to __complex instead of complex.

-Wed Jul 16 15:57:42 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
-
-       * parse.y (empty_parms): Only use VOID_LIST_NODE for the PARMS if
-       we're in a C++ struct/class, not if we're doing xtern "C"'.
-

and regenerate parse.c.

From-SVN: r14885
1997-08-21 21:52:56 -04:00
Jim Wilson
b4f32d7b12 Fix alpha OSF 1.x/2.x/3.x build problems.
* alpha.h (ARCH_ASM_FILE_START): Define.
	(ASM_FILE_START): Use ARCH_ASM_FILE_START.
	* osf12.h, osf2or3.h (ARCH_ASM_FILE_START): Redefine to null string.

From-SVN: r14884
1997-08-21 17:47:59 -07:00
Jason Merrill
fb52f6de35 release notes
From-SVN: r14883
1997-08-21 20:30:16 -04:00
Jason Merrill
51e3ba163a ignored by import
From-SVN: r14882
1997-08-21 19:14:36 -04:00
Jason Merrill
6599da043e Initial revision
From-SVN: r14877
1997-08-21 18:57:35 -04:00
J"orn Rennecke
8975416cfb lex.c (real_yylex): Don't use getc directly.
Thu Aug 21 22:25:46 1997  J"orn Rennecke <amylaar@cygnus.co.uk>

	* lex.c (real_yylex): Don't use getc directly.

From-SVN: r14876
1997-08-21 18:34:19 -04:00
Jeffrey A Law
f1e182826e Bump version # for new snapshot.
From-SVN: r14874
1997-08-21 14:46:15 -06:00
Jim Wilson
7d11fb7f0c Eliminate circular dependence on f77-runtime that caused build failures.
* Make-lang.in (f77): Delete f77-runtime.
	(f77.all.build, f77.all.cross, f77.rest.encap): Add f77-runtime.

From-SVN: r14873
1997-08-21 13:17:25 -07:00
Jeffrey A Law
ca363bb6c1 * Makefile.in (install-common): Put gcov comment at start of line.
From-SVN: r14871
1997-08-21 10:23:22 -06:00
Mumit Khan
adb0d78cc9 Makefile.in (UOBJ): Include mclock.
* Makefile.in (UOBJ): Include mclock.
From Mumit Khan.

From-SVN: r14870
1997-08-20 23:20:15 -06:00
Jeffrey A Law
7557aa9871 alias.c (init_alias_analysis): When simplifying the reg_base_value array, simplify entries for hard registers too.
* alias.c (init_alias_analysis): When simplifying the reg_base_value
        array, simplify entries for hard registers too.
From jfc.  Fixes c-torture failure on the PA.

From-SVN: r14869
1997-08-20 22:48:46 -06:00
Jason Merrill
49c249e1c8 [multiple changes]
Wed Aug 20 17:25:08 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* call.c (is_subseq): Don't try to be clever.

Wed Aug 20 03:13:36 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* parse.y, pt.c: Include "except.h".
	* call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
 	error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
 	lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
 	sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
 	prototyping.

Wed Aug 20 01:34:40 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* decl2.c (mark_vtable_entries): Instead of replacing pure
	virtuals with a reference to __pure_virtual, copy the decl and
	change the RTL.

From-SVN: r14868
1997-08-20 20:50:39 -04:00
Jim Wilson
177873a521 Fix irix6 `make install' problem.
* intdoc.texi: Readd generated file.

From-SVN: r14867
1997-08-20 16:39:40 -07:00
Jim Wilson
2dcfcb5604 Change gcc3 to egcs.
From-SVN: r14866
1997-08-20 16:17:46 -07:00
Jim Wilson
63d0810bae Change gcc3 reference to egcs.
From-SVN: r14865
1997-08-20 15:14:18 -07:00
Jim Wilson
145856168e Expunge reference to gcc3.
From-SVN: r14864
1997-08-20 14:53:38 -07:00
Dave Love
c34e3ae410 Patch from Dave Love.
* dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from
	list.

From-SVN: r14862
1997-08-20 12:37:49 -07:00
Jim Wilson
e3eef942f2 stmt.c (start_cleanup_deferal, [...]): Test block_stack before dereferencing it.
* stmt.c (start_cleanup_deferal, end_cleanup_deferal): Test
	block_stack before dereferencing it.

From-SVN: r14861
1997-08-20 12:30:36 -07:00
Michael Meissner
246853b927 Work with haifa renaming get_issue_rate -> ISSUE_RATE
From-SVN: r14858
1997-08-20 19:08:56 +00:00
Jason Merrill
f017f649b4 pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
* pt.c (lookup_nested_type_by_name): Handle typedef wierdness.

	* typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.

From-SVN: r14857
1997-08-19 21:07:33 -04:00
Jason Merrill
04f4195145 * cplus-dem.c: Add 'extern' to prepends_underscore.
From-SVN: r14856
1997-08-19 20:12:54 -04:00
Jason Merrill
fe4e8851ae pt.c (instantiate_class_template): Call repo_template_used before finish_prevtable_vardecl.
* pt.c (instantiate_class_template): Call repo_template_used
	before finish_prevtable_vardecl.

	* call.c: fix typo.

	* ChangeLog: Remove everything from 2.7.2 back.

From-SVN: r14854
1997-08-19 19:31:19 -04:00
Jason Merrill
f62dbf031d merge
From-SVN: r14853
1997-08-19 18:49:24 -04:00
Jason Merrill
da20811c09 merge
From-SVN: r14852
1997-08-19 18:37:19 -04:00
Jeffrey A Law
62d65906d6 haifa-sched.c (ISSUE_RATE): Renamed from MACHINE_issue_rate.
* haifa-sched.c (ISSUE_RATE): Renamed from MACHINE_issue_rate.
        (get_issue_rate): Delete.
        * pa.h (ISSUE_RATE): Define.

From-SVN: r14851
1997-08-19 15:22:04 -06:00
Jeffrey A Law
2da05a5bb8 configure.in: Turn on haifa by default for the PA.
* configure.in: Turn on haifa by default for the PA.
        * configure: Rebuilt.
        * pa.c (override_options): Accept -mschedule=7200 option.
        (pa_adjust_cost): No longer need to scale costs for newer
        processors.
        * pa.h (enum processor_type): Add PROCESSOR_7200.
        * pa.md: Revamp scheduling parameters to work better with
        haifa.  Add scheduling parameters for the 7200.

From-SVN: r14850
1997-08-19 15:09:22 -06:00
Jeffrey A Law
4f64eacaee haifa-sched.c (move_insn): Reemit notes for SCHED_GROUP_P insns too.
* haifa-sched.c (move_insn): Reemit notes for SCHED_GROUP_P
        insns too.
        (schedule_block): When adjusting basic_block_{head,end}, account
        for movement of SCHED_GROUP_P insns too.

        * haifa-sched.c (debug_dependencies): Fix thinko.

From-SVN: r14849
1997-08-19 12:02:21 -06:00
Jeff Law
6182283505 haifa-sched.c: Make lots of variable static.
* haifa-sched.c: Make lots of variable static.
Just cleaning stuff up.

From-SVN: r14848
1997-08-19 10:15:54 -06:00
Jim Wilson
a94ce33311 reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR reloads to...
* reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR
        reloads to RELOAD_FOR_OPERAND_ADDRESS reloads.
        * reload1.c: Undo bugfix from Aug 11.
Back out "simple" patch for PA reload bug and install the one accepted
by the FSF.

From-SVN: r14847
1997-08-19 10:04:22 -06:00
H.J. Lu
e9576d2c22 expr.h, real.h: Finish prototyping.
* expr.h, real.h: Finish prototyping.
Some of hj's prototyping stuff after minor formatting fixes.

From-SVN: r14846
1997-08-19 09:51:10 -06:00
Jeffrey A Law
e933cbe007 Makefile.in (EXPECT, [...]): Define.
* Makefile.in (EXPECT, RUNTEST, RUNTESTFLAGS): Define.
        (site.exp, check, check-g++, check-gcc): New targets.
For dejagnu.

From-SVN: r14845
1997-08-19 09:36:20 -06:00
Jeff Law
921e5a0eb4 Initial revision
From-SVN: r14840
1997-08-19 01:34:40 -06:00
Jeff Law
45832e2182 Take out __EGCS__ and __EGCS_MINOR__.
From-SVN: r14839
1997-08-18 21:42:44 -06:00
Mike Meissner
f24b370adf Fix --with-cpu=xxx
From-SVN: r14837
1997-08-18 22:03:38 +00:00
Jim Wilson
1c4c585118 * Makefile.in (stmp-multilib-sub): Fix typo in last change.
From-SVN: r14834
1997-08-18 13:51:37 -07:00
Jeff Law
fcb103abe5 Initial revision
From-SVN: r14831
1997-08-18 11:13:00 -06:00
Jeffrey A Law
c8857babb1 Makefile.in (F77_SRCS): Re-alphabetize.
* Makefile.in (F77_SRCS): Re-alphabetize.
        * Make-lang.in (F77_OBJS): Likewise.
Minor nit from Craig Burley.

From-SVN: r14829
1997-08-18 09:01:55 -06:00
Jeff Law
1404ad5cbc Another haifa typo.
From-SVN: r14828
1997-08-17 20:08:55 -06:00
Jeff Law
4e9633f00b Fix typos in last haifa change.
From-SVN: r14827
1997-08-17 20:06:48 -06:00
Jeff Law
9c0416e03f Remove another reference to expected object file comparison failures.
From-SVN: r14826
1997-08-17 18:21:05 -06:00
Manfred Hollstein
71abb5679c Makefile.in (sub-makes): Pass the current value of LANGUAGES down to sub-makes to avoid building more...
* Makefile.in (sub-makes): Pass the current value of LANGUAGES down
        to sub-makes to avoid building more passes than the user might have
        requested on the command line.
From Manfred Hollstein.

From-SVN: r14825
1997-08-17 17:48:47 -06:00
Jeffrey A Law
ff752ff6c9 INSTALL: Rebuilt.
* INSTALL: Rebuilt.
        * install.texi: Remove "Object File Differences" section.  Remove
        all references to zzz.o failing comparison tests.
        * version.c, version.h: Renamed from zzz.c and zzz.h.  Remove
        date and time stamps so a 3 stage build reports no differences.
        * Make-lang.in: Corresponding changes.
        * Makefile.in: Likewise.
        * g77.c, parse.c: Likewise.
So 3-stage build compares OK.  Rename zzz.[ch] files to version.[ch].

From-SVN: r14824
1997-08-17 17:33:04 -06:00
Dave Love
6042434abc configure.in: Expurgate `broken_install' (install is autoconfed).
* configure.in: Expurgate `broken_install' (install is
        autoconfed).

        * configure.lang: Substitute autoconfed ${INSTALL} (not currently
        relevant).
From Dave love.

From-SVN: r14823
1997-08-17 15:41:59 -06:00
Jeffrey A Law
094420edc0 gcc.c (default_compilers): Add __EGCS__ and __EGCS_MINOR__ predefines.
* gcc.c (default_compilers): Add __EGCS__ and __EGCS_MINOR__
        predefines.

From-SVN: r14822
1997-08-17 15:15:15 -06:00
Jeff Law
e56cc9073b Opps.
From-SVN: r14820
1997-08-17 08:35:06 -06:00
Jeff Law
692214467a * intdoc.texi: Remove generated file from distribution.
From-SVN: r14819
1997-08-17 08:34:23 -06:00
Jeffrey A Law
38ea060fa7 loop.c (is_power_of_2, [...]): Delete unused functions and declarations.
* loop.c (is_power_of_2, is_conditional_branch): Delete unused
        functions and declarations.
        (analyze_loop_iterations): Use condjump_p.
        (insert_bct): Likewise.  Use exact_log2.
Just cleanup up some haifa code.

From-SVN: r14818
1997-08-16 01:09:42 -06:00
Jeffrey A Law
f187056f8a haifa-sched.c (find_post_sched_live): Call FREE_REG_SET as needed.
* haifa-sched.c (find_post_sched_live): Call FREE_REG_SET as needed.
        (schedule_region): Likewise.
        (schedule_insns): Likewise.
To avoid leaking memory.

        * PROJECTS: Update with Haifa stuff.

From-SVN: r14817
1997-08-15 23:49:38 -06:00
Jeffrey A Law
0945e93725 loop.c (is_conditional_branch): Make definition match declaration.
* loop.c (is_conditional_branch): Make definition match declaration.
Found by the sunos compiler

From-SVN: r14815
1997-08-15 14:50:04 -06:00
Jeffrey A Law
11c21791a4 Tweak again.
From-SVN: r14814
1997-08-15 14:38:11 -06:00
Jeffrey A Law
96e87e3e2a Make version # egcs-3.0.0 since we need to make sure the version#s
in the built-in defines are > 2.7.

From-SVN: r14813
1997-08-15 14:26:03 -06:00
Jeffrey A Law
566cfa8175 Makefile.in, [...]: Remove "^L" at the beginning of lines.
* Makefile.in, Make-lang.in: Remove "^L" at the beginning
        of lines.
Some makes don't like them.

From-SVN: r14812
1997-08-15 13:45:17 -06:00
Jeffrey A Law
9af0625405 version.c: Change the version string to look like...
* version.c: Change the version string to look like:
        egcs-1.0.0 970814 (gcc2-970802 experimental).

        * gcc.c: Take out experimental snapshot warning message.

From-SVN: r14811
1997-08-15 12:50:36 -06:00
Michael Meissner
ebc25a17d4 Use rtl macros for names of NOTEs.
From-SVN: r14810
1997-08-15 17:48:56 +00:00
Jeff Law
62603f9e83 Opps. Forgot to commit this.
From-SVN: r14803
1997-08-14 23:40:31 -06:00
Jeff Law
881d7cb9d4 c-lex.c (check_newline): Pass finput again to HANDLE_PRAGMA.
* c-lex.c (check_newline): Pass finput again to HANDLE_PRAGMA.
Bring over from the FSF.

From-SVN: r14802
1997-08-14 23:32:53 -06:00
Jeff Law
5d38efae92 toplev.c (main): In -g handling code, add code to set len.
* toplev.c (main): In -g handling code, add code to set len.

        * alpha.md (extendqihi2): Use HImode not QImode in force_reg call.

Brought over from gcc2.

From-SVN: r14801
1997-08-14 23:29:33 -06:00
Jeff Law
b3261d1fd3 Basically a duplicate of COPYING.
From-SVN: r14800
1997-08-14 23:17:24 -06:00
Jeff Law
37a70e5727 Remove old (pre gcc-2.7.2) ChangeLog files.
Remove pre-built into files.

From-SVN: r14799
1997-08-14 23:15:07 -06:00
Jeff Law
5f0445a70c New file with pointers to compiler relates web sites.
From-SVN: r14784
1997-08-13 10:10:39 -06:00
Doug Evans
992d1248f5 configure.in (haifa configury): Fix typo.
* configure.in (haifa configury): Fix typo.
	* configure: Regenerate.

From-SVN: r14783
1997-08-13 08:04:44 +00:00
Jeffrey A Law
7bb6fbd1c6 version.c: Bump version to "gcc-3.0.0 970802 experimental".
* version.c: Bump version to "gcc-3.0.0 970802 experimental".

        * gcc.info*: Rebuilt.

        * COPYING.g77, README.g77: New files.
        * real.c (ereal_unto_float, ereal_unto_double): New functions.
        * real.h (ereal_unto_float, ereal_unto_double): Declare them.
        (REAL_VALUE_UNTO_TARGET_DOUBLE, REAL_VALUE_UNTO_TARGET_SINGLE): Define.
Get g77 to work with gcc3.

From-SVN: r14776
1997-08-12 11:13:25 -06:00
Jeffrey A Law
8f87a56384 g77.info*: Rebuilt.
* g77.info*: Rebuilt.

        * config-lang.in: Don't demand the backend patch.
        * com.c (lang_printable_name): Second argument is now an int.  Don't
        store into the value of the second argument.
        * top.c (ffe_decode_option): Temporarily disable setting
        of "Toon" loop options until we figure out how to address
        them.

Make g77 work with gcc3.

From-SVN: r14775
1997-08-12 11:12:21 -06:00
Jeff Law
5ff904cd27 Initial revision
From-SVN: r14772
1997-08-12 01:47:32 -06:00
Jeff Law
9f31cf0d42 Remove gratuitous changes from the alias analysis patches.
From-SVN: r14771
1997-08-11 22:12:04 -06:00
Jeffrey A Law
8c660648ca * Integrate Haifa instruction scheduler.
* Integrate regmove pass.
See ChangeLog for deatils.

From-SVN: r14770
1997-08-11 22:07:19 -06:00
Jeffrey A Law
aa32d84158 * Integrate tlink patch from jason@cygnus.com
* gcc.c (SWITCH_TAKES_ARG): Add 'V', 'B' and 'b'.
        (process_command): Increment n_switches for them.  Don't discard
        their args.  Validate them.
        (main): Escape " marks when creating COLLECT_GCC_OPTIONS.
        From Rohan Lenard.
        (process_command): Set include_prefixes from COMPILER_PATH.
        (main): Set COLLECT_GCC_OPTIONS sooner.
        * confiugre.in: Link ../ld/ld.new to collect-ld rather than real-ld.
        * tlink.c, hash.c, hash.h: New files.
        * Makefile.in (USE_COLLECT2): Always use collect2.
        (collect2): Depend on and link in hash.o and tlink.o.
        (tlink.o, hash.o): Add dependencies.

tlink patches from Jason.

From-SVN: r14769
1997-08-11 14:23:53 -06:00
Jeffrey A Law
9ae8ffe751 * Integrate alias analysis changes from jfc@mit.edu
* Makefile.in (OBJS): Add alias.o
        (alias.o): Add dependencies.
        * alias.c: New file.
        * sched.c: Remove alias analysis code.  It lives in alias.c now.
        (reg_last_uses_size): Declare.
        (sched_analyze_2): Add new arguments to true_dependence.
        (sched_analyze_insn): Use reg_last_uses_size instead of max_reg.
        (schedule_block): Initialize reg_last_uses_size.
        (schedule_insns): Always call init_alias_analysis.
        * calls.c (expand_call): Note calls to malloc, calloc, and realloc;
        mark return value from such functions as a pointer and keep track of
        them for alias analysis.  If a return value from a function is a
        pointer, mark it as such.
        * combine.c (distribute_notes): Handle REG_NOALIAS.
        * cse.c (struct write_data): Delete.  No longer needed.
        (invalidate): Don't call set_nonvarying_address_components anymore.
        Use true_dependence to decide if an entry should be removed from
        the hash table.
        (invalidate_memory): Remove WRITES argument, simplify appropriately.
        Fix all callers.
        (note_mem_written): Similarly for WRITE_PTR argument.
        (invalidate_from_clobbers): Similarly for W argument.
        (invalidate_for_call): Remove memory elements from the hash table.
        (refers_to_mem_p, cse_rtx_addr_varies_p): Deleted.
        (cse_rtx_varies_p): New function.  Derived from old
        cse_rtx_addr_varies_p.
        (cse_insn): Remove WRITES_MEMORY and INIT variables and all references.
        Don't call note_mem_written anymore.  Stack pushes invalidate the stack
        pointer if PUSH_ROUNDING is defined.  No longer need to call
        cse_rtx_addr_varies_p to decide if a MEM should be invalidated.
        (skipped_writes_memory): Remove variable.
        (invalidate_skipped_set): Simplify and wewrite to use invalidate_memory.
        (invalidate_skipped_block): Simplify for new alias analysis code.
        (cse_set_around_loop): Likewise.
        (cse_main): Call init_alias_analysis.
        * flags.h (flag_alias_check, flag_argument_noalias): Declare.
        * toplev.c (flag_alias_check, flag_argument_noalias): Define.
        (f_options): Add new alias checking arguments.
        (main): Set flag_alias_check when optimizing.
        * local_alloc (validate_equiv_mem_from_store): Add new arguments
        to true_dependence.
        (memref_referenced_p): Likewise.
        * loop.c (NUM_STORES): Increase to 30.
        (prescan_loop): Only non-constant calls set unknown_address_altered.
        (invariant_p): Add new arguments to true_dependence.
        (record_giv): Initialize unrolled and shared fields.
        (emit_iv_add_mult): Call record_base_value as needed.
        * loop.h (struct induction): Add unrolled and shared fields.
        * unroll.c  (unroll_loop): Call record_base_value as needed.
        (copy_loop_body): Likewise.
        (final_biv_value): Likewise.
        (final_giv_value): Likewise.
        (find_splittable_regs): Likewise.  Only create one new pseudo
        if we have multiple address GIVs that were combined with the same
        dst_reg GIV.  Note when a new register is created due to unrolling.
        * rtl.c (reg_note_name): Add REG_NOALIAS.
        * rtl.h (enum reg_note): Similarly.
        (rtx_varies_p, may_trap_p, side_effects_p): Declare.
        (volatile_refs_p, volatile_insn_p, remove_note): Likewise.
        (note_stores, refers_to_regno_p, reg_overlap_mentioned_p): Likewise.
        (true_dependence, read_dependence, anti_dependence): Likewise.
        (output_dependence, init_alias_analysis, end_alias_analysis): Likewise.
        (mark_user_reg, mark_reg_pointer): Likewise.
jfc's alias analysis code.

From-SVN: r14768
1997-08-11 14:07:24 -06:00
Jeff Law
5fa39bfeb7 * Integrate reload bugfix from Wilson which enables the PA port
to bootstrap again.
        * reload1.c (reload): Sum needs for both OPADDR_ADDR and and
        OPERAND_ADDRESS when computing how many registers an insn needs.
        (reload_reg_free_p): OPADDR_ADDR and OPERAND_ADDRESS reloads do
        conflict.
        (reload_reg_free_before_p): Treat OPERAND_ADDRESS reloads just like
        OPADDR_ADDR reload.
        (reload_reg_reaches_end_p): For RELOAD_FOR_OPADDR_ADDR insns, registers
        in reload_reg_use_in_op_addr do not reach the end.
        do not reach the end.
        (reloads_conflict): RELOAD_FOR_OPADDR_ADDR conflicts with
        RELOAD_FOR_OPERAND_ADDRESS.



Start a new ChangeLog for gcc3.

From-SVN: r14767
1997-08-11 13:31:10 -06:00
4139 changed files with 576363 additions and 133473 deletions

30
.cvsignore Normal file
View File

@@ -0,0 +1,30 @@
*-all
*-co
*-dirs
*-done
*-info
*-install-info
*-src
*-stamp-*
*-tagged
blockit
cfg-paper.info
config.status
configure.aux
configure.cp
configure.cps
configure.dvi
configure.fn
configure.fns
configure.ky
configure.kys
configure.log
configure.pg
configure.pgs
configure.toc
configure.tp
configure.tps
configure.vr
configure.vrs
dir.info
Makefile

340
COPYING Normal file
View File

@@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program 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 of the License, or
(at your option) any later version.
This program 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; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

3
COPYING.LIB Normal file
View File

@@ -0,0 +1,3 @@
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA

5324
ChangeLog Normal file

File diff suppressed because it is too large Load Diff

50
INSTALL/BUILD Normal file
View File

@@ -0,0 +1,50 @@
Building egcs-1.0.2
Now that egcs is configured, you are ready to build the compiler and
runtime libraries.
We highly recommend that egcs be built using gnu-make; other versions
make work, then again they might not. To be safe build with gnu-make.
Building a native compiler
For a native build issue the command "make bootstrap". This will build
the entire egcs compiler system, which includes the following steps:
* Build host tools necessary to build the compiler such as texinfo,
bison, gperf.
* Build target tools for use by the compiler such as gas, gld, and
binutils.
* Perform a 3-stage bootstrap of the compiler.
* Perform a comparison test of the stage2 and stage3 compilers.
* Build runtime libraries using the stage3 compiler from the
previous step.
If you are short on disk space you might consider "make
bootstrap-lean" instead. This is identical to "make bootstrap" except
that object files from the stage1 and stage2 of the 3-stage bootstrap
of the compiler are deleted as soon as they are no longer needed.
Building a cross compiler
We recommend reading the [1]crossgcc FAQ for information about
building cross compilers.
For a cross build, issue the command "make cross", which performs the
following steps:
* Build host tools necessary to build the compiler such as texinfo,
bison, gperf.
* Build target tools for use by the compiler such as gas, gld, and
binutils.
* Build the compiler (single stage only).
* Build runtime libraries using the compiler from the previous step.
Note that if an error occurs in any step the make process will exit.
_________________________________________________________________
Last modified on Jan 2, 1998.
References
1. ftp://ftp.cygnus.com/pub/embedded/crossgcc/FAQ-0.8.1

90
INSTALL/CONFIGURE Normal file
View File

@@ -0,0 +1,90 @@
Configuring egcs-1.0.2
Like most GNU software, egcs must be configured before it can be
built. This document attempts to describe the recommended
configuration procedure for both native and cross targets.
We use srcdir to refer to the toplevel source directory for egcs; we
use objdir to refer to the toplevel build/object directory for egcs.
First, we highly recommend that egcs be built into a separate
directory than the sources. This is how we generally build egcs;
building where srcdir == objdir should still work, but doesn't get
extensive testing.
Second, when configuring a native system, either "cc" must be in your
path or you must set CC in your environment before running configure.
Otherwise the configuration scripts may fail.
To configure egcs:
% mkdir objdir
% cd objdir
% srcdir/configure [target] [options]
target specification
* egcs has code to correctly determine the correct value for target
for nearly all native systems. Therefore, we highly recommend you
not provide a configure target when configuring a native compiler.
* target must be specified when configuring a cross compiler;
examples of valid targets would be i960-rtems, m68k-coff, sh-elf,
etc.
options specification
Use options to override several configure time options for egcs. A
partial list of supported options:
* --prefix=dirname -- Specify the toplevel installation directory.
This is the recommended way to install the tools into a directory
other than the default. The toplevel installation directory
defaults to /usr/local.
These additional options control where certain parts of the
distribution are installed. Normally you should not need to use
these options.
+ --with-local-prefix=dirname -- Specify the installation
directory for local include files. The default is /usr/local.
+ --with-gxx-include-dir=dirname -- Specify the installation
directory for g++ header files. The default is
/usr/local/include/g++.
* --enable-shared -- Build shared versions of the C++ runtime
libraries if supported --disable-shared is the default.
* --enable-haifa -- Enable the new Haifa instruction scheduler in
the compiler; the new scheduler can significantly improve code on
some targets. --disable-haifa is currently the default on all
platforms except the HPPA.
* --with-gnu-as -- Specify that the compiler should assume the GNU
assembler (aka gas) is available.
* --with-gnu-ld -- Specify that the compiler should assume the GNU
linker (aka gld) is available.
* --with-stabs -- Specify that stabs debugging information should be
used instead of whatever format the host normally uses. Normally
GCC uses the same debug format as the host system.
* --enable-multilib -- Specify that multiple target libraries should
be built to support different target variants, calling
conventions, etc. This is the default.
* --enable-threads -- Specify that the target supports threads. This
only effects the Objective-C compiler and runtime library.
* --enable-threads=lib -- Specify that lib is the thread support
library. This only effects the Objective-C compiler and runtime
library.
* --with-cpu=cpu -- Specify which cpu variant the compiler should
generate code for by default. This is currently only supported on
the RS6000/PowerPC ports.
Some options which only apply to building cross compilers:
* --with-headers=dir -- Specifies a directory which has target
include files.
* --with-libs=dirs -- Specifies a list of directories which contain
the target runtime libraries.
* --with-newlib -- Specifies that "newlib" is being used as the
target C library. This causes __eprintf to be omitted from
libgcc.a on the assumption that it will be provided by newlib.
Note that each --enable option has a corresponding --disable option
and that each --with option has a corresponding --without option.
_________________________________________________________________
Last modified on Jan 2, 1998.

633
INSTALL/FAQ Normal file
View File

@@ -0,0 +1,633 @@
egcs Frequently Asked Questions
1. [1]How is egcs different from gcc2?
2. [2]What is an open development model?
3. [3]Releases and Forking
4. [4]bits/libc-lock.h: No such file or directory
5. [5]`_IO_stdfile_0_lock' was not declared in this scope
6. [6]Problems building the Fortran compiler
7. [7]Problems building on MIPS platforms
8. [8]Problems with exception handling on x86 platforms
9. [9]Bootstrap comparison failures on HPs
10. [10]Bootstrap loops rebuilding cc1 over and over
11. [11]Dynamic linker is unable to find GCC libraries
12. [12]libstdc++/libio tests fail badly with --enable-shared
13. [13]Unable to run the testsuite
14. [14]How to build a cross compiler
15. [15]How to install both gcc2 and egcs
16. [16]Snapshots, how, when, why
17. [17]Problems building Linux kernels
18. [18]Virtual memory exhausted
19. [19]GCC can not find GAS
20. [20]egcs does not work on Red Hat 5.0
21. [21]Unable to bootstrap on x86 Solaris2.{5,6}
22. [22]EGCS with Windows
23. [23]EGCS with OS/2
24. [24]cpp: Usage:... Error
25. [25]EGCS will not build KDE
26. [26]Friend Templates
27. [27]Where to find libg++
28. [28]Why do I need autoconf & bison
29. [29]EGCS does not work on AIX 4.3
30. [30]Problems debugging egcs code
31. [31]Conflicts when using cvs update
_________________________________________________________________
How is egcs be different from gcc2?
Six years ago, gcc version 1 had reached a point of stability. For the
targets it could support, it worked well. It had limitations inherent
in its design that would be difficult to resolve, so a major effort
was made and gcc version 2 was the result. When we had gcc2 in a
useful state, development efforts on gcc1 stopped and we all
concentrated on making gcc2 better than gcc1 could ever be. This is
the kind of step forward we want to make with egcs.
In brief, the three biggest differences between egcs and gcc2 are:
* More rexamination of basic architectual decisions of gcc and an
interest in adding new optimizations;
* working with the groups who have fractured out from gcc2 (like the
Linux folks, the Intel optimizations folks, Fortran folks)
including more front-ends; and finally
* An open development model ([32]see below) for the development
process.
These three differences will work together to result in a more useful
compiler, a more stable compiler, a central compiler that works for
more people, a compiler that generates better code.
There are a lot of exciting compiler optimizations that have come out.
We want them in gcc. There are a lot of front ends out there for gcc
for languages like Fortran or Pascal. We want them easily installable
by users. After six years of working on gcc2, we've come to see
problems and limitations in the way gcc is architected; it is time to
address these again.
_________________________________________________________________
What is an open development model?
With egcs, we are going to try a bazaar style[33][1] approach to its
development: We're going to be making snapshots publicly available to
anyone who wants to try them; we're going to welcome anyone to join
the development mailing list. All of the discussions on the
development mailing list are available via the web. We're going to be
making releases with a much higher frequency than they have been made
in the past: We're shooting for three by the end of 1997.
In addition to weekly snapshots of the egcs development sources, we
are going to look at making the sources readable from a CVS server by
anyone. We want to make it so external maintainers of parts of egcs
are able to commit changes to their part of egcs directly into the
sources without going through an intermediary.
There have been many potential gcc developers who were not able to
participate in gcc development in the past. We these people to help in
any way they can; we ultimately want gcc to be the best compiler in
the world.
A compiler is a complicated piece of software, there will still be
strong central maintainers who will reject patches, who will demand
documentation of implementations, and who will keep the level of
quality as high as it is today. Code that could use wider testing may
be intergrated--code that is simply ill-conceived won't be.
egcs is not the first piece of software to use this open development
process; FreeBSD, the Emacs lisp repository, and Linux are a few
examples of the bazaar style of development.
With egcs, we will be adding new features and optimizations at a rate
that has not been done since the creation of gcc2; these additions
will inevitably have a temporarily destabilizing effect. With the help
of developers working together with this bazaar style development, the
resulting stability and quality levels will be better than we've had
before.
[1] We've been discussing different development models a lot over
the past few months. The paper which started all of this introduced
two terms: A cathedral development model versus a bazaar
development model. The paper is written by Eric S. Raymond, it is
called ``[34]The Cathedral and the Bazaar''. The paper is a useful
starting point for discussions.
_________________________________________________________________
Releases and Forking?
Some folks have questioned whether or not making releases is
consistent with the goals of the egcs project and whether or not
making releases is a fork from gcc2.
The egcs project has several goals, including:
* Experimenting with a new development model, release process and
release packaging,
* Using the new development model to accelerate development of new
features, optimizations, etc for future inclusion in gcc,
* Providing high quality releases to the public.
An egcs release is a copy of the egcs sources that the developers have
tested and are believed to be suitable for wider scale use and testing.
Making releases of stable, tested sources is both a goal and a means by
which we hope to achieve other goals of the egcs project.
The existence of a stable tested release allows egcs to be more thoroughly
used and tested by a wider audience than is capable of testing snapshots.
The expanded audience provides developers with critical feedback in a
timely manner, which is beneficial to GCC as a whole and is consistent with
the stated goals of egcs.
The gcc maintainers are encouraged to migrate tested fixes and new features
from egcs into gcc at their discretion. egcs maintainers are willing to
assist the gcc maintainers as time permits. egcs periodically merges in
changes from gcc into the egcs sources.
What will keep egcs from becoming a fork is cooperation between the
developers of gcc and egcs.
We don't see this situation as significantly different than other projects
that make releases based on some version of the gcc sources (Cygnus, g77,
etc). All the code is still available for inclusion in gcc at the discretion
of the gcc maintainers.
_________________________________________________________________
bits/libc-lock.h: No such file or directory
This entry should be obsolete, egcs should handle these beta versions
of glibc2 correctly.
egcs includes a tightly integrated libio and libstdc++ implementation
which can cause problems on hosts which have libio integrated into
their C library (most notably Linux).
We believe that we've solved the major technical problems for the most
common versions of libc found on Linux systems. However, some versions
of Linux use pre-release versions of glibc2, which egcs has trouble
detecting and correctly handling.
If you're using one of these pre-release versions of glibc2, you may
get a message "bits/libc-lock.h: No such file or directory" when
building egcs. Unfortunately, to fix this problem you will need to
update your C library to glibc2.0.5c.
_________________________________________________________________
`_IO_stdfile_0_lock' was not declared in this scope
If you get this error, it means either egcs incorrectly guessed what
version of libc is installed on your linux system, or you incorrectly
specified a version of glibc when configuring egcs.
If you did not provide a target name when configuring egcs, then
you've found a bug which needs to be reported. If you did provide a
target name at configure time, then you should reconfigure without
specifying a target name.
_________________________________________________________________
Problems building the Fortran compiler
The Fortran front end can not be built with most vendor compilers; it
must be built with gcc. As a result, you may get an error if you do
not follow the install instructions carefully.
In particular, instead of using "make" to build egcs, you should use
"make bootstrap" if you are building a native compiler or "make cross"
if you are building a cross compiler.
It has also been reported that the Fortran compiler can not be built
on Red Hat 4.X linux for the Alpha. Fixing this may require upgrading
binutils or to Red Hat 5.0; we'll provide more information as it
becomes available.
_________________________________________________________________
Problems building on MIPS platforms
egcs requires the use of GAS on all versions of Irix, except Irix 6
due to limitations in older Irix assemblers.
Either of these messages indicates that you are using the MIPS
assembler when instead you should be using GAS.
as0: Error: ./libgcc2.c, line 1:Badly delimited numeric literal
.4byte $LECIE1-$LSCIE1
as0: Error: ./libgcc2.c, line 1:malformed statement
_________________________________________________________________
as0: Error: /home/law/egcs_release/gcc/libgcc2.c, line 1:undefined symbol i
n expression
.word $LECIE1-$LSCIE1
For Irix 6, you should use the native assembler as GAS is not
supported on Irix 6.
_________________________________________________________________
Problems with exception handling on x86 platforms
If you are using the GNU assembler (aka gas) on an x86 platform and
exception handling is not working correctly, then odds are you're
using a buggy assembler.
We recommend binutils-2.8.1.0.15 or newer.
[35]binutils-2.8.1.0.20 source
[36]binutils-2.8.1.0.20 x86 binary for libc5
[37]binutils-2.8.1.0.20 x86 binary for glibc2 Or, you can try a
[38]binutils snapshot; however, be aware that the binutils snapshot is
untested and may not work (or even build). Use it at your own risk.
_________________________________________________________________
Bootstrap comparison failures on HPs
If you bootstrap the compiler on hpux10 using the HP assembler instead
of gas, every file will fail the comparison test.
The HP asembler inserts timestamps into object files it creates,
causing every file to be different. The location of the timestamp
varies for each object file, so there's no real way to work around
this mis-feature.
Odds are your compiler is fine, but there's no way to be certain.
If you use GAS on HPs, then you will not run into this problem because
GAS never inserts timestamps into object files. For this and various
other reasons we highly recommend using GAS on HPs.
_________________________________________________________________
Bootstrap loops rebuilding cc1 over and over
When building egcs, the build process loops rebuilding cc1 over and
over again. This happens on mips-sgi-irix5.2, and possibly other
platforms.
This is probably a bug somewhere in the egcs Makefile. Until we find
and fix this bug we recommend you use GNU make instead of vendor
supplied make programs.
_________________________________________________________________
Dynamic linker is unable to find GCC libraries
This problem manifests itself by programs not finding shared libraries
they depend on when the programs are started. Note this problem often
manifests itself with failures in the libio/libstdc++ tests after
configuring with --enable-shared and building egcs.
GCC does not specify a runpath so that the dynamic linker can find
dynamic libraries at runtime.
The short explaination is that if you always pass a -R option to the
linker, then your programs become dependent on directories which may
be NFS mounted, and programs may hang unnecessarily when an NFS server
goes down.
The problem is not programs that do require the directories; those
programs are going to hang no matter what you do. The problem is
programs that do not require the directories.
SunOS effectively always passed a -R option for every -L option; this
was a bad idea, and so it was removed for Solaris. We should not
recreate it.
_________________________________________________________________
Unable to run the testsuite
If you get a message about unable to find "standard.exp" when trying
to run the egcs testsuites, then your dejagnu is too old to run the
egcs tests. You will need to get a newer version of dejagnu; we've
made a [39]dejagnu snapshot available until a new version of dejagnu
can be released.
_________________________________________________________________
How to build a cross compiler
Building cross compilers is a rather complex undertaking because they
usually need additional software (cross assembler, cross linker,
target libraries, target include files, etc).
We recommend reading the [40]crossgcc FAQ for information about
building cross compilers.
If you have all the pieces available, then `make cross' should build a
cross compiler. `make LANGUAGES="c c++" install'will install the cross
compiler.
Note that if you're trying to build a cross compiler in a tree which
includes binutils-2.8 in addition to egcs, then you're going to need
to make a couple minor tweaks so that the cross assembler, linker and
nm utilities will be found.
binutils-2.8 builds those files as gas.new, ld.new and nm.new; egcs
gcc looks for them using gas-new, ld-new and nm-new, so you may have
to arrange for any symlinks which point to &ltfile>.new to be changed
to &ltfile>-new.
_________________________________________________________________
Snapshots, how, when, why
We make snapshots of the egcs sources about once a week; there is no
predetermined schedule. These snapshots are intended to give everyone
access to work in progress. Any given snapshot may generate incorrect
code or even fail to build.
If you plan on downloading and using snapshots, we highly recommend
you subscribe to the egcs mailing lists. See [41]mailing lists on the
main egcs page for instructions on how to subscribe.
When using the diff files to update from older snapshots to newer
snapshots, make sure to use "-E" and "-p" arguments to patch so that
empty files are deleted and full pathnames are provided to patch. If
your version of patch does not support "-E", you'll need to get a
newer version. Also note that you may need autoconf, autoheader and
various other programs if you use diff files to update from one
snapshot to the next.
_________________________________________________________________
How to install both egcs and gcc2
It may be desirable to install both egcs and gcc2 on the same system.
This can be done by using different prefix paths at configure time and
a few symlinks.
Basically, configure the two compilers with different --prefix
options, then build and install each compiler. Assume you want "gcc"
to be the egcs compiler and available in /usr/local/bin; also assume
that you want "gcc2" to be the gcc2 compiler and also available in
/usr/local/bin.
The easiest way to do this is to configure egcs with
--prefix=/usr/local/egcs and gcc2 with --prefix=/usr/local/gcc2. Build
and install both compilers. Then make a symlink from
/usr/local/bin/gcc to /usr/local/egcs/bin/gcc and from
/usr/local/bin/gcc2 to /usr/local/gcc2/bin/gcc. Create similar links
for the "g++", "c++" and "g77" compiler drivers.
_________________________________________________________________
Problems building Linux kernels
If you installed a recent binutils/gas snapshot on your Linux system,
you may not be able to build the kernel because objdump does not
understand the "-k" switch. The solution for this problem is to remove
/usr/bin/encaps.
The reason you must remove /usr/bin/encaps is because it is an
obsolete program that was part of older binutils distributions; the
Linux kernel's Makefile looks for this program to decide if you have
an old or a new binutils. Problems occur if you installed a new
binutils but haven't removed encaps, because the Makefile thinks you
have the old one. So zap it; trust us, you won't miss it.
You may get an internal compiler error compiling process.c in newer
versions of the Linux kernel on x86 machines. This is a bug in an asm
statement in process.c, not a bug in egcs. XXX How to fix?!?
You may get errors with the X driver of the form
_X11TransSocketUNIXConnect: Can't connect: errno = 111
It's a kernel bug. The function sys_iopl in arch/i386/kernel/ioport.c
does an illegal hack which used to work but is now broken since GCC
optimizes more aggressively . The newer 2.1.x kernels already have a
fix which should also work in 2.0.32.
_________________________________________________________________
Virtual memory exhausted error
This error means your system ran out of memory; this can happen for
large files, particularly when optimizing. If you're getting this
error you should consider trying to simplify your files or reducing
the optimization level.
Note that using -pedantic or -Wreturn-type can cause an explosion in
the amount of memory needed for template-heavy C++ code, such as code
that uses STL. Also note that -Wall includes -Wreturn-type, so if you
use -Wall you will need to specify -Wno-return-type to turn it off.
_________________________________________________________________
GCC can not find GAS
Some configurations like irix4, irix5, hpux* require the use of the
GNU assembler intead of the system assembler. To ensure that egcs
finds the GNU assembler, you should configure the GNU assembler with
the same --prefix option as you used for egcs. Then build & install
the GNU assembler. After the GNU assembler has been installed, proceed
with building egcs.
_________________________________________________________________
egcs does not work on Red Hat 5.0
This entry is obsolete with the release of egcs-1.0.1 which should
handle Red Hat 5.0 correctly.
egcs-1.0 does not currently work with Red Hat 5.0 on some platforms;
we'll update this entry with more information as it becomes available.
You may want to try this [42]proposed patch for Red Hat 5.0. Please
let us know if you use this patch and whether or not it works.
_________________________________________________________________
Unable to bootstrap on x86 Solaris 2.{5,6}
This entry is obsolete with the release of egcs-1.0.1 which should
handle x86 Solaris systems correctly.
This patch should fix the problem
Index: t-sol2
===================================================================
RCS file: /cvs/cvsfiles/egcs/gcc/config/i386/t-sol2,v
retrieving revision 1.2
diff -c -3 -p -r1.2 t-sol2
*** t-sol2 1997/09/04 23:54:04 1.2
--- t-sol2 1997/12/04 07:19:07
*************** crtn.o: $(srcdir)/config/i386/sol2-cn.as
*** 31,36 ****
# to produce a shared library, but since we don't know ahead of time when
# we will be doing that, we just always use -fPIC when compiling the
# routines in crtstuff.c.
! CRTSTUFF_T_CFLAGS = -fPIC
TARGET_LIBGCC2_CFLAGS = -fPIC
--- 31,40 ----
# to produce a shared library, but since we don't know ahead of time when
# we will be doing that, we just always use -fPIC when compiling the
# routines in crtstuff.c.
+ #
+ # We must also enable optimization to avoid having any code appear after
+ # the call & alignment statement, but before we switch back to the
+ # .text section.
! CRTSTUFF_T_CFLAGS = -fPIC -O2
TARGET_LIBGCC2_CFLAGS = -fPIC
_________________________________________________________________
EGCS with Windows
egcs does not currently support windows, either natively or with the
cygwin32 dll. However Mumit Khan has been working on supporting
Windows with egcs. You should check out his site if you're interested
in Windows support. [43]GNU Win32 related projects
_________________________________________________________________
EGCS with OS/2
egcs does not currently support OS/2. However, Andrew Zabolotny has
been working on a generic os/2 port with pgcc. The current code code
can be found at [44]http://www.goof.com/pcg/os2.
_________________________________________________________________
cpp: Usage:... Error
If you get an error like this when building egcs (particularly when
building __mulsi3), then you likely have a problem with your
environment variables.
cpp: Usage: /usr/lib/gcc-lib/i586-unknown-linux-gnulibc1/2.7.2.3/cpp
[switches] input output
First look for an explicit '.' in either LIBRARY_PATH or
GCC_EXEC_PREFIX from your environment. If you do not find an explicit
'.', look for an empty pathname in those variables. Note that ':' at
either the start or end of these variables is an implicit '.' and will
cause problems.
_________________________________________________________________
EGCS will not build KDE
Previous versions of g++ accepted (as a GNU extension)
constructor-arguments for the objects in an array of objects
dynamically allocated with new. Here's an example of this construct:
struct S { S(int); }
void f() { new S[3](6); }
However, this construct is not allowed by the ANSI/ISO Standard, and
is no longer accepted by g++.
KDE uses such constructs and therefore will not build with egcs; note
patches are available to fix KDE.
_________________________________________________________________
Friend Templates
In order to make a specialization of a template function a friend of a
(possibly template) class, you must explicitly state that the friend function
is a template, by appending angle brackets to its name, and this template
function must have been declared already. An error in the last public comment
draft of the ANSI/ISO C++ Standard has led people to believe that was not
necessary, but it is, and it was fixed in the final version of the Standard.
__________________________________________________________________________
Where to find libg++
Many folks have been asking where to find libg++ for egcs. First we should
point out that few programs actually need libg++; most only need
libstdc++/libio which are included in the egcs distribution.
If you do need libg++ you can get a libg++ snapshot which works with egcs from
[45]ftp://ftp.yggdrasil.com/private/hjl/libg++-2.8.1-980119.tar.gz
__________________________________________________________________________
Why do I need autoconf/bison
If you're using diffs up dated from one snapshot to the next, or if you're
using the CVS repository, you may need autoconf, bison, or possibly other tools
to rebuild egcs.
This is necessary because neither diff nor cvs keep timestamps correct. So it
is possible for "make" to think a generated file is out of date.
If you do not have autoconf, bison, etc, then you can issue the following
commands to touch all the generated files.
touch `find egcs -name configure -print`
touch egcs/gcc/c-parse.y
touch egcs/gcc/objc/objc-parse.y
touch egcs/gcc/{cstamp-h.in,c-gperf.h,c-parse.c,c-parse.h,cexp.c}
touch egcs/gcc/cp/{parse.c,parse.h}
touch egcs/gcc/objc/objc-parse.c
__________________________________________________________________________
EGCS does not work on AIX 4.3
EGCS does not currently support AIX4.3; however, if you want to try and make it
work with AIX 4.3 we highly recommend you get the fix for APAR IX74254 (64BIT
DISASSEMBLED OUPUT FROM COMPILER FAILS TO ASSEMBLE/BIND) which is available
from IBM Customer Support and IBM's service.boulder.ibm.com website.
__________________________________________________________________________
Problems debugging egcs code
On some systems egcs will produce dwarf debug records by default; however the
current gdb-4.16 release may not be able to read such debug records.
You can either use the argument "-gstabs" instead of "-g" or pick up the
current beta copy of gdb-4.17 to work around the problem.
__________________________________________________________________________
Conflicts when using cvs update
It is not uncommon to get cvs conflict messages for some generated files when
updating your local sources from the CVS repository. Typically such conflicts
occur with bison or autoconf generated files.
As long as you haven't been making modifications to the generated files or the
generator files, it is safe to delete the offending file, then run cvs update
again to get a new copy.
__________________________________________________________________________
[46]Return to the egcs home page
Last modified: March 04, 1998
References
1. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#gcc-2-diff
2. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#open-development
3. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#release-fork
4. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#libc-lock
5. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#morelibc
6. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#fortran
7. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#mips
8. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#x86eh
9. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#hpcompare
10. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#makebugs
11. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#rpath
12. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#rpath
13. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#dejagnu
14. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#cross
15. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#multiple
16. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#snapshot
17. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#linuxkernel
18. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#memexhausted
19. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#gas
20. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#rh5.0
21. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#x86solaris
22. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#windows
23. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#os2
24. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#environ
25. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#kde
26. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#friend
27. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#libg++
28. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#autoconf/bison++
29. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#aix
30. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#gdb
31. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#conflicts
32. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#open-development
33. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html#cathedral-vs-bazaar
34. http://locke.ccil.org/~esr/writings/cathedral.html
35. ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.20.tar.gz
36. ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.20.bin.tar.gz
37. ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.20.glibc.bin.tar.gz
38. ftp://egcs.cygnus.com/pub/egcs/infrastructure/gas-970915.tar.gz
39. ftp://egcs.cygnus.com/pub/egcs/infrastructure/dejagnu-971222.tar.gz
40. ftp://ftp.cygnus.com/pub/embedded/crossgcc/FAQ-0.8.1
41. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/index.html#mailinglists
42. http://www.cygnus.com/ml/egcs/1997-Dec/0594.html
43. http://www.xraylith.wisc.edu/~khan/software/gnu-win32
44. http://www.goof.com/pcg/os2
45. ftp://ftp.yggdrasil.com/private/hjl/libg++-2.8.1-980119.tar.gz
46. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/index.html

26
INSTALL/FINALINSTALL Normal file
View File

@@ -0,0 +1,26 @@
Final install egcs-1.0.2
Now that egcs has been built and tested, you can install it with `cd
objdir; make install' for a native compiler or `cd objdir; make
install LANGUAGES="c c++"' for a cross compiler (note installing cross
compilers will be easier in the next release!).
That step completes the installation of egcs; user level binaries can
be found in prefix/bin where prefix is the value you specified with
the --prefix to configure (or /usr/local by default).
If you don't mind, please send egcs@cygnus.com a short mail message
indicating that you successfully built and installed egcs. Include the
output from running srcdir/config.guess.
If you find a bug in egcs, please report it to
[1]egcs-bugs@cygnus.com.
_________________________________________________________________
Last modified on Jan 2, 1998.
References
1. mailto:egcs-bugs@cygnus.com

46
INSTALL/INDEX Normal file
View File

@@ -0,0 +1,46 @@
Installing egcs-1.0.2
This document describes the generic installation procedure for egcs as
well as detailing some target specific installation instructions for
egcs.
egcs includes several components that previously were separate
distributions with their own installation instructions. This document
supercedes all package specific installation instructions. We provide
the component specific installation information in the source
distribution for historical reference purposes only.
We recommend you read the entire generic installation instructions as
well as any target specific installation instructions before you
proceed to configure, build, test and install egcs.
If something goes wrong in the configure, build, test or install
procedures, first double check that you followed the generic and
target specific installation instructions carefully. Then check the
[1]FAQ to see if your problem is covered before you file a bug report.
The installation procedure is broken into four steps.
* [2]configure
* [3]build
* [4]test (optional)
* [5]install
Before starting the build/install procedure please browse the
[6]host/target specific installation notes.
_________________________________________________________________
[7]Return to the egcs home page
_________________________________________________________________
Last modified on Jan 2, 1998.
References
1. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/faq.html
2. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/configure.html
3. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/build.html
4. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/test.html
5. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/finalinstall.html
6. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/INSTALL/specific.html
7. file://localhost/.automount/hurl/root/puke/law/egcs-1.0.1/index.html

14
INSTALL/README Normal file
View File

@@ -0,0 +1,14 @@
This directory contains installation instrutions for egcs-1.00.
We're providing installation instructions in two forms, html and
plaintext.
index.html is the toplevel install file for html browsers.
INDEX is the toplevel install file in plaintext form.
The most recent HTML installation instructions for egcs can be obtained from
the egcs web site:
http://www.cygnus.com/egcs/install

122
INSTALL/SPECIFIC Normal file
View File

@@ -0,0 +1,122 @@
Host/Target specific installation notes for egcs-1.0.1
alpha*-*-*
No specific installation needs/instructions.
i?86-*-linux*
You will need binutils-2.8.1.0.15 or newer for exception handling to
work.
i?86-*-sco3.2v5*
The SCO assembler is currently required. The GNU assembler is not up
to the task of switching between ELF and COFF at runtime.
Unlike various prereleases of GCC, that used '-belf' and defaulted to
COFF, you must now use the '-melf' and '-mcoff' flags to toggle
between the two object file formats. ELF is now the default.
Look in gcc/config/i386/sco5.h (search for "messy") for additional
OpenServer-specific flags.
i?86-pc-solaris*
You'll need a patch to fix an egcs bug on this platform. [1]x86
solaris patch
hppa*-hp-hpux*
We highly recommend using gas/binutils-2.8 on all hppa platforms; you
may encounter a variety of problems when using the HP assembler.
hppa*-hp-hpux9
The HP assembler has major problems on this platform. We've tried to
work around the worst of the problems. However, those workarounds may
be causing linker crashes in some circumstances; the workarounds also
probably prevent shared libraries from working. Use the GNU assembler
to avoid these problems.
The configuration scripts for egcs will also trigger a bug in the
hpux9 shell. To avoid this problem set CONFIG_SHELL to /bin/ksh and
SHELL to /bin/ksh in your environment.
hppa*-hp-hpux10
For hpux10.20, we highly recommend you pick up the latest sed patch
from HP. HP has two sites which provide patches free of charge.
[2]US, Canada, Asia-Pacific, and Latin-America
[3]Europe
Retrieve patch PHCO_12862.
The HP assembler on these systems is much better than the hpux9
assembler, but still has some problems. Most notably the assembler
inserts timestamps into each object file it creates, causing the
3-stage comparison test to fail during a "make bootstrap". You should
be able to continue by saying "make all" after getting the failure
from "make bootstrap".
m68k-*-nextstep*
You absolutely must use GNU sed and GNU make on this platform.
If you try to build the integrated C++ & C++ runtime libraries on this
system you will run into trouble with include files. The way to get
around this is to use the following sequence. Note you must have write
permission to prefix for this sequence to work.
cd objdir
make all-texinfo all-bison all-byacc all-binutils all-gas all-ld
cd gcc
make bootstrap
make install-headers-tar
cd ..
make bootstrap3
m68k-sun-sunos4.1.1
It is reported that you may need the GNU assembler on this platform.
mips*-sgi-irix4
mips*-sgi-irix5
You must use GAS on these platforms, the native assembler can not
handle the code for exception handling support on this platform.
These systems don't have ranlib, which various components in egcs
need; you should be able to avoid this problem by installing GNU
binutils, which includes a functional ranlib for this system.
You may get the following warning on irix4 platforms, it can be safely
ignored.
warning: foo.o does not have gp tables for all its sections.
mips*-sgi-irix6
You must not use GAS on irix6 platforms; doing so will only cause
problems.
These systems don't have ranlib, which various components in egcs
need; you should be able to avoid this problem by making a dummy
script called ranlib which just exits with zero status and placing it
in your path.
rs6000-ibm-aix*
powerpc-ibm-aix*
At least one person as reported problems with older versions of
gnu-make on this platform. make-3.76 is reported to work correctly.
powerpc-*-linux-gnu*
You will need [4]binutils-2.8.1.0.17 for a working egcs. It is
strongly recommended to recompile binutils with egcs if you initially
built it with gcc-2.7.2.*.
sparc-unkonwn-linux-gnulibc1
It has been reported that you might need binutils-2.8.1.0.17 for this
platform too. [5]binutils-2.8.1.0.17
exception handling
XXX Linux stuff -k encaps stuff
_________________________________________________________________
Last modified on Jan 2, 1998.
References
1. http://www.cygnus.com/egcs/faq.html#x86solaris
2. http://us-support.external.hp.com/
3. http://europe-support.external.hp.com/
4. ftp://ftp.yggdrasil.com/private/hjl
5. ftp://ftp.yggdrasil.com/private/hjl

34
INSTALL/TEST Normal file
View File

@@ -0,0 +1,34 @@
Testing egcs-1.0.2
Before you install egcs, you might wish to run the egcs testsuite;
this step is optional and may require you to download additional
software.
First, you must have downloaded the egcs testsuites; the full
distribution contains testsuites. If you downloaded the "core"
compiler plus any front ends, then you do not have the testsuites. You
can download the testsuites from the same site where you downloaded
the core distribution and language front ends.
Second, you must have a new version of dejagnu on your system;
dejagnu-1.3 will not work. We have made a [1]dejagnu snapshot
available in egcs.cygnus.com:/pub/egcs/infrastructure until a new
version of dejagnu can be released.
Assuming you've got the testsuites unpacked and have installed an
appropriate dejagnu, you can run the testsuite with "cd objdir; make
-k check". This may take a long time. Go get some lunch.
The testing process will try to test as many components in the egcs
distrubution as possible, including the C, C++ and Fortran compiler as
well as the C++ runtime libraries.
How to interpret test results TBD.
_________________________________________________________________
Last modified on Jan 2, 1998.
References
1. ftp://egcs.cygnus.com/pub/egcs/infrastructure/dejagnu-971222.tar.gz

67
INSTALL/build.html Normal file
View File

@@ -0,0 +1,67 @@
<html>
<head>
<title>Building egcs-1.0.2 </title>
</head>
<body bgcolor="white">
<h1 align="center">Building egcs-1.0.2</h1>
<p>Now that egcs is configured, you are ready to build the compiler and
runtime libraries.
<p>We <b>highly</b> recommend that egcs be built using gnu-make; other
versions make work, then again they might not. To be safe build with gnu-make.
<p><b>Building a native compiler</b>
<p>For a native build issue the command "make bootstrap". This will build
the entire egcs compiler system, which includes the following steps:
<ul>
<li> Build host tools necessary to build the compiler such as texinfo, bison,
gperf.<p>
<li> Build target tools for use by the compiler such as gas, gld, and
binutils.<p>
<li> Perform a 3-stage bootstrap of the compiler.<p>
<li> Perform a comparison test of the stage2 and stage3 compilers.<p>
<li> Build runtime libraries using the stage3 compiler from the previous
step.<p>
</ul>
<p>If you are short on disk space you might consider "make bootstrap-lean"
instead. This is identical to "make bootstrap" except that object files
from the stage1 and stage2 of the 3-stage bootstrap of the compiler are
deleted as soon as they are no longer needed.
<p><b>Building a cross compiler</b>
<p> We recommend reading the
<a href="ftp://ftp.cygnus.com/pub/embedded/crossgcc/FAQ-0.8.1">
crossgcc FAQ</a> for information about building cross compilers.
<p>For a cross build, issue the command "make cross", which performs the
following steps:
<ul>
<li> Build host tools necessary to build the compiler such as texinfo, bison,
gperf.<p>
<li> Build target tools for use by the compiler such as gas, gld, and
binutils.<p>
<li> Build the compiler (single stage only).<p>
<li> Build runtime libraries using the compiler from the previous
step.<p>
</ul>
<p>Note that if an error occurs in any step the make process will exit.
<p>
<hr>
<i>Last modified on Jan 2, 1998.</i>
<!--#include virtual="/glimpsebox.html"-->
</body>
</html>

122
INSTALL/configure.html Normal file
View File

@@ -0,0 +1,122 @@
<html>
<head>
<title>Configuring egcs-1.0.2 </title>
</head>
<body bgcolor="white">
<h1 align="center">Configuring egcs-1.0.2</h1>
<p>Like most GNU software, egcs must be configured before it can be built.
This document attempts to describe the recommended configuration procedure
for both native and cross targets.
<p>We use <i>srcdir</i> to refer to the toplevel source directory for
egcs; we use <i>objdir</i> to refer to the toplevel build/object
directory for egcs.
<p>First, we <b>highly</b> recommend that egcs be built into a separate
directory than the sources. This is how we generally build egcs; building
where <i>srcdir</i> == <i>objdir</i> should still work, but doesn't get
extensive testing.
<p>Second, when configuring a native system, either "cc" must be in your
path or you must set CC in your environment before running configure.
Otherwise the configuration scripts may fail.
<p>To configure egcs:
<blockquote>
<tt>
<br>% mkdir <i>objdir</i>
<br>% cd <i>objdir</i>
<br>% <i>srcdir</i>/configure <b>[target]</b> <b>[options]</b>
</tt>
</blockquote>
<p><b>target specification</b>
<ul>
<li> egcs has code to correctly determine the correct value for
<b>target</b> for nearly all native systems. Therefore, we highly
recommend you not provide a configure target when configuring a
native compiler.
<li> <b>target</b> must be specified when configuring a cross compiler;
examples of valid targets would be i960-rtems, m68k-coff, sh-elf, etc.
</ul>
<p><b> options specification</b>
<p>Use <b>options</b> to override several configure time options for
egcs. A partial list of supported <tt>options</tt>:
<ul>
<li> <tt>--prefix=</tt><i>dirname</i> -- Specify the toplevel installation
directory. This is the recommended way to install the tools into a directory
other than the default. The toplevel installation directory defaults to
/usr/local.
<br>These additional options control where certain parts of the distribution
are installed. Normally you should not need to use these options.
<ul>
<li> <tt>--with-local-prefix=</tt><i>dirname</i> -- Specify the installation
directory for local include files. The default is /usr/local.
<li> <tt>--with-gxx-include-dir=</tt><i>dirname</i> -- Specify the installation
directory for g++ header files. The default is /usr/local/include/g++.
</ul>
<li> <tt>--enable-shared</tt> -- Build shared versions of the C++ runtime
libraries if supported <tt>--disable-shared</tt> is the default.
<li> <tt>--enable-haifa</tt> -- Enable the new Haifa instruction scheduler in the
compiler; the new scheduler can significantly improve code on some targets.
<tt>--disable-haifa</tt> is currently the default on all platforms except the HPPA.
<li> <tt>--with-gnu-as</tt> -- Specify that the compiler should assume the GNU
assembler (aka gas) is available.
<li> <tt>--with-gnu-ld</tt> -- Specify that the compiler should assume the GNU
linker (aka gld) is available.
<li> <tt>--with-stabs</tt> -- Specify that stabs debugging information should be used
instead of whatever format the host normally uses. Normally GCC uses the
same debug format as the host system.
<li> <tt>--enable-multilib</tt> -- Specify that multiple target libraries
should be built to support different target variants, calling conventions,
etc. This is the default.
<li> <tt>--enable-threads</tt> -- Specify that the target supports threads.
This only effects the Objective-C compiler and runtime library.
<li> <tt>--enable-threads=</tt><i>lib</i> -- Specify that <i>lib</i> is the
thread support library. This only effects the Objective-C compiler and
runtime library.
<li> <tt>--with-cpu=</tt><i>cpu</i> -- Specify which cpu variant the compiler should
generate code for by default. This is currently only supported on the
RS6000/PowerPC ports.
</ul>
<p>Some options which only apply to building cross compilers:
<ul>
<li> <tt>--with-headers=</tt><i>dir</i> -- Specifies a directory which has target
include files.
<li> <tt>--with-libs=</tt><i>dirs</i> -- Specifies a list of directories which contain
the target runtime libraries.
<li> <tt>--with-newlib</tt> -- Specifies that "newlib" is being used as the target
C library. This causes __eprintf to be omitted from libgcc.a on the
assumption that it will be provided by newlib.
</ul>
<p>Note that each <tt>--enable</tt> option has a corresponding <tt>--disable</tt> option and
that each <tt>--with</tt> option has a corresponding <tt>--without</tt> option.
<p>
<hr>
<i>Last modified on Jan 2, 1998.</i>
</body>
</html>

583
INSTALL/faq.html Normal file
View File

@@ -0,0 +1,583 @@
<html>
<head>
<title>egcs Frequently Asked Questions</title>
</head>
<body bgcolor="white">
<h1 align="center">egcs Frequently Asked Questions</h1>
<ol>
<li><a href="#gcc-2-diff">How is egcs different from gcc2?</a>
<li><a href="#open-development">What is an open development model?</a>
<li><a href="#release-fork">Releases and Forking</a>
<li><a href="#libc-lock">bits/libc-lock.h: No such file or directory</a>
<li><a href="#morelibc">`_IO_stdfile_0_lock' was not declared in this scope</a>
<li><a href="#fortran">Problems building the Fortran compiler</a>
<li><a href="#mips">Problems building on MIPS platforms</a>
<li><a href="#x86eh">Problems with exception handling on x86 platforms</a>
<li><a href="#hpcompare">Bootstrap comparison failures on HPs</a>
<li><a href="#makebugs">Bootstrap loops rebuilding cc1 over and over</a>
<li><a href="#rpath">Dynamic linker is unable to find GCC libraries</a>
<li><a href="#rpath">libstdc++/libio tests fail badly with --enable-shared</a>
<li><a href="#dejagnu">Unable to run the testsuite</a>
<li><a href="#cross">How to build a cross compiler</a>
<li><a href="#multiple">How to install both gcc2 and egcs</a>
<li><a href="#snapshot">Snapshots, how, when, why</a>
<li><a href="#linuxkernel">Problems building Linux kernels</a>
<li><a href="#memexhausted">Virtual memory exhausted</a>
<li><a href="#gas">GCC can not find GAS</a>
<li><a href="#rh5.0">egcs does not work on Red Hat 5.0</a>
<li><a href="#x86solaris">Unable to bootstrap on x86 Solaris2.{5,6}</a>
<li><a href="#windows">EGCS with Windows</a>
<li><a href="#os2">EGCS with OS/2</a>
<li><a href="#environ">cpp: Usage:... Error</a>
<li><a href="#kde">EGCS will not build KDE</a>
<li><a href="#friend">Friend Templates</a>
<li><a href="#libg++">Where to find libg++</a>
<li><a href="#autoconf/bison++">Why do I need autoconf & bison</a>
<li><a href="#aix">EGCS does not work on AIX 4.3</a>
<li><a href="#gdb">Problems debugging egcs code</a>
<li><a href="#conflicts">Conflicts when using cvs update </a>
</ol>
<hr>
<h2><a name="gcc-2-diff">How is egcs be different from gcc2?</a></h2>
<p>Six years ago, gcc version 1 had reached a point of stability. For the
targets it could support, it worked well. It had limitations inherent in
its design that would be difficult to resolve, so a major effort was made
and gcc version 2 was the result. When we had gcc2 in a useful state,
development efforts on gcc1 stopped and we all concentrated on making
gcc2 better than gcc1 could ever be. This is the kind of step forward
we want to make with egcs.
<p>In brief, the three biggest differences between egcs and gcc2 are:
<ul>
<li>More rexamination of basic architectual decisions of
gcc and an interest in adding new optimizations;
<li>working with the groups who have fractured out from gcc2 (like
the Linux folks, the Intel optimizations folks, Fortran folks)
including more front-ends; and finally
<li>An open development model (<a
href="#open-development">see below</a>) for the development process.
</ul>
<p>These three differences will work together to result in a more
useful compiler, a more stable compiler, a central compiler that works
for more people, a compiler that generates better code.
<p>There are a lot of exciting compiler optimizations that have come
out. We want them in gcc. There are a lot of front ends out there for
gcc for languages like Fortran or Pascal. We want them easily
installable by users. After six years of working on gcc2, we've come
to see problems and limitations in the way gcc is architected; it is
time to address these again.
<hr>
<h2><a name="open-development">What is an open development model?</a></h2>
<p>With egcs, we are going to try a bazaar style<a
href="#cathedral-vs-bazaar"><b>[1]</b></a> approach to its
development: We're going to be making snapshots publicly available
to anyone who wants to try them; we're going to welcome anyone to join
the development mailing list. All of the discussions on the
development mailing list are available via the web. We're going to be
making releases with a much higher frequency than they have been made
in the past: We're shooting for three by the end of 1997.
<p>In addition to weekly snapshots of the egcs development sources, we
are going to look at making the sources readable from a CVS server by
anyone. We want to make it so external maintainers of parts of egcs
are able to commit changes to their part of egcs directly into the
sources without going through an intermediary.
<p>There have been many potential gcc developers who were not able to
participate in gcc development in the past. We these people to help in
any way they can; we ultimately want gcc to be the best compiler in the
world.
<p>A compiler is a complicated piece of software, there will still be
strong central maintainers who will reject patches, who will demand
documentation of implementations, and who will keep the level of
quality as high as it is today. Code that could use wider testing may
be intergrated--code that is simply ill-conceived won't be.
<p>egcs is not the first piece of software to use this open development
process; FreeBSD, the Emacs lisp repository, and Linux are a few
examples of the bazaar style of development.
<p>With egcs, we will be adding new features and optimizations at a
rate that has not been done since the creation of gcc2; these additions
will inevitably have a temporarily destabilizing effect. With the help
of developers working together with this bazaar style development, the
resulting stability and quality levels will be better than we've had
before.
<blockquote>
<a name="cathedral-vs-bazaar"><b>[1]</b></a>
We've been discussing different development models a lot over the
past few months. The paper which started all of this introduced two
terms: A <b>cathedral</b> development model versus a <b>bazaar</b>
development model. The paper is written by Eric S. Raymond, it is
called ``<a
href="http://locke.ccil.org/~esr/writings/cathedral.html">The
Cathedral and the Bazaar</a>''. The paper is a useful starting point
for discussions.
</blockquote>
<hr>
<h2><a name="release-fork">Releases and Forking?</a></h2>
<p>Some folks have questioned whether or not making releases is consistent
with the goals of the egcs project and whether or not making releases is
a fork from gcc2.
<pre>
The egcs project has several goals, including:
* Experimenting with a new development model, release process and
release packaging,
* Using the new development model to accelerate development of new
features, optimizations, etc for future inclusion in gcc,
* Providing high quality releases to the public.
An egcs release is a copy of the egcs sources that the developers have
tested and are believed to be suitable for wider scale use and testing.
Making releases of stable, tested sources is both a goal and a means by
which we hope to achieve other goals of the egcs project.
The existence of a stable tested release allows egcs to be more thoroughly
used and tested by a wider audience than is capable of testing snapshots.
The expanded audience provides developers with critical feedback in a
timely manner, which is beneficial to GCC as a whole and is consistent with
the stated goals of egcs.
The gcc maintainers are encouraged to migrate tested fixes and new features
from egcs into gcc at their discretion. egcs maintainers are willing to
assist the gcc maintainers as time permits. egcs periodically merges in
changes from gcc into the egcs sources.
What will keep egcs from becoming a fork is cooperation between the
developers of gcc and egcs.
We don't see this situation as significantly different than other projects
that make releases based on some version of the gcc sources (Cygnus, g77,
etc). All the code is still available for inclusion in gcc at the discretion
of the gcc maintainers.
</pre>
<hr>
<h2><a name="libc-lock">bits/libc-lock.h: No such file or directory</a></h2>
<p>This entry should be obsolete, egcs should handle these beta versions of
glibc2 correctly.
<p>egcs includes a tightly integrated libio and libstdc++ implementation which
can cause problems on hosts which have libio integrated into their C library
(most notably Linux).
<p>We believe that we've solved the major technical problems for the most
common versions of libc found on Linux systems. However, some versions
of Linux use pre-release versions of glibc2, which egcs has trouble detecting
and correctly handling.
<p>If you're using one of these pre-release versions of glibc2, you may get
a message "bits/libc-lock.h: No such file or directory" when building egcs.
Unfortunately, to fix this problem you will need to update your C library to
glibc2.0.5c.
<hr>
<h2><a name="morelibc">`_IO_stdfile_0_lock' was not declared in this scope</a></h2>
<p>If you get this error, it means either egcs incorrectly guessed what version
of libc is installed on your linux system, or you incorrectly specified a
version of glibc when configuring egcs.
<p>If you did not provide a target name when configuring egcs, then you've
found a bug which needs to be reported. If you did provide a target name at
configure time, then you should reconfigure without specifying a target name.
<hr>
<h2><a name="fortran">Problems building the Fortran compiler</a></h2>
<p>The Fortran front end can not be built with most vendor compilers; it must
be built with gcc. As a result, you may get an error if you do not follow
the install instructions carefully.
<p>In particular, instead of using "make" to build egcs, you should use
"make bootstrap" if you are building a native compiler or "make cross"
if you are building a cross compiler.
<p>It has also been reported that the Fortran compiler can not be built
on Red Hat 4.X linux for the Alpha. Fixing this may require upgrading
binutils or to Red Hat 5.0; we'll provide more information as it becomes
available.
<hr>
<h2><a name="mips">Problems building on MIPS platforms</a></h2>
<p>egcs requires the use of GAS on all versions of Irix, except Irix 6 due
to limitations in older Irix assemblers.
<p> Either of these messages indicates that you are using the MIPS assembler
when instead you should be using GAS.
<pre>
as0: Error: ./libgcc2.c, line 1:Badly delimited numeric literal
.4byte $LECIE1-$LSCIE1
as0: Error: ./libgcc2.c, line 1:malformed statement
</pre>
<hr>
<pre>
as0: Error: /home/law/egcs_release/gcc/libgcc2.c, line 1:undefined symbol in expression
.word $LECIE1-$LSCIE1
</pre>
<p> For Irix 6, you should use the native assembler as GAS is not supported
on Irix 6.
<hr>
<h2> <a name="x86eh">Problems with exception handling on x86 platforms</a></h2>
<p>If you are using the GNU assembler (aka gas) on an x86 platform and
exception handling is not working correctly, then odds are you're using a
buggy assembler.
<p>We recommend binutils-2.8.1.0.15 or newer.
<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.20.tar.gz"> binutils-2.8.1.0.20 source</a>
<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.20.bin.tar.gz"> binutils-2.8.1.0.20 x86 binary for libc5</a>
<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.20.glibc.bin.tar.gz"> binutils-2.8.1.0.20 x86 binary for glibc2</a>
Or, you can try a
<a href="ftp://egcs.cygnus.com/pub/egcs/infrastructure/gas-970915.tar.gz"> binutils snapshot</a>; however, be aware that the binutils snapshot is untested
and may not work (or even build). Use it at your own risk.
<hr>
<h2> <a name="hpcompare">Bootstrap comparison failures on HPs</a></h2>
<p>If you bootstrap the compiler on hpux10 using the HP assembler instead of
gas, every file will fail the comparison test.
<p>The HP asembler inserts timestamps into object files it creates, causing
every file to be different. The location of the timestamp varies for each
object file, so there's no real way to work around this mis-feature.
<p>Odds are your compiler is fine, but there's no way to be certain.
<p>If you use GAS on HPs, then you will not run into this problem because
GAS never inserts timestamps into object files. For this and various other
reasons we highly recommend using GAS on HPs.
<hr>
<h2> <a name="makebugs">Bootstrap loops rebuilding cc1 over and over</a></h2>
<p>When building egcs, the build process loops rebuilding cc1 over and
over again. This happens on mips-sgi-irix5.2, and possibly other platforms.
<p>This is probably a bug somewhere in the egcs Makefile. Until we find and
fix this bug we recommend you use GNU make instead of vendor supplied make
programs.
<hr>
<h2> <a name="rpath">Dynamic linker is unable to find GCC libraries</a></h2>
<p>This problem manifests itself by programs not finding shared libraries
they depend on when the programs are started. Note this problem often manifests
itself with failures in the libio/libstdc++ tests after configuring with
--enable-shared and building egcs.
<p>GCC does not specify a runpath so that the dynamic linker can find dynamic
libraries at runtime.
<p>The short explaination is that if you always pass a -R option to the
linker, then your programs become dependent on directories which
may be NFS mounted, and programs may hang unnecessarily when an
NFS server goes down.
<p>The problem is not programs that do require the directories; those
programs are going to hang no matter what you do. The problem is
programs that do not require the directories.
<p>SunOS effectively always passed a -R option for every -L option;
this was a bad idea, and so it was removed for Solaris. We should
not recreate it.
<hr>
<h2> <a name="dejagnu">Unable to run the testsuite</a></h2>
<p>If you get a message about unable to find "standard.exp" when trying to
run the egcs testsuites, then your dejagnu is too old to run the egcs tests.
You will need to get a newer version of dejagnu; we've made a
<a href="ftp://egcs.cygnus.com/pub/egcs/infrastructure/dejagnu-971222.tar.gz">
dejagnu snapshot</a> available until a new version of dejagnu can be released.
<hr>
<h2> <a name="cross">How to build a cross compiler</a></h2>
<p> Building cross compilers is a rather complex undertaking because they
usually need additional software (cross assembler, cross linker, target
libraries, target include files, etc).
<p> We recommend reading the <a href="ftp://ftp.cygnus.com/pub/embedded/crossgcc/FAQ-0.8.1">
crossgcc FAQ</a> for information about building cross compilers.
<p> If you have all the pieces available, then `make cross' should build a
cross compiler. `make LANGUAGES="c c++" install'will install the cross
compiler.
<p> Note that if you're trying to build a cross compiler in a tree which
includes binutils-2.8 in addition to egcs, then you're going to need to
make a couple minor tweaks so that the cross assembler, linker and
nm utilities will be found.
<p>binutils-2.8 builds those files as gas.new, ld.new and nm.new; egcs gcc
looks for them using gas-new, ld-new and nm-new, so you may have to arrange
for any symlinks which point to &ltfile&gt.new to be changed to &ltfile&gt-new.
<hr>
<h2> <a name="snapshot">Snapshots, how, when, why</a></h2>
<p> We make snapshots of the egcs sources about once a week; there is no
predetermined schedule. These snapshots are intended to give everyone
access to work in progress. Any given snapshot may generate incorrect code
or even fail to build.
<p>If you plan on downloading and using snapshots, we highly recommend you
subscribe to the egcs mailing lists. See <a href="index.html#mailinglists">
mailing lists</a> on the main egcs page for instructions on how to subscribe.
<p>When using the diff files to update from older snapshots to newer snapshots,
make sure to use "-E" and "-p" arguments to patch so that empty files are
deleted and full pathnames are provided to patch. If your version of
patch does not support "-E", you'll need to get a newer version. Also note
that you may need autoconf, autoheader and various other programs if you use
diff files to update from one snapshot to the next.
<hr>
<h2> <a name="multiple">How to install both egcs and gcc2</a></h2>
<p>It may be desirable to install both egcs and gcc2 on the same system. This
can be done by using different prefix paths at configure time and a few
symlinks.
<p>Basically, configure the two compilers with different --prefix options,
then build and install each compiler. Assume you want "gcc" to be the egcs
compiler and available in /usr/local/bin; also assume that you want "gcc2"
to be the gcc2 compiler and also available in /usr/local/bin.
<p>The easiest way to do this is to configure egcs with --prefix=/usr/local/egcs
and gcc2 with --prefix=/usr/local/gcc2. Build and install both compilers.
Then make a symlink from /usr/local/bin/gcc to /usr/local/egcs/bin/gcc and
from /usr/local/bin/gcc2 to /usr/local/gcc2/bin/gcc. Create similar links
for the "g++", "c++" and "g77" compiler drivers.
<hr>
<h2> <a name="linuxkernel">Problems building Linux kernels</a></h2>
<p>If you installed a recent binutils/gas snapshot on your Linux system,
you may not be able to build the kernel because objdump does not understand
the "-k" switch. The solution for this problem is to remove /usr/bin/encaps.
<p>The reason you must remove /usr/bin/encaps is because it is an obsolete
program that was part of older binutils distributions; the Linux kernel's
Makefile looks for this program to decide if you have an old or a new
binutils. Problems occur if you installed a new binutils but haven't
removed encaps, because the Makefile thinks you have the old one. So zap
it; trust us, you won't miss it.
<p>You may get an internal compiler error compiling process.c in newer
versions of the Linux kernel on x86 machines. This is a bug in an asm
statement in process.c, not a bug in egcs. XXX How to fix?!?
<p>You may get errors with the X driver of the form
<pre>
_X11TransSocketUNIXConnect: Can't connect: errno = 111
</pre>
<p>It's a kernel bug. The function sys_iopl in arch/i386/kernel/ioport.c
does an illegal hack which used to work but is now broken since GCC optimizes
more aggressively . The newer 2.1.x kernels already have a fix which should
also work in 2.0.32.
<hr>
<h2> <a name="memexhausted">Virtual memory exhausted error</a></h2>
<p> This error means your system ran out of memory; this can happen for large
files, particularly when optimizing. If you're getting this error you should
consider trying to simplify your files or reducing the optimization level.
<p>Note that using -pedantic or -Wreturn-type can cause an explosion in the
amount of memory needed for template-heavy C++ code, such as code that uses
STL. Also note that -Wall includes -Wreturn-type, so if you use -Wall you
will need to specify -Wno-return-type to turn it off.
<hr>
<h2> <a name="gas">GCC can not find GAS</a></h2>
<p>Some configurations like irix4, irix5, hpux* require the use of the GNU
assembler intead of the system assembler. To ensure that egcs finds the GNU
assembler, you should configure the GNU assembler with the same --prefix
option as you used for egcs. Then build & install the GNU assembler. After
the GNU assembler has been installed, proceed with building egcs.
<hr>
<h2> <a name="rh5.0">egcs does not work on Red Hat 5.0</a></h2>
<p> This entry is obsolete with the release of egcs-1.0.1 which should
handle Red Hat 5.0 correctly.
<p> egcs-1.0 does not currently work with Red Hat 5.0 on some platforms; we'll
update this entry with more information as it becomes available.
<p> You may want to try this
<a href="http://www.cygnus.com/ml/egcs/1997-Dec/0594.html"> proposed patch</a>
for Red Hat 5.0. Please let us know if you use this patch and whether or
not it works.
<hr>
<h2> <a name="x86solaris">Unable to bootstrap on x86 Solaris 2.{5,6}</a></h2>
<p> This entry is obsolete with the release of egcs-1.0.1 which should
handle x86 Solaris systems correctly.
<p>This patch should fix the problem
<pre>
Index: t-sol2
===================================================================
RCS file: /cvs/cvsfiles/egcs/gcc/config/i386/t-sol2,v
retrieving revision 1.2
diff -c -3 -p -r1.2 t-sol2
*** t-sol2 1997/09/04 23:54:04 1.2
--- t-sol2 1997/12/04 07:19:07
*************** crtn.o: $(srcdir)/config/i386/sol2-cn.as
*** 31,36 ****
# to produce a shared library, but since we don't know ahead of time when
# we will be doing that, we just always use -fPIC when compiling the
# routines in crtstuff.c.
! CRTSTUFF_T_CFLAGS = -fPIC
TARGET_LIBGCC2_CFLAGS = -fPIC
--- 31,40 ----
# to produce a shared library, but since we don't know ahead of time when
# we will be doing that, we just always use -fPIC when compiling the
# routines in crtstuff.c.
+ #
+ # We must also enable optimization to avoid having any code appear after
+ # the call & alignment statement, but before we switch back to the
+ # .text section.
! CRTSTUFF_T_CFLAGS = -fPIC -O2
TARGET_LIBGCC2_CFLAGS = -fPIC
</pre>
<hr>
<h2> <a name="windows">EGCS with Windows</a></h2>
<p>egcs does not currently support windows, either natively or with the
cygwin32 dll. However Mumit Khan has been working on supporting Windows
with egcs. You should check out his site if you're interested in Windows
support.
<a href="http://www.xraylith.wisc.edu/~khan/software/gnu-win32">GNU Win32 related projects</a>
<hr>
<h2> <a name="os2">EGCS with OS/2</a></h2>
<p>egcs does not currently support OS/2. However, Andrew Zabolotny has been
working on a generic os/2 port with pgcc. The current code code can be found
at <a href="http://www.goof.com/pcg/os2">http://www.goof.com/pcg/os2</a>.
<hr>
<h2> <a name="environ">cpp: Usage:... Error</a></h2>
<p>If you get an error like this when building egcs (particularly when building
__mulsi3), then you likely have a problem with your environment variables.
<pre>
cpp: Usage: /usr/lib/gcc-lib/i586-unknown-linux-gnulibc1/2.7.2.3/cpp
[switches] input output
</pre>
<p>First look for an explicit '.' in either LIBRARY_PATH or GCC_EXEC_PREFIX
from your environment. If you do not find an explicit '.', look for
an empty pathname in those variables. Note that ':' at either the start
or end of these variables is an implicit '.' and will cause problems.
<hr>
<h2> <a name="kde">EGCS will not build KDE</a></h2>
<p> Previous versions of g++ accepted (as a GNU extension)
constructor-arguments for the objects in an array of objects
dynamically allocated with new. Here's an example of this construct:
<pre>
struct S { S(int); }
void f() { new S[3](6); }
</pre>
<p>However, this construct is not allowed by the ANSI/ISO Standard, and
is no longer accepted by g++.
<p> KDE uses such constructs and therefore will not build with egcs; note
patches are available to fix KDE.
<hr>
<h2> <a name="friend">Friend Templates<a></h2>
<p>In order to make a specialization of a template function a friend of a
(possibly template) class, you must explicitly state that the friend
function is a template, by appending angle brackets to its name, and
this template function must have been declared already. An error in
the last public comment draft of the ANSI/ISO C++ Standard has led
people to believe that was not necessary, but it is, and it was fixed
in the final version of the Standard.
<hr>
<h2> <a name="libg++">Where to find libg++<a></h2>
<p>Many folks have been asking where to find libg++ for egcs. First we
should point out that few programs actually need libg++; most only need
libstdc++/libio which are included in the egcs distribution.
<p>If you do need libg++ you can get a libg++ snapshot which works with egcs
from <a href="ftp://ftp.yggdrasil.com/private/hjl/libg++-2.8.1-980119.tar.gz">
ftp://ftp.yggdrasil.com/private/hjl/libg++-2.8.1-980119.tar.gz</a>
<hr>
<h2> <a name="autoconf/bison++">Why do I need autoconf/bison<a></h2>
<p>If you're using diffs up dated from one snapshot to the next, or
if you're using the CVS repository, you may need autoconf, bison, or
possibly other tools to rebuild egcs.
<p>This is necessary because neither diff nor cvs keep timestamps
correct. So it is possible for "make" to think a generated file is
out of date.
<p>If you do not have autoconf, bison, etc, then you can issue the
following commands to touch all the generated files.
<pre>
touch `find egcs -name configure -print`
touch egcs/gcc/c-parse.y
touch egcs/gcc/objc/objc-parse.y
touch egcs/gcc/{cstamp-h.in,c-gperf.h,c-parse.c,c-parse.h,cexp.c}
touch egcs/gcc/cp/{parse.c,parse.h}
touch egcs/gcc/objc/objc-parse.c
</pre>
<hr>
<h2> <a name="aix">EGCS does not work on AIX 4.3<a></h2>
<p>EGCS does not currently support AIX4.3; however, if you want to try
and make it work with AIX 4.3 we highly recommend you get the
fix for APAR IX74254 (64BIT DISASSEMBLED OUPUT FROM COMPILER FAILS TO
ASSEMBLE/BIND) which is available from IBM Customer Support and IBM's
service.boulder.ibm.com website.
<hr>
<h2><a name="gdb">Problems debugging egcs code</a></h2>
<p>On some systems egcs will produce dwarf debug records by default; however
the current gdb-4.16 release may not be able to read such debug records.
<p>You can either use the argument "-gstabs" instead of "-g" or pick up
the current beta copy of gdb-4.17 to work around the problem.
<hr>
<h2><a name="conflicts">Conflicts when using cvs update</a></h2>
<p>It is not uncommon to get cvs conflict messages for some generated files
when updating your local sources from the CVS repository. Typically such
conflicts occur with bison or autoconf generated files.
<p>As long as you haven't been making modifications to the generated files
or the generator files, it is safe to delete the offending file, then run
cvs update again to get a new copy.
<hr>
<p><a href="index.html">Return to the egcs home page</a>
<p><i>Last modified: March 04, 1998</i>
<!--#include virtual="/glimpsebox.html"-->
</body>
</html>

30
INSTALL/finalinstall.html Normal file
View File

@@ -0,0 +1,30 @@
<html>
<head>
<title>Final install egcs-1.0.2 </title>
</head>
<body bgcolor="white">
<h1 align="center">Final install egcs-1.0.2</h1>
<p>Now that egcs has been built and tested, you can install it with
`cd <i>objdir</i>; make install' for a native compiler or
`cd <i>objdir</i>; make install LANGUAGES="c c++"' for a cross compiler
(note installing cross compilers will be easier in the next release!).
<p>That step completes the installation of egcs; user level binaries can
be found in <i>prefix</i>/bin where <i>prefix</i> is the value you specified
with the --prefix to configure (or /usr/local by default).
<p>If you don't mind, please send egcs@cygnus.com a short mail message
indicating that you successfully built and installed egcs. Include
the output from running <i>srcdir</i>/config.guess.
<p>If you find a bug in egcs, please report it to
<a href="mailto:egcs-bugs@cygnus.com">egcs-bugs@cygnus.com</a>.
<p>
<hr>
<i>Last modified on Jan 2, 1998.</i>
</body>
</html>

47
INSTALL/index.html Normal file
View File

@@ -0,0 +1,47 @@
<html>
<head>
<title>Installing egcs-1.0.2 </title>
</head>
<body bgcolor="white">
<h1 align="center">Installing egcs-1.0.2</h1>
<p>This document describes the generic installation procedure for egcs as
well as detailing some target specific installation instructions for egcs.
<p>egcs includes several components that previously were separate distributions
with their own installation instructions. This document supercedes all
package specific installation instructions. We provide the component specific
installation information in the source distribution for historical reference
purposes only.
<p>We recommend you read the entire generic installation instructions as
well as any target specific installation instructions before you proceed
to configure, build, test and install egcs.
<p>If something goes wrong in the configure, build, test or install
procedures, first double check that you followed the generic and target
specific installation instructions carefully. Then check the
<a href="faq.html">FAQ</a> to see if your problem is covered before you file
a bug report.
<p>The installation procedure is broken into four steps.
<ul>
<li> <a href="configure.html">configure</a>
<li> <a href="build.html">build</a>
<li> <a href="test.html">test</a> (optional)
<li> <a href="finalinstall.html">install</a>
</ul>
<p>Before starting the build/install procedure <b>please</b> browse the
<a href="specific.html">host/target specific installation notes</a>.
<hr>
<a href="../index.html">Return to the egcs home page</a>
</body>
</html>
<hr>
<i>Last modified on Jan 2, 1998.</i>

130
INSTALL/specific.html Normal file
View File

@@ -0,0 +1,130 @@
<html>
<head>
<title>Host/Target specific installation notes for egcs-1.0.2 </title>
</head>
<body bgcolor="white">
<h1 align="center">Host/Target specific installation notes for egcs-1.0.2</h1>
<p><b>alpha*-*-*</b><br>
No specific installation needs/instructions.
<p><b>i?86-*-linux*</b><br>
You will need binutils-2.8.1.0.15 or newer for exception handling to work.
<p><b>i?86-*-sco3.2v5*</b><br>
The SCO assembler is currently required. The GNU assembler is not up
to the task of switching between ELF and COFF at runtime.
<br>Unlike various prereleases of GCC, that used '-belf' and defaulted to
COFF, you must now use the '-melf' and '-mcoff' flags to toggle between
the two object file formats. ELF is now the default.
<br>Look in gcc/config/i386/sco5.h (search for "messy") for additional
OpenServer-specific flags.
<br>Systems based on OpenServer before 5.0.4 (<code>uname -X</code> will
tell you what you're running) require TLS597 from ftp.sco.com/TLS for
C++ constructors and destructors to work right.
<p><b>i?86-pc-solaris*</b><br>
You'll need a patch to fix an egcs bug on this platform.
<a href="http://www-egcs.cygnus.com/faq.html#x86solaris"> x86 solaris patch</a>
<p><b>hppa*-hp-hpux*</b><br>
We <b>highly</b> recommend using gas/binutils-2.8 on all hppa platforms; you
may encounter a variety of problems when using the HP assembler.
<p><b>hppa*-hp-hpux9</b><br>
The HP assembler has major problems on this platform. We've tried to work
around the worst of the problems. However, those workarounds may be causing
linker crashes in some circumstances; the workarounds also probably prevent
shared libraries from working. Use the GNU assembler to avoid these problems.
<br>The configuration scripts for egcs will also trigger a bug in the hpux9
shell. To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to
/bin/ksh in your environment.
<p><b>hppa*-hp-hpux10</b><br>
For hpux10.20, we <b>highly</b> recommend you pick up the latest sed
patch from HP. HP has two sites which provide patches free of charge.
<br><a href="http://us-support.external.hp.com">US, Canada, Asia-Pacific, and
Latin-America</a>
<br><a href="http://europe-support.external.hp.com">Europe</a>
<p>Retrieve patch PHCO_12862.
<p>The HP assembler on these systems is much better than the hpux9 assembler,
but still has some problems. Most notably the assembler inserts timestamps
into each object file it creates, causing the 3-stage comparison test to fail
during a "make bootstrap". You should be able to continue by saying "make all"
after getting the failure from "make bootstrap".
<p><b>m68k-*-nextstep*</b><br>
You absolutely must use GNU sed and GNU make on this platform.
<p>If you try to build the integrated C++ & C++ runtime libraries on this system
you will run into trouble with include files. The way to get around this is
to use the following sequence. Note you must have write permission to
<i>prefix</i> for this sequence to work.
<p>cd <i>objdir</i><br>
make all-texinfo all-bison all-byacc all-binutils all-gas all-ld<br>
cd gcc<br>
make bootstrap<br>
make install-headers-tar<br>
cd ..<br>
make bootstrap3<br>
<p><b>m68k-sun-sunos4.1.1</b><br>
It is reported that you may need the GNU assembler on this platform.
<p><b>mips*-sgi-irix4</b><br>
<b>mips*-sgi-irix5</b><br>
You must use GAS on these platforms, the native assembler can not handle the
code for exception handling support on this platform.
<p>These systems don't have ranlib, which various components in egcs need; you
should be able to avoid this problem by installing GNU binutils, which includes
a functional ranlib for this system.
<p>You may get the following warning on irix4 platforms, it can be safely
ignored.
<pre>
warning: foo.o does not have gp tables for all its sections.
</pre>
<p><b>mips*-sgi-irix6</b><br>
You must not use GAS on irix6 platforms; doing so will only cause problems.
<p>These systems don't have ranlib, which various components in egcs need; you
should be able to avoid this problem by making a dummy script called ranlib
which just exits with zero status and placing it in your path.
<p><b>rs6000-ibm-aix*</b><br>
<b>powerpc-ibm-aix*</b><br>
At least one person as reported problems with older versions of gnu-make on
this platform. make-3.76 is reported to work correctly.
<p><b>powerpc-*-linux-gnu*</b><br>
You will need
<a href="ftp://ftp.yggdrasil.com/private/hjl">binutils-2.8.1.0.20</a> for
a working egcs. It is strongly recommended to recompile binutils with egcs
if you initially built it with gcc-2.7.2.*.
<p><b>sparc-unkonwn-linux-gnulibc1</b><br>
It has been reported that you might need binutils-2.8.1.0.20 for this
platform too.
<a href="ftp://ftp.yggdrasil.com/private/hjl">binutils-2.8.1.0.20</a>
<p>
exception handling
<p>XXX Linux stuff
-k encaps stuff
<hr>
<i>Last modified on February 7, 1998.</i>
<!--#include virtual="/glimpsebox.html"-->
</body>
</html>

38
INSTALL/test.html Normal file
View File

@@ -0,0 +1,38 @@
<html>
<head>
<title>Testing egcs-1.0.2 </title>
</head>
<body bgcolor="white">
<h1 align="center">Testing egcs-1.0.2</h1>
<p>Before you install egcs, you might wish to run the egcs testsuite; this
step is optional and may require you to download additional software.
<p>First, you must have downloaded the egcs testsuites; the full distribution
contains testsuites. If you downloaded the "core" compiler plus any front
ends, then you do not have the testsuites. You can download the testsuites
from the same site where you downloaded the core distribution and language
front ends.
<p>Second, you must have a new version of dejagnu on your system; dejagnu-1.3
will not work. We have made a
<a href="ftp://egcs.cygnus.com/pub/egcs/infrastructure/dejagnu-971222.tar.gz">
dejagnu snapshot</a> available in egcs.cygnus.com:/pub/egcs/infrastructure until
a new version of dejagnu can be released.
<p>Assuming you've got the testsuites unpacked and have installed an appropriate
dejagnu, you can run the testsuite with "cd <i>objdir</i>; make -k check".
This may take a long time. Go get some lunch.
<p>The testing process will try to test as many components in the egcs
distrubution as possible, including the C, C++ and Fortran compiler as
well as the C++ runtime libraries.
<p> How to interpret test results TBD.
<hr>
<i>Last modified on Jan 2, 1998.</i>
<!--#include virtual="/glimpsebox.html"-->
</body>
</html>

1641
Makefile.in Normal file

File diff suppressed because it is too large Load Diff

47
README Normal file
View File

@@ -0,0 +1,47 @@
README for GNU development tools
This directory contains various GNU compilers, assemblers, linkers,
debuggers, etc., plus their support routines, definitions, and documentation.
If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README; if with a libg++ release,
see libg++/README, etc. That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.
It is now possible to automatically configure and build a variety of
tools with one command. To build all of the tools contained herein,
run the ``configure'' script here, e.g.:
./configure
make
To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
make install
(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''. You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)
If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make. For example (assuming sh/bash/ksh):
CC=gcc ./configure
make
A similar example using csh:
setenv CC gcc
./configure
make
Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc. See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.
REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.

612
config-ml.in Normal file
View File

@@ -0,0 +1,612 @@
# Configure fragment invoked in the post-target section for subdirs
# wanting multilib support.
#
# It is advisable to support a few --enable/--disable options to let the
# user select which libraries s/he really wants.
#
# Subdirectories wishing to use multilib should put the following lines
# in the "post-target" section of configure.in.
#
# if [ "${srcdir}" = "." ] ; then
# if [ "${with_target_subdir}" != "." ] ; then
# . ${with_multisrctop}../../config-ml.in
# else
# . ${with_multisrctop}../config-ml.in
# fi
# else
# . ${srcdir}/../config-ml.in
# fi
#
# See librx/configure.in in the libg++ distribution for an example of how
# to handle autoconf'd libraries.
#
# Things are complicated because 6 separate cases must be handled:
# 2 (native, cross) x 3 (absolute-path, relative-not-dot, dot) = 6.
#
# srcdir=. is special. It must handle make programs that don't handle VPATH.
# To implement this, a symlink tree is built for each library and for each
# multilib subdir.
#
# The build tree is layed out as
#
# ./
# libg++
# newlib
# m68020/
# libg++
# newlib
# m68881/
# libg++
# newlib
#
# The nice feature about this arrangement is that inter-library references
# in the build tree work without having to care where you are. Note that
# inter-library references also work in the source tree because symlink trees
# are built when srcdir=.
#
# Unfortunately, trying to access the libraries in the build tree requires
# the user to manually choose which library to use as GCC won't be able to
# find the right one. This is viewed as the lesser of two evils.
#
# Configure variables:
# ${with_target_subdir} = "." for native, or ${target_alias} for cross.
# Set by top level Makefile.
# ${with_multisrctop} = how many levels of multilibs there are in the source
# tree. It exists to handle the case of configuring in the source tree:
# ${srcdir} is not constant.
# ${with_multisubdir} = name of multilib subdirectory (eg: m68020/m68881).
#
# Makefile variables:
# MULTISRCTOP = number of multilib levels in source tree (+1 if cross)
# (FIXME: note that this is different than ${with_multisrctop}. Check out.).
# MULTIBUILDTOP = number of multilib levels in build tree
# MULTIDIRS = list of multilib subdirs (eg: m68000 m68020 ...)
# (only defined in each library's main Makefile).
# MULTISUBDIR = installed subdirectory name with leading '/' (eg: /m68000)
# (only defined in each multilib subdir).
# FIXME: Multilib is currently disabled by default for everything other than
# newlib. It is up to each target to turn on multilib support for the other
# libraries as desired.
# We have to handle being invoked by both Cygnus configure and Autoconf.
#
# Cygnus configure incoming variables:
# srcdir, subdir, target, arguments
#
# Autoconf incoming variables:
# srcdir, target, ac_configure_args
#
# We *could* figure srcdir and target out, but we'd have to do work that
# our caller has already done to figure them out and requiring these two
# seems reasonable.
if [ -n "${ac_configure_args}" ]; then
Makefile=${ac_file-Makefile}
ml_config_shell=${CONFIG_SHELL-/bin/sh}
ml_arguments="${ac_configure_args}"
ml_realsrcdir=${srcdir}
else
Makefile=${Makefile-Makefile}
ml_config_shell=${config_shell-/bin/sh}
ml_arguments="${arguments}"
if [ -n "${subdir}" -a "${subdir}" != "." ] ; then
ml_realsrcdir=${srcdir}/${subdir}
else
ml_realsrcdir=${srcdir}
fi
fi
# Scan all the arguments and set all the ones we need.
for option in ${ml_arguments}
do
case $option in
--*) ;;
-*) option=-$option ;;
esac
case $option in
--*=*)
optarg=`echo $option | sed -e 's/^[^=]*=//'`
;;
esac
case $option in
--disable-*)
enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'`
eval $enableopt=no
;;
--enable-*)
case "$option" in
*=*) ;;
*) optarg=yes ;;
esac
enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'`
eval $enableopt="$optarg"
;;
--norecursion | --no*)
ml_norecursion=yes
;;
--verbose | --v | --verb*)
ml_verbose=--verbose
;;
--with-*)
case "$option" in
*=*) ;;
*) optarg=yes ;;
esac
withopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'`
eval $withopt="$optarg"
;;
--without-*)
withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'`
eval $withopt=no
;;
esac
done
# Only do this if --enable-multilib.
if [ "${enable_multilib}" = yes ]; then
# Compute whether this is the library's top level directory
# (ie: not a multilib subdirectory, and not a subdirectory like libg++/src).
# ${with_multisubdir} tells us we're in the right branch, but we could be
# in a subdir of that.
# ??? The previous version could void this test by separating the process into
# two files: one that only the library's toplevel configure.in ran (to
# configure the multilib subdirs), and another that all configure.in's ran to
# update the Makefile. It seemed reasonable to collapse all multilib support
# into one file, but it does leave us with having to perform this test.
ml_toplevel_p=no
if [ -z "${with_multisubdir}" ]; then
if [ "${srcdir}" = "." ]; then
# Use ${ml_realsrcdir} instead of ${srcdir} here to account for ${subdir}.
# ${with_target_subdir} = "." for native, otherwise target alias.
if [ "${with_target_subdir}" = "." ]; then
if [ -f ${ml_realsrcdir}/../config-ml.in ]; then
ml_toplevel_p=yes
fi
else
if [ -f ${ml_realsrcdir}/../../config-ml.in ]; then
ml_toplevel_p=yes
fi
fi
else
# Use ${ml_realsrcdir} instead of ${srcdir} here to account for ${subdir}.
if [ -f ${ml_realsrcdir}/../config-ml.in ]; then
ml_toplevel_p=yes
fi
fi
fi
# If this is the library's top level directory, set multidirs to the
# multilib subdirs to support. This lives at the top because we need
# `multidirs' set right away.
if [ "${ml_toplevel_p}" = yes ]; then
multidirs=
for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do
dir=`echo $i | sed -e 's/;.*$//'`
if [ "${dir}" = "." ]; then
true
else
if [ -z "${multidirs}" ]; then
multidirs="${dir}"
else
multidirs="${multidirs} ${dir}"
fi
fi
done
case "${target}" in
arc-*-elf*)
if [ x$enable_biendian != xyes ]
then
old_multidirs=${multidirs}
multidirs=""
for x in ${old_multidirs}; do
case "${x}" in
*be*) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
;;
m68*-*-*)
if [ x$enable_softfloat = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*soft-float* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_m68881 = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*m68881* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_m68000 = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*m68000* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_m68020 = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*m68020* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
;;
mips*-*-*)
if [ x$enable_single_float = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*single* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_biendian = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*el* ) : ;;
*eb* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_softfloat = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*soft-float* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
;;
powerpc*-*-* | rs6000*-*-*)
if [ x$enable_softfloat = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*soft-float* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_powercpu = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
power | */power | */power/* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_powerpccpu = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*powerpc* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_powerpcos = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*mcall-linux* | *mcall-solaris* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_biendian = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*mlittle* | *mbig* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_sysv = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*mcall-sysv* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
if [ x$enable_aix = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
*mcall-aix* ) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
;;
esac
# Remove extraneous blanks from multidirs.
# Tests like `if [ -n "$multidirs" ]' require it.
multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'`
# Add code to library's top level makefile to handle building the multilib
# subdirs.
cat > Multi.tem <<\EOF
# FIXME: There should be an @-sign in front of the `if'.
# Leave out until this is tested a bit more.
multi-do:
if [ -z "$(MULTIDIRS)" ]; then \
true; \
else \
rootpre=`pwd`/; export rootpre; \
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
lib=`echo $${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; \
compiler="$(CC)"; \
for i in `$${compiler} --print-multi-lib 2>/dev/null`; do \
dir=`echo $$i | sed -e 's/;.*$$//'`; \
if [ "$${dir}" = "." ]; then \
true; \
else \
if [ -d ../$${dir}/$${lib} ]; then \
flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \
CFLAGS="$(CFLAGS) $${flags}" \
CXXFLAGS="$(CXXFLAGS) $${flags}" \
LIBCFLAGS="$(LIBCFLAGS) $${flags}" \
LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \
$(DO)); then \
true; \
else \
exit 1; \
fi; \
else true; \
fi; \
fi; \
done; \
fi
# FIXME: There should be an @-sign in front of the `if'.
# Leave out until this is tested a bit more.
multi-clean:
if [ -z "$(MULTIDIRS)" ]; then \
true; \
else \
lib=`pwd | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \
for dir in Makefile $(MULTIDIRS); do \
if [ -f ../$${dir}/$${lib}/Makefile ]; then \
if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) $(DO)); \
then true; \
else exit 1; \
fi; \
else true; \
fi; \
done; \
fi
EOF
cat ${Makefile} Multi.tem > Makefile.tem
rm -f ${Makefile} Multi.tem
mv Makefile.tem ${Makefile}
fi # ${ml_toplevel_p} = yes
if [ "${ml_verbose}" = --verbose ]; then
echo "Adding multilib support to Makefile in ${ml_realsrcdir}"
if [ "${ml_toplevel_p}" = yes ]; then
echo "multidirs=${multidirs}"
fi
echo "with_multisubdir=${with_multisubdir}"
fi
if [ "${srcdir}" = "." ]; then
if [ "${with_target_subdir}" != "." ]; then
ml_srcdotdot="../"
else
ml_srcdotdot=""
fi
else
ml_srcdotdot=""
fi
if [ -z "${with_multisubdir}" ]; then
ml_subdir=
ml_builddotdot=
: # ml_srcdotdot= # already set
else
ml_subdir="/${with_multisubdir}"
# The '[^/][^/]*' appears that way to work around a SunOS sed bug.
ml_builddotdot=`echo ${with_multisubdir} | sed -e 's:[^/][^/]*:..:g'`/
if [ "$srcdir" = "." ]; then
ml_srcdotdot=${ml_srcdotdot}${ml_builddotdot}
else
: # ml_srcdotdot= # already set
fi
fi
if [ "${ml_toplevel_p}" = yes ]; then
ml_do='$(MAKE)'
ml_clean='$(MAKE)'
else
ml_do=true
ml_clean=true
fi
# TOP is used by newlib and should not be used elsewhere for this purpose.
# MULTI{SRC,BUILD}TOP are the proper ones to use. MULTISRCTOP is empty
# when srcdir != builddir. MULTIBUILDTOP is always some number of ../'s.
# FIXME: newlib needs to be updated to use MULTI{SRC,BUILD}TOP so we can
# delete TOP. Newlib may wish to continue to use TOP for its own purposes
# of course.
# MULTIDIRS is non-empty for the cpu top level Makefile (eg: newlib/Makefile)
# and lists the subdirectories to recurse into.
# MULTISUBDIR is non-empty in each cpu subdirectory's Makefile
# (eg: newlib/h8300h/Makefile) and is the installed subdirectory name with
# a leading '/'.
# MULTIDO is used for targets like all, install, and check where
# $(FLAGS_TO_PASS) augmented with the subdir's compiler option is needed.
# MULTICLEAN is used for the *clean targets.
#
# ??? It is possible to merge MULTIDO and MULTICLEAN into one. They are
# currently kept separate because we don't want the *clean targets to require
# the existence of the compiler (which MULTIDO currently requires) and
# therefore we'd have to record the directory options as well as names
# (currently we just record the names and use --print-multi-lib to get the
# options).
sed -e "s:^TOP[ ]*=[ ]*\([./]*\)[ ]*$:TOP = ${ml_builddotdot}\1:" \
-e "s:^MULTISRCTOP[ ]*=.*$:MULTISRCTOP = ${ml_srcdotdot}:" \
-e "s:^MULTIBUILDTOP[ ]*=.*$:MULTIBUILDTOP = ${ml_builddotdot}:" \
-e "s:^MULTIDIRS[ ]*=.*$:MULTIDIRS = ${multidirs}:" \
-e "s:^MULTISUBDIR[ ]*=.*$:MULTISUBDIR = ${ml_subdir}:" \
-e "s:^MULTIDO[ ]*=.*$:MULTIDO = $ml_do:" \
-e "s:^MULTICLEAN[ ]*=.*$:MULTICLEAN = $ml_clean:" \
${Makefile} > Makefile.tem
rm -f ${Makefile}
mv Makefile.tem ${Makefile}
# If this is the library's top level, configure each multilib subdir.
# This is done at the end because this is the loop that runs configure
# in each multilib subdir and it seemed reasonable to finish updating the
# Makefile before going on to configure the subdirs.
if [ "${ml_toplevel_p}" = yes ]; then
# We must freshly configure each subdirectory. This bit of code is
# actually partially stolen from the main configure script. FIXME.
if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then
if [ "${ml_verbose}" = --verbose ]; then
echo "Running configure in multilib subdirs ${multidirs}"
echo "pwd: `pwd`"
fi
ml_origdir=`pwd`
ml_libdir=`echo $ml_origdir | sed -e 's,^.*/,,'`
# cd to top-level-build-dir/${with_target_subdir}
cd ..
for ml_dir in ${multidirs}; do
if [ "${ml_verbose}" = --verbose ]; then
echo "Running configure in multilib subdir ${ml_dir}"
echo "pwd: `pwd`"
fi
if [ -d ${ml_dir} ]; then true; else mkdir ${ml_dir}; fi
if [ -d ${ml_dir}/${ml_libdir} ]; then true; else mkdir ${ml_dir}/${ml_libdir}; fi
# Eg: if ${ml_dir} = m68000/m68881, dotdot = ../../
dotdot=../`echo ${ml_dir} | sed -e 's|[^/]||g' -e 's|/|../|g'`
case ${srcdir} in
".")
echo Building symlink tree in `pwd`/${ml_dir}/${ml_libdir}
if [ "${with_target_subdir}" != "." ]; then
ml_unsubdir="../"
else
ml_unsubdir=""
fi
(cd ${ml_dir}/${ml_libdir};
../${dotdot}${ml_unsubdir}symlink-tree ../${dotdot}${ml_unsubdir}${ml_libdir} "")
ml_newsrcdir="."
ml_srcdiroption=
multisrctop=${dotdot}
;;
*)
case "${srcdir}" in
/*) # absolute path
ml_newsrcdir=${srcdir}
;;
*) # otherwise relative
ml_newsrcdir=${dotdot}${srcdir}
;;
esac
ml_srcdiroption="-srcdir=${ml_newsrcdir}"
multisrctop=
;;
esac
case "${progname}" in
/*) ml_recprog=${progname} ;;
*) ml_recprog=${dotdot}${progname} ;;
esac
# FIXME: POPDIR=${PWD=`pwd`} doesn't work here.
ML_POPDIR=`pwd`
cd ${ml_dir}/${ml_libdir}
if [ -f ${ml_newsrcdir}/configure ]; then
ml_recprog=${ml_newsrcdir}/configure
fi
if eval ${ml_config_shell} ${ml_recprog} \
--with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \
${ml_arguments} ${ml_srcdiroption} ; then
true
else
exit 1
fi
cd ${ML_POPDIR}
done
cd ${ml_origdir}
fi
fi # ${ml_toplevel_p} = yes
fi # ${enable_multilib} = yes

912
config.guess vendored Executable file
View File

@@ -0,0 +1,912 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
#
# 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 of the License, or
# (at your option) any later version.
#
# This program 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; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Written by Per Bothner <bothner@cygnus.com>.
# The master version of this file is at the FSF in /home/gd/gnu/lib.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
# The plan is that this can be called by configure scripts if you
# don't specify an explicit system type (host/target name).
#
# Only a few systems have been added to this list; please add others
# (but try to keep the structure clean).
#
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 8/24/94.)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
alpha:OSF1:*:*)
if test $UNAME_RELEASE = "V4.0"; then
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
fi
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
cat <<EOF >dummy.s
.globl main
.ent main
main:
.frame \$30,0,\$26,0
.prologue 0
.long 0x47e03d80 # implver $0
lda \$2,259
.long 0x47e20c21 # amask $2,$1
srl \$1,8,\$2
sll \$2,2,\$2
sll \$0,3,\$0
addl \$1,\$0,\$0
addl \$2,\$0,\$0
ret \$31,(\$26),1
.end main
EOF
${CC-cc} dummy.s -o dummy 2>/dev/null
if test "$?" = 0 ; then
./dummy
case "$?" in
7)
UNAME_MACHINE="alpha"
;;
15)
UNAME_MACHINE="alphaev5"
;;
14)
UNAME_MACHINE="alphaev56"
;;
10)
UNAME_MACHINE="alphapca56"
;;
16)
UNAME_MACHINE="alphaev6"
;;
esac
fi
rm -f dummy.s dummy
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
exit 0 ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
exit 0 ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-cbm-sysv4
exit 0;;
amiga:NetBSD:*:*)
echo m68k-cbm-netbsd${UNAME_RELEASE}
exit 0 ;;
amiga:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arc64:OpenBSD:*:*)
echo mips64el-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
hkmips:OpenBSD:*:*)
echo mips-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
pmax:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sgi:OpenBSD:*:*)
echo mips-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
wgrisc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;;
arm32:NetBSD:*:*)
echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
SR2?01:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit 0;;
Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
exit 0 ;;
NILE:*:*:dcosx)
echo pyramid-pyramid-svr4
exit 0 ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
i86pc:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
exit 0 ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit 0 ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
;;
sun4)
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
exit 0 ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
exit 0 ;;
atari*:NetBSD:*:*)
echo m68k-atari-netbsd${UNAME_RELEASE}
exit 0 ;;
atari*:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sun3*:NetBSD:*:*)
echo m68k-sun-netbsd${UNAME_RELEASE}
exit 0 ;;
sun3*:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mac68k:NetBSD:*:*)
echo m68k-apple-netbsd${UNAME_RELEASE}
exit 0 ;;
mac68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvme68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvme88k:OpenBSD:*:*)
echo m88k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit 0 ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit 0 ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
2020:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
exit 0 ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
sed 's/^ //' << EOF >dummy.c
int main (argc, argv) int argc; char **argv; {
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
${CC-cc} dummy.c -o dummy \
&& ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
&& rm dummy.c dummy && exit 0
rm -f dummy.c dummy
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit 0 ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
exit 0 ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
exit 0 ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
exit 0 ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
-o ${TARGET_BINARY_INTERFACE}x = x ] ; then
echo m88k-dg-dgux${UNAME_RELEASE}
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else echo i586-dg-dgux${UNAME_RELEASE}
fi
exit 0 ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit 0 ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
exit 0 ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
exit 0 ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
exit 0 ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
exit 0 ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i?86:AIX:*:*)
echo i386-ibm-aix
exit 0 ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
sed 's/^ //' << EOF >dummy.c
#include <sys/systemcfg.h>
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
echo rs6000-ibm-aix3.2.5
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
exit 0 ;;
*:AIX:*:4)
if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=4.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
exit 0 ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit 0 ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
exit 0 ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
exit 0 ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
exit 0 ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
exit 0 ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
exit 0 ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit 0 ;;
9000/[3478]??:HP-UX:*:*)
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
9000/8?? ) HP_ARCH=hppa1.0 ;;
esac
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit 0 ;;
3050*:HI-UX:*:*)
sed 's/^ //' << EOF >dummy.c
#include <unistd.h>
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
echo unknown-hitachi-hiuxwe2
exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
exit 0 ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit 0 ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
exit 0 ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
exit 0 ;;
i?86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
exit 0 ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit 0 ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit 0 ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit 0 ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit 0 ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit 0 ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit 0 ;;
CRAY*X-MP:*:*:*)
echo xmp-cray-unicos
exit 0 ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE}
exit 0 ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
exit 0 ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE}
exit 0 ;;
CRAY-2:*:*:*)
echo cray2-cray-unicos
exit 0 ;;
F300:UNIX_System_V:*:*)
FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit 0 ;;
F301:UNIX_System_V:*:*)
echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
exit 0 ;;
hp3[0-9][05]:NetBSD:*:*)
echo m68k-hp-netbsd${UNAME_RELEASE}
exit 0 ;;
hp300:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
i?86:BSD/386:*:* | *:BSD/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit 0 ;;
*:FreeBSD:*:*)
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit 0 ;;
*:NetBSD:*:*)
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
*:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
i*:CYGWIN*:*)
echo i386-pc-cygwin32
exit 0 ;;
i*:MINGW*:*)
echo i386-pc-mingw32
exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin32
exit 0 ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
*:GNU:*:*)
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;;
*:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us.
ld_help_string=`ld --help 2>&1`
ld_supported_emulations=`echo $ld_help_string \
| sed -ne '/supported emulations:/!d
s/[ ][ ]*/ /g
s/.*supported emulations: *//
s/ .*//
p'`
case "$ld_supported_emulations" in
i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;;
i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;;
sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
elf32ppc)
# Determine Lib Version
cat >dummy.c <<EOF
#include <features.h>
#if defined(__GLIBC__)
extern char __libc_version[];
extern char __libc_release[];
#endif
main(argc, argv)
int argc;
char *argv[];
{
#if defined(__GLIBC__)
printf("%s %s\n", __libc_version, __libc_release);
#else
printf("unkown\n");
#endif
return 0;
}
EOF
LIBC=""
${CC-cc} dummy.c -o dummy 2>/dev/null
if test "$?" = 0 ; then
./dummy | grep 1\.99 > /dev/null
if test "$?" = 0 ; then
LIBC="libc1"
fi
fi
rm -f dummy.c dummy
echo powerpc-unknown-linux-gnu${LIBC} ; exit 0 ;;
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
sed 's/^ //' <<EOF >dummy.s
.globl main
.ent main
main:
.frame \$30,0,\$26,0
.prologue 0
.long 0x47e03d80 # implver $0
lda \$2,259
.long 0x47e20c21 # amask $2,$1
srl \$1,8,\$2
sll \$2,2,\$2
sll \$0,3,\$0
addl \$1,\$0,\$0
addl \$2,\$0,\$0
ret \$31,(\$26),1
.end main
EOF
LIBC=""
${CC-cc} dummy.s -o dummy 2>/dev/null
if test "$?" = 0 ; then
./dummy
case "$?" in
7)
UNAME_MACHINE="alpha"
;;
15)
UNAME_MACHINE="alphaev5"
;;
14)
UNAME_MACHINE="alphaev56"
;;
10)
UNAME_MACHINE="alphapca56"
;;
16)
UNAME_MACHINE="alphaev6"
;;
esac
objdump --private-headers dummy | \
grep ld.so.1 > /dev/null
if test "$?" = 0 ; then
LIBC="libc1"
fi
fi
rm -f dummy.s dummy
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
elif test "${UNAME_MACHINE}" = "mips" ; then
cat >dummy.c <<EOF
main(argc, argv)
int argc;
char *argv[];
{
#ifdef __MIPSEB__
printf ("%s-unknown-linux-gnu\n", argv[1]);
#endif
#ifdef __MIPSEL__
printf ("%sel-unknown-linux-gnu\n", argv[1]);
#endif
return 0;
}
EOF
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
else
# Either a pre-BFD a.out linker (linux-gnuoldld)
# or one that does not give us useful --help.
# GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
# If ld does not provide *any* "supported emulations:"
# that means it is gnuoldld.
echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
case "${UNAME_MACHINE}" in
i?86)
VENDOR=pc;
;;
*)
VENDOR=unknown;
;;
esac
# Determine whether the default compiler is a.out or elf
cat >dummy.c <<EOF
#include <features.h>
main(argc, argv)
int argc;
char *argv[];
{
#ifdef __ELF__
# ifdef __GLIBC__
# if __GLIBC__ >= 2
printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
# else
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
# endif
# else
printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
# endif
#else
printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
#endif
return 0;
}
EOF
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
fi ;;
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
# are messed up and put the nodename in both sysname and nodename.
i?86:DYNIX/ptx:4*:*)
echo i386-sequent-sysv4
exit 0 ;;
i?86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;;
i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
fi
exit 0 ;;
i?86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit 0 ;;
pc:*:*:*)
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
exit 0 ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit 0 ;;
paragon:*:*:*)
echo i860-intel-osf1
exit 0 ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
exit 0 ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
exit 0 ;;
M68*:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& echo i486-ncr-sysv4.3${OS_REL} && exit 0
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& echo i486-ncr-sysv4 && exit 0 ;;
m68*:LynxOS:2.*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit 0 ;;
i?86:LynxOS:2.*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
exit 0 ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
exit 0 ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
echo ${UNAME_MACHINE}-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit 0 ;;
PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
exit 0 ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
exit 0 ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
exit 0 ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit 0 ;;
news*:NEWS-OS:*:6*)
echo mips-sony-newsos6
exit 0 ;;
R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
cat >dummy.c <<EOF
#ifdef _SEQUENT_
# include <sys/types.h>
# include <sys/utsname.h>
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
printf ("arm-acorn-riscix"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
printf ("m68k-hp-bsd\n"); exit (0);
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
#if !defined (ultrix)
printf ("vax-dec-bsd\n"); exit (0);
#else
printf ("vax-dec-ultrix\n"); exit (0);
#endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
# Convex versions that predate uname can use getsysinfo(1)
if [ -x /usr/convex/getsysinfo ]
then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
exit 0 ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit 0 ;;
c34*)
echo c34-convex-bsd
exit 0 ;;
c38*)
echo c38-convex-bsd
exit 0 ;;
c4*)
echo c4-convex-bsd
exit 0 ;;
esac
fi
#echo '(Unable to guess system type)' 1>&2
exit 1

1178
config.sub vendored Executable file

File diff suppressed because it is too large Load Diff

316
config/ChangeLog Normal file
View File

@@ -0,0 +1,316 @@
Thu Sep 11 16:43:27 1997 Jim Wilson <wilson@cygnus.com>
* mh-elfalphapic, mt-elfalphapic: New files.
Wed Jul 23 12:32:18 1997 Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>
* mh-go32 (CFLAGS): Don't set -fno-omit-frame-pointer.
Mon Jun 16 19:06:41 1997 Geoff Keating <geoffk@ozemail.com.au>
* mh-ppcpic: New file.
* mt-ppcpic: New file.
Thu Mar 27 15:52:40 1997 Geoffrey Noer <noer@cygnus.com>
* mh-cygwin32: override CXXFLAGS, setting to -O2 only
(no debug)
Tue Mar 25 18:16:43 1997 Geoffrey Noer <noer@cygnus.com>
* mh-cygwin32: override LIBGCC2_DEBUG_CFLAGS so debug info
isn't included in cygwin32-hosted libgcc2.a by default
Wed Jan 8 19:56:43 1997 Geoffrey Noer <noer@cygnus.com>
* mh-cygwin32: override CFLAGS so debug info isn't included
in cygwin32-hosted tools by default
Tue Dec 31 16:04:26 1996 Ian Lance Taylor <ian@cygnus.com>
* mh-linux: Remove.
Mon Nov 11 10:29:51 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* mt-ppc: Delete file, options moved to newlib configure.
Fri Oct 4 12:21:03 1996 Angela Marie Thomas (angela@cygnus.com)
* mh-dgux386: New file. x86 dgux specific flags
Mon Sep 30 15:10:07 1996 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (EXTRALIBS_PPC_XCOFF): New, was EXTRALIBS_PPC.
(EXTRALIBS_PPC): Use shared libraries instead of xcoff.
Sat Aug 17 04:56:25 1996 Geoffrey Noer <noer@skaro.cygnus.com>
* mh-cygwin32: don't -D_WIN32 here anymore
Thu Aug 15 19:46:44 1996 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (SEGFLAG_68K, SEGFLAG_PPC): Remove.
(EXTRALIBS_PPC): Add libgcc.xcoff.
Thu Aug 8 14:51:47 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* mt-ppc: New file, add -mrelocatable-lib and -mno-eabi to all
target builds for PowerPC eabi targets.
Fri Jul 12 12:06:01 1996 Stan Shebs <shebs@andros.cygnus.com>
* mpw: New subdir, Mac MPW configuration support bits.
Mon Jul 8 17:30:52 1996 Jim Wilson <wilson@cygnus.com>
* mh-irix6: New file.
Mon Jul 8 15:15:37 1996 Jason Merrill <jason@yorick.cygnus.com>
* mt-sparcpic (PICFLAG_FOR_TARGET): Use -fPIC.
Fri Jul 5 11:49:02 1996 Ian Lance Taylor <ian@cygnus.com>
* mh-irix4 (RANLIB): Don't define; Irix 4 does have ranlib.
Sun Jun 23 22:59:25 1996 Geoffrey Noer <noer@cygnus.com>
* mh-cygwin32: new file. Like mh-go32 without the CFLAGS entry.
Tue Mar 26 14:10:41 1996 Ian Lance Taylor <ian@cygnus.com>
* mh-go32 (CFLAGS): Define.
Thu Mar 14 19:20:54 1996 Ian Lance Taylor <ian@cygnus.com>
* mh-necv4: New file.
Thu Feb 15 13:07:43 1996 Ian Lance Taylor <ian@cygnus.com>
* mh-cxux (CC): New variable.
(CFLAGS, LDFLAGS): Remove.
* mh-ncrsvr43 (CC): New variable.
(CFLAGS): Remove.
* mh-solaris (CFLAGS): Remove.
* mh-go32: Remove most variable settings, since they presumed a
Canadian Cross, which is now handled correctly by the configure
script.
* mh-sparcpic (PICFLAG): Set to -fPIC, not -fpic.
Mon Feb 12 14:53:39 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* mh-m68kpic, mt-m68kpic: New files.
Thu Feb 1 14:15:42 1996 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (CC_MWC68K): Add options similar to those used
in CC_MWCPPC, and -mc68020 -model far.
(AR_MWLINK68K): Add -xm library.
(AR_AR): Define.
(CC_LD_MWLINK68K): Remove -d.
(EXTRALIBS_MWC68K): Define.
Thu Jan 25 16:05:33 1996 Ian Lance Taylor <ian@cygnus.com>
* mh-ncrsvr43 (CFLAGS): Remove -Hnocopyr.
Tue Nov 7 15:41:30 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (CC_MWC68K, CC_MWCPPC): Remove unused include path.
(CC_MWCPPC): Add -mpw_chars, disable warnings, add comments
explaining reasons for various flags.
(EXTRALIBS_PPC, EXTRALIBS_MWCPPC ): Put runtime library first.
Fri Oct 13 14:44:25 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* mh-aix, mh-sun: Removed.
* mh-decstation (X11_EXTRA_CFLAGS): Define.
* mh-sco, mh-solaris, mh-sysv4 (X11_EXTRA_LIBS): Define.
* mh-hp300, mh-hpux, mh-hpux8, mh-solaris, mh-sun3, mh-sysv4: Don't
hardcode location of X stuff here.
Thu Sep 28 13:14:56 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw: Add definitions for various 68K and PowerMac
compilers, add definitions for library and link steps for
PowerMacs.
Thu Sep 14 08:20:04 1995 Fred Fish <fnf@cygnus.com>
* mh-hp300 (CC): Add "CC = cc -Wp,-H256000" to avoid
"too much defining" errors from the HPUX compiler.
Thu Aug 17 17:28:56 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
* mh-hp300 (RANLIB): Use "ar ts", in case GNU ar was used and
didn't build a symbol table.
Thu Jun 22 17:47:24 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (CC): Define ANSI_PROTOTYPES.
Mon Apr 10 12:29:48 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (EXTRALIBS): Always link in Math.o, CSANELIB.o,
and ToolLibs.o.
* mpw-mh-mpw (CC): Define ALMOST_STDC.
(CFLAGS): Remove ALMOST_STDC, -mc68881.
(LDFLAGS): add -w.
* mpw-mh-mpw (CFLAGS): Add -b option to put strings at the ends of
functions.
* mpw-mh-mpw: New file, host makefile definitions for MPW.
Fri Mar 31 11:35:17 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* mt-netware: New file.
Mon Mar 13 12:31:29 1995 Ian Lance Taylor <ian@cygnus.com>
* mh-hpux8: New file.
* mh-hpux: Use X11R5 rather than X11R4.
Thu Feb 9 11:04:13 1995 Ian Lance Taylor <ian@cygnus.com>
* mh-linux (SYSV): Don't define.
(RANLIB): Don't define.
Wed Jan 11 16:29:34 1995 Jason Merrill <jason@phydeaux.cygnus.com>
* m?-*pic (LIBCXXFLAGS): Add -fno-implicit-templates.
Thu Nov 3 17:27:19 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
* mh-irix4 (CC): Increase maximum string length.
* mh-sco (CC): Define away const, it doesn't work right; elements
of arrays of ptr-to-const are considered const themselves.
Sat Jul 16 12:17:49 1994 Stan Shebs (shebs@andros.cygnus.com)
* mh-cxux: New file, from Bob Rusk (rrusk@mail.csd.harris.com).
Sat Jun 4 17:22:12 1994 Per Bothner (bothner@kalessin.cygnus.com)
* mh-ncrsvr43: New file from Tom McConnell
<tmcconne@sedona.intel.com>.
Thu May 19 00:32:11 1994 Jeff Law (law@snake.cs.utah.edu)
* mh-hpux (CC): Add -Wp,-H256000 to avoid "too much defining"
errors from the HPUX 8 compilers.
Wed May 4 20:14:47 1994 D. V. Henkel-Wallace (gumby@cygnus.com)
* mh-lynxrs6k: set SHELL to /bin/bash
Tue Apr 12 12:38:17 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* mh-irix4 (CC): Change -XNh1500 to -XNh2000.
Sat Dec 25 20:03:45 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
* mt-hppa: Delete.
Tue Nov 16 22:54:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* mh-a68bsd: Define CC to gcc.
Mon Nov 15 16:56:51 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* mh-linux: Don't put -static in LDFLAGS. Add comments.
Mon Nov 15 13:37:58 1993 david d `zoo' zuhn (zoo@cirdan.cygnus.com)
* mh-sysv4 (AR_FLAGS): change from cq to cr
Fri Nov 5 08:12:32 1993 D. V. Henkel-Wallace (gumby@blues.cygnus.com)
* mh-unixware: remove. It's the same as sysv4, and config.guess
can't tell the difference. So don't allow skew.
Wed Oct 20 20:35:14 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* mh-hp300: Revert yesterday's change, but add comment explaining.
Tue Oct 19 18:58:21 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* mh-hp300: Don't define CFLAGS to empty. Why should hp300 be
different from anything else? ("gdb doesn't understand the native
debug format" isn't a good enough answer because we might be using
gcc).
Tue Oct 5 12:17:40 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* mh-alphaosf: Remove, no longer necessary now that gdb knows
how to handle OSF/1 shared libraries.
Tue Jul 6 11:27:33 1993 Steve Chamberlain (sac@phydeaux.cygnus.com)
* mh-alphaosf: New file.
Thu Jul 1 15:49:33 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* mh-riscos: New file.
Mon Jun 14 12:03:18 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com)
* mh-aix, mh-aix386, mh-decstation, mh-delta88, mh-hpux, mh-irix4,
mh-ncr3000, mh-solaris, mh-sysv, mh-sysv4: remove INSTALL=cp line,
now that we're using install.sh globally
Fri Jun 4 16:09:34 1993 Ian Lance Taylor (ian@cygnus.com)
* mh-sysv4 (INSTALL): Use cp, not /usr/ucb/install.
Thu Apr 8 11:21:52 1993 Ian Lance Taylor (ian@cygnus.com)
* mt-a29k, mt-ebmon29k, mt-os68k, mt-ose68000, mt-ose68k,
mt-vxworks68, mt-vxworks960: Removed obsolete, unused target
Makefile fragment files.
Mon Mar 8 15:05:25 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
* mh-aix386: New file; old mh-aix, plus no-op RANLIB.
Thu Oct 1 13:50:48 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* mh-solaris: INSTALL is NOT /usr/ucb/install
Mon Aug 24 14:25:35 1992 Ian Lance Taylor (ian@cygnus.com)
* mt-ose68000, mt-ose68k: renamed from mt-OSE*.
Tue Jul 21 02:11:01 1992 D. V. Henkel-Wallace (gumby@cygnus.com)
* mt-OSE68k, mt-680000: new configs.
Thu Jul 16 17:12:09 1992 K. Richard Pixley (rich@rtl.cygnus.com)
* mh-irix4: merged changes from progressive.
Tue Jun 9 23:29:38 1992 Per Bothner (bothner@rtl.cygnus.com)
* Everywhere: Change RANLIB=echo>/dev/null (which confuses
some shells - and I don't blame them) to RANLIB=true.
* mh-solaris: Use /usr/ucb/install for INSTALL.
Sun May 31 14:45:23 1992 Mark Eichin (eichin at cygnus.com)
* mh-solaris2: Add new configuration for Solaris 2 (sysv, no ranlib)
Fri Apr 10 23:10:08 1992 Fred Fish (fnf@cygnus.com)
* mh-ncr3000: Add new configuration for NCR 3000.
Tue Dec 10 00:10:55 1991 K. Richard Pixley (rich at rtl.cygnus.com)
* ChangeLog: fresh changelog.

12
config/mh-a68bsd Normal file
View File

@@ -0,0 +1,12 @@
RANLIB=true
#None of the Apollo compilers can compile gas or binutils. The preprocessor
# chokes on bfd, the compiler won't let you assign integers to enums, and
# other problems. Defining CC to gcc is a questionable way to say "don't use
# the apollo compiler" (the preferred version of GCC could be called cc,
# or whatever), but I'm not sure leaving CC as cc is any better...
#CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
CC=gcc
BISON=yacc

1
config/mh-aix386 Normal file
View File

@@ -0,0 +1 @@
RANLIB = @:

3
config/mh-apollo68 Normal file
View File

@@ -0,0 +1,3 @@
HDEFINES = -DUSG
RANLIB=true
CC= cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG

14
config/mh-cxux Normal file
View File

@@ -0,0 +1,14 @@
# Configuration for Harris CX/UX 7 (and maybe 6), based on sysv4 configuration.
# Define SYSV as -DSYSV if you are using a System V operating system.
SYSV = -DSYSV -DSVR4
RANLIB = true
# C++ debugging is not yet supported under SVR4 (DWARF)
CXXFLAGS=-O
# The l flag generates a warning from the SVR4 archiver, remove it.
AR_FLAGS = cq
# Under CX/UX, we want to tell the compiler to use ANSI mode.
CC=cc -Xa

16
config/mh-cygwin32 Normal file
View File

@@ -0,0 +1,16 @@
# We don't want debugging info in Win32-hosted toolchains.
# Accomplish this by overriding CFLAGS.
CFLAGS=-O2
CXXFLAGS=-O2
# We also need to override LIBGCC2_DEBUG_CFLAGS so libgcc2 will be
# build without debugging information
LIBGCC2_DEBUG_CFLAGS=
# We set MAKEINFOFLAGS to not split .info files, because the resulting
# file names don't work on DOS.
MAKEINFOFLAGS=--no-split
# custom installation rules for cygwin32 (append .exe to binaries, etc.)
INSTALL_DOSREL=install-dosrel

5
config/mh-decstation Normal file
View File

@@ -0,0 +1,5 @@
CC = cc -Wf,-XNg1000
# for X11, since the native DECwindows include files are really broken when
# it comes to function prototypes.
X11_EXTRA_CFLAGS = "-DNeedFunctionPrototypes=0"

4
config/mh-delta88 Normal file
View File

@@ -0,0 +1,4 @@
RANLIB = true

4
config/mh-dgux Normal file
View File

@@ -0,0 +1,4 @@
HDEFINES=-DHOST_SYS=DGUX_SYS
CC=gcc -Wall -ansi -D__using_DGUX
RANLIB=true

22
config/mh-dgux386 Normal file
View File

@@ -0,0 +1,22 @@
# from mh-dgux
HDEFINES=-DHOST_SYS=DGUX_SYS
CC=gcc -Wall -ansi -D__using_DGUX
RANLIB = true
# from mh-sysv4
# Define SYSV as -DSYSV if you are using a System V operating system.
SYSV = -DSYSV -DSVR4
RANLIB = true
# C++ debugging is not yet supported under SVR4 (DWARF)
CXXFLAGS=-O
# The l flag generates a warning from the SVR4 archiver, remove it.
AR_FLAGS = cr
X11_EXTRA_LIBS = -lnsl
# from angela
# no debugging due to broken compiler, use BSD style timeofday
CFLAGS=-O -D_BSD_TIMEOFDAY_FLAVOR

1
config/mh-elfalphapic Normal file
View File

@@ -0,0 +1 @@
PICFLAG=-fPIC

4
config/mh-go32 Normal file
View File

@@ -0,0 +1,4 @@
# We don't want to use debugging information on DOS. Unfortunately,
# this requires that we set CFLAGS.
# This used to set -fno-omit-frame-pointer.
CFLAGS=-O2

13
config/mh-hp300 Normal file
View File

@@ -0,0 +1,13 @@
# Define SYSV as -DSYSV if you are using a System V operating system.
SYSV = -DSYSV
# Avoid "too much defining" errors from HPUX compiler.
CC = cc -Wp,-H256000
# If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
# If it's HP/UX ar, this should be harmless.
RANLIB = ar ts
# Native cc can't bootstrap gcc with -g. Defining CFLAGS here loses (a)
# for non-gcc directories, (b) if we are compiling with gcc, not
# native cc. Neither (a) nor (b) has a trivial fix though.
CFLAGS =

4
config/mh-hpux Normal file
View File

@@ -0,0 +1,4 @@
# Define SYSV as -DSYSV if you are using a System V operating system.
CC = cc -Wp,-H256000
SYSV = -DSYSV
RANLIB = true

4
config/mh-hpux8 Normal file
View File

@@ -0,0 +1,4 @@
# Define SYSV as -DSYSV if you are using a System V operating system.
CC = cc -Wp,-H256000
SYSV = -DSYSV
RANLIB = true

7
config/mh-irix4 Normal file
View File

@@ -0,0 +1,7 @@
# Makefile changes for SGI's running IRIX-4.x.
# Tell compiler to use K&R C. We can't compile under the SGI Ansi
# environment. Also bump switch table size so that cp-parse will
# compile. Bump string length limit so linker builds.
CC = cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192
SYSV = -DSYSV

3
config/mh-irix5 Normal file
View File

@@ -0,0 +1,3 @@
# Makefile changes for SGI's running IRIX-5.x.
SYSV = -DSYSV
RANLIB = true

7
config/mh-irix6 Normal file
View File

@@ -0,0 +1,7 @@
# Makefile changes for SGI's running IRIX-6.x.
SYSV = -DSYSV
RANLIB = true
# Specify the ABI, to ensure that all Irix 6 systems will behave the same.
# Also, using -32 avoids bugs that exist in the n32/n64 support in some
# versions of the SGI compiler.
CC = cc -32

2
config/mh-lynxos Normal file
View File

@@ -0,0 +1,2 @@
# /bin/cc is less than useful for our purposes. Always use GCC
CC = /bin/gcc

8
config/mh-lynxrs6k Normal file
View File

@@ -0,0 +1,8 @@
# LynxOS running on the rs6000 doesn't have ranlib
RANLIB = true
# /bin/cc is less than useful for our purposes. Always use GCC
CC = /usr/cygnus/progressive/bin/gcc
# /bin/sh is too buggy, so use /bin/bash instead.
SHELL = /bin/bash

1
config/mh-m68kpic Normal file
View File

@@ -0,0 +1 @@
PICFLAG=-fpic

17
config/mh-ncr3000 Normal file
View File

@@ -0,0 +1,17 @@
# Host configuration file for an NCR 3000 (i486/SVR4) system.
# The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
# This compiler not only emits obnoxious copyright messages every time
# you run it, but it chokes and dies on a whole bunch of GNU source
# files. Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
# Unfortunately though, the AT&T compiler sometimes generates code that
# the assembler barfs on if -g is used, so disable it by default as well.
CC = /usr/ccs/ATT/cc
CFLAGS =
# Define SYSV as -DSYSV if you are using a System V operating system.
SYSV = -DSYSV -DSVR4
RANLIB = true
# The l flag generates a warning from the SVR4 archiver, remove it.
AR_FLAGS = cq

9
config/mh-ncrsvr43 Normal file
View File

@@ -0,0 +1,9 @@
# Host configuration file for an NCR 3000 (i486/SVR43) system.
# The MetaWare compiler will generate a copyright message unless you
# turn it off by adding the -Hnocopyr flag.
CC = cc -Hnocopyr
# Define SYSV as -DSYSV if you are using a System V operating system.
SYSV = -DSYSV -DSVR4
RANLIB = true

11
config/mh-necv4 Normal file
View File

@@ -0,0 +1,11 @@
# Host Makefile fragment for NEC MIPS SVR4.
# The C compiler on NEC MIPS SVR4 needs bigger tables.
CC = cc -ZXNd=5000 -ZXNg=1000
# Define SYSV as -DSYSV if you are using a System V operating system.
SYSV = -DSYSV -DSVR4
RANLIB = true
# NEC -lX11 needs some other libraries.
X11_EXTRA_LIBS = -lsocket -lnsl

1
config/mh-papic Normal file
View File

@@ -0,0 +1 @@
PICFLAG=-fPIC

1
config/mh-ppcpic Normal file
View File

@@ -0,0 +1 @@
PICFLAG=-fPIC

15
config/mh-riscos Normal file
View File

@@ -0,0 +1,15 @@
# This is for a MIPS running RISC/os 4.52C.
# This is needed for GDB, but needs to be in the top-level make because
# if a library is compiled with the bsd headers and gets linked with the
# sysv system libraries all hell can break loose (e.g. a jmp_buf might be
# a different size).
# ptrace(2) apparently has problems in the BSD environment. No workaround is
# known except to select the sysv environment. Could we use /proc instead?
# These "sysv environments" and "bsd environments" often end up being a pain.
#
# This is not part of CFLAGS because perhaps not all C compilers have this
# option.
CC= cc -systype sysv
RANLIB = true

10
config/mh-sco Normal file
View File

@@ -0,0 +1,10 @@
# Define SYSV as -DSYSV if you are using a System V operating system.
SYSV = -DSYSV
RANLIB = true
# You may need this if you don't have bison.
# BISON = yacc -Sm10400
# The native C compiler botches some simple uses of const. Unfortunately,
# it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
CC = cc -Dconst=
X11_EXTRA_LIBS = -lsocket -lm -lintl -lmalloc

6
config/mh-solaris Normal file
View File

@@ -0,0 +1,6 @@
# Makefile changes for Suns running Solaris 2
SYSV = -DSYSV
RANLIB = true
X11_EXTRA_LIBS = -lnsl -lsocket

1
config/mh-sparcpic Normal file
View File

@@ -0,0 +1 @@
PICFLAG=-fPIC

3
config/mh-sun3 Normal file
View File

@@ -0,0 +1,3 @@
# Sun's C compiler needs the -J flag to be able to compile cp-parse.c
# without overflowing the jump tables (-J says to use a 32 bit table)
CC = cc -J

3
config/mh-sysv Normal file
View File

@@ -0,0 +1,3 @@
# Define SYSV as -DSYSV if you are using a System V operating system.
SYSV = -DSYSV
RANLIB = true

11
config/mh-sysv4 Normal file
View File

@@ -0,0 +1,11 @@
# Define SYSV as -DSYSV if you are using a System V operating system.
SYSV = -DSYSV -DSVR4
RANLIB = true
# C++ debugging is not yet supported under SVR4 (DWARF)
CXXFLAGS=-O
# The l flag generates a warning from the SVR4 archiver, remove it.
AR_FLAGS = cr
X11_EXTRA_LIBS = -lnsl

2
config/mh-vaxult2 Normal file
View File

@@ -0,0 +1,2 @@
# The old BSD pcc isn't up to compiling parts of gdb so use gcc
CC = gcc

16
config/mh-windows Normal file
View File

@@ -0,0 +1,16 @@
CC=cc
CFLAGS=
RANLIB=true
AR_FLAGS=
.PHONY: windows
windows: nmake.mak
@echo "Don't forget to setup setvars.mak!"
nmake.mak: to-be-built
@echo Building nmake files
@$(srcdir)/gdb/mswin/genmakes
to-be-built:
@echo Recording commands
@$(srcdir)/gdb/mswin/recordit

1
config/mh-x86pic Normal file
View File

@@ -0,0 +1 @@
PICFLAG=-fpic

157
config/mpw-mh-mpw Normal file
View File

@@ -0,0 +1,157 @@
# This is an MPW makefile fragment.
# Since there are a multiplicity of Mac compilers and two different
# processors, this file is primarily a library of options for each
# compiler. Somebody else (such as a configure or build script) will
# make the actual choice.
# Compiler to use for compiling.
CC_MPW_C = C -d MPW_C -d ALMOST_STDC -d ANSI_PROTOTYPES -d MPW -mc68020 -model far -b -w
CC_SC = SC -d ALMOST_STDC -d ANSI_PROTOTYPES -d MPW -mc68020 -model far -b -i '' -i :
CC_MWC68K = MWC68K -d MPW -enum int -mpw_chars -sym on -w off -mc68020 -model far
CC_PPCC = PPCC -d powerc=1 -d pascal= -d ALMOST_STDC -d ANSI_PROTOTYPES -d MPW -w
CC_MRC = MrC -d powerc=1 -d pascal= -d ALMOST_STDC -d ANSI_PROTOTYPES -d MPW -i '' -i : -jm
CC_SMrC = SMrC -d MPW
# "-mpw_chars" is necessary because GNU sources often mix signed and
# unsigned casually.
# "-w off" is not a great idea, but CW7 is complaining about enum
# assignments.
# "-opt global,peep,l4,speed" is sometimes good, and sometimes bad.
# We must use {CIncludes} so that MPW tools will work; {MWCIncludes}
# defines stdout, islower, etc, in ways that are incompatible with MPW's
# runtime. However, this cannot be done via -i "{CIncludes}", since
# that does not affect how <>-type includes happen; instead, the variable
# MWCIncludes must be set to point at {CIncludes}.
CC_MWCPPC = MWCPPC -d MPW -enum int -mpw_chars -sym on -w off
# Note that GCC does *not* wire in a definition of "pascal", so that
# it can be handled in another way if desired.
CC_68K_GCC = gC -Dpascal= -DANSI_PROTOTYPES -DMPW
CC_PPC_GCC = gC -Dpowerc=1 -Dpascal= -DANSI_PROTOTYPES -DMPW
# Nothing for the default CFLAGS.
CFLAGS =
# Tool to use for making libraries/archives.
AR_LIB = Lib
AR_MWLINK68K = MWLink68K -xm library
AR_PPCLINK = PPCLink -xm library
AR_MWLINKPPC = MWLinkPPC -xm library
AR_AR = ar
AR_FLAGS = -o
RANLIB_NULL = null-command
RANLIB_RANLIB = ranlib
# Compiler and/or linker to use for linking.
CC_LD_LINK = Link -w -d -model far {CC_LD_TOOL_FLAGS}
CC_LD_MWLINK68K = MWLink68K -w {CC_LD_TOOL_FLAGS} -sym on -model far
CC_LD_PPCLINK = PPCLink -main __start -outputformat xcoff
CC_LD_MWLINKPPC = MWLinkPPC -w {CC_LD_TOOL_FLAGS} -sym on
CC_LD_GLD = gC
# Extension for linker output.
PROG_EXT_68K =
PROG_EXT_XCOFF = .xcoff
# Nothing for the default LDFLAGS.
LDFLAGS = -w
CC_LD_TOOL_FLAGS = -c 'MPS ' -t MPST
# Libraries to link against.
# It would appear that the math libraries are not
# needed except to provide a definition for scalb,
# which is called from ldexp, which is referenced
# in the m68k opcodes library.
EXTRALIBS_C = \Option-d
"{CLibraries}"StdClib.o \Option-d
"{CLibraries}"Math.o \Option-d
"{CLibraries}"CSANELib.o \Option-d
"{Libraries}"Stubs.o \Option-d
"{Libraries}"Runtime.o \Option-d
"{Libraries}"Interface.o \Option-d
"{Libraries}"ToolLibs.o
EXTRALIBS_MWC68K = \Option-d
"{CLibraries}"StdClib.o \Option-d
"{CLibraries}"Math.o \Option-d
"{CLibraries}"CSANELib.o \Option-d
"{Libraries}"Stubs.o \Option-d
"{Libraries}"Runtime.o \Option-d
"{Libraries}"Interface.o \Option-d
"{Libraries}"ToolLibs.o \Option-d
"{MW68KLibraries}MPW ANSI (4i) C.68K.Lib"
EXTRALIBS_PPC_XCOFF = \Option-d
"{PPCLibraries}"StdCRuntime.o \Option-d
"{PPCLibraries}"InterfaceLib.xcoff \Option-d
"{PPCLibraries}"MathLib.xcoff \Option-d
"{PPCLibraries}"StdCLib.xcoff \Option-d
"{PPCLibraries}"PPCToolLibs.o \Option-d
"{PPCLibraries}"PPCCRuntime.o \Option-d
"{GCCPPCLibraries}"libgcc.xcoff
EXTRALIBS_PPC = \Option-d
"{PPCLibraries}"StdCRuntime.o \Option-d
"{SharedLibraries}"InterfaceLib \Option-d
"{SharedLibraries}"MathLib \Option-d
"{SharedLibraries}"StdCLib \Option-d
"{PPCLibraries}"PPCToolLibs.o \Option-d
"{PPCLibraries}"PPCCRuntime.o \Option-d
"{GCCPPCLibraries}"libgcc.xcoff
EXTRALIBS_MWCPPC = \Option-d
"{MWPPCLibraries}"MWStdCRuntime.Lib \Option-d
"{MWPPCLibraries}"InterfaceLib \Option-d
"{MWPPCLibraries}"StdCLib \Option-d
"{MWPPCLibraries}"MathLib \Option-d
"{MWPPCLibraries}"PPCToolLibs.o
# Tool to make PEF with, if needed.
MAKEPEF_NULL = null-command
MAKEPEF_PPC = MakePEF
MAKEPEF_FLAGS = \Option-d
-l InterfaceLib.xcoff=InterfaceLib \Option-d
-l MathLib.xcoff=MathLib \Option-d
-l StdCLib.xcoff=StdCLib
MAKEPEF_TOOL_FLAGS = -ft MPST -fc 'MPS '
# Resource compiler to use.
REZ_68K = Rez
REZ_PPC = Rez -d WANT_CFRG

53
config/mpw/ChangeLog Normal file
View File

@@ -0,0 +1,53 @@
Tue Nov 26 12:34:12 1996 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: Fix some comments.
Mon Sep 16 14:42:52 1996 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed (HLDENV): Edit out all references.
Thu Aug 15 19:49:23 1996 Stan Shebs <shebs@andros.cygnus.com>
* true: New script, identical to mpw-true.
* g-mpw-make.sed: Add @DASH_C_FLAG@ and @SEGMENT_FLAG()@
to the editors for compile commands.
Thu Aug 1 15:01:42 1996 Stan Shebs <shebs@andros.cygnus.com>
* mpw-true, mpw-touch, null-command: New scripts.
* README: Describe usage in more detail.
Tue Dec 12 14:51:51 1995 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: Don't edit out "version=" occurrences.
Fri Dec 1 11:46:18 1995 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed (bindir, libdir): Edit the positions of
pathname separators to work with other pathnames better.
Tue Nov 7 15:08:07 1995 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: Add comment about Duplicate vs Catenate,
add additional pattern for editing link-compile commands.
Tue Oct 24 14:28:51 1995 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: Add handling for *.tab.[hc] files.
(CHILL_FOR_TARGET, CHILL_LIB): Edit out tricky definitions
of these.
Thu Sep 28 21:05:10 1995 Stan Shebs <shebs@andros.cygnus.com>
* g-mpw-make.sed: New file, generic sed commands to translate
Unix makefiles into MPW makefile syntax.
Fri Mar 17 11:51:20 1995 Stan Shebs <shebs@andros.cygnus.com>
* README: Clarify instructions.
* fi: Remove.
Wed Dec 21 15:45:53 1994 Stan Shebs <shebs@andros.cygnus.com>
* MoveIfChange, README, fi, forward-include, open-brace,
tr-7to8-src: New files.

19
config/mpw/MoveIfChange Normal file
View File

@@ -0,0 +1,19 @@
# Rename a file only if it is different from a previously existing
# file of the same name. This is useful for keeping make from doing
# too much work if the contents of a file haven't changed.
# This is an MPW translation of the standard GNU sh script move-if-change.
Set exit 0
If "`exists -f "{2}"`"
Compare "{1}" "{2}" >dev:null
If {status} != 0
Rename -y "{1}" "{2}"
Else
Echo "{2}" is unchanged
Delete -i -y "{1}"
End
Else
Rename -y "{1}" "{2}"
End

23
config/mpw/README Normal file
View File

@@ -0,0 +1,23 @@
This directory contains MPW scripts and related files that are needed to
build Cygnus GNU tools for MPW. The scripts should be somewhere on the
command path; our usual practice has been to have a separate directory
for the scripts, and put the tools (byacc, flex, and sed at least) there
also; then it's easier to drag the support bits around as a group, or to
upgrade MPW versions. The complete package of scripts and tool binaries
is usually available as pub/mac/buildtools.cpt.hqx on ftp.cygnus.com.
"tr-7to8-src" is actually the source to an MPW script that transforms
sequences like "\Option-d" into the actual 8-bit chars that MPW needs.
It's only the source because it can't itself include any 8-bit chars.
It *can* be processed into a genuine "tr-7to8" by using itself:
tr-7to8 tr-7to8-src | sed -e 's/Src//' >new-tr-7to8
Use this to verify:
compare tr-7to8 new-tr-7to8
If you don't have a working tr-7to8, then you will have to manually
replace all occurrences of "\Option-d" with real Option-d (which looks
like a delta), then do similarly with all the other "\Option-..."
strings, and then change "\SrcOption-d" into the string "\Option-d".

View File

@@ -0,0 +1,3 @@
Echo '#include' ¶""{1}"¶" >"{2}".tem
MoveIfChange "{2}".tem "{2}"

293
config/mpw/g-mpw-make.sed Normal file
View File

@@ -0,0 +1,293 @@
# Sed commands to translate Unix makefiles into MPW makefiles.
# These are nominally generic, but work best on the makefiles used
# for GNU programs.
# Whack out any commented-out lines that are probably commands;
# they can only cause trouble later on.
/^# /d
# Change dependency char.
/:$/s/:/ \\Option-f/g
/^[^ :#][^:]*:/s/\([ ]*\):\([ ]*\)/ \\Option-f /g
# Change syntax of Makefile vars.
/\$/s/\${\([a-zA-Z0-9_-]*\)}/{\1}/g
/\$/s/\$(\([a-zA-Z0-9_-]*\))/{\1}/g
/ $@/s/ $@/ {Targ}/
# Double-$ are literals to Unix but not to MPW make.
/\$\$/s/\$\$/$/g
# Change pathname syntax.
/\//s,\.\./\/\.\./,:::,g
/\//s,\.\./,::,g
/\.\//s,\./,:,g
/\//s,/,:,g
# Undo excess changes.
/and/s,and:or$,and/or,
/and/s,and:or ,and/or ,
/want/s,want:need,want/need,
# Fixing up sed commands.
/-e/s_":\([^:]*\):d"_"/\1/d"_g
/-e/s_":\([^:]*\):,:\([^:]*\):d"_"/\1/,/\2/d"_g
/=/s/ = \.$/ = :/
# Make these go away so that later edits not confused.
/HLDENV/s/{HLDENV}//
# Comment out any explicit srcdir setting.
/srcdir/s/^srcdir/# srcdir/
/BASEDIR/s/^BASEDIR =.*$/BASEDIR = "{srcroot}"/
/{BASEDIR}:/s/{BASEDIR}:/{BASEDIR}/g
/{srcdir}:/s/{srcdir}:/"{srcdir}"/g
/"{srcdir}":/s/"{srcdir}":/"{srcdir}"/g
# Tweak some conventions that are backwards for the Mac.
/bindir/s/{exec_prefix}:bin/{exec_prefix}bin:/
/libdir/s/{exec_prefix}:lib/{exec_prefix}lib:/
# Comment out settings of anything set by mpw host config.
/CC/s/^CC *=/#CC =/
/CFLAGS/s/^CFLAGS *=/#CFLAGS =/
/AR/s/^AR *=/#AR =/
/AR_FLAGS/s/^AR_FLAGS *=/#AR_FLAGS =/
/RANLIB/s/^RANLIB *=/#RANLIB =/
/CC_LD/s/^CC_LD *=/#CC_LD =/
/LDFLAGS/s/^LDFLAGS *=/#LDFLAGS =/
# Change -I usages.
/-I/s/-I\./-i :/g
/-I/s/-I::bfd/-i ::bfd:/g
/-I/s/-I::include/-i ::include:/g
/-I/s/-I/-i /g
# Change -D usage.
/-D/s/\([ =]\)-D\([^ ]*\)/\1-d \2/g
# Change continuation char.
/\\$/s/\\$/\\Option-d/
# Change wildcard char.
/\*/s/\*/\\Option-x/g
# Change path of various types of source files. This rule does not allow
# for file names with multiple dots in the name.
/\.[chly]/s/\([ ><=]\)\([-a-zA-Z0-9_${}:"]*\)\.\([chly]\)/\1"{s}"\2.\3/g
/\.[chly]/s/^\([-a-zA-Z0-9_${}:"]*\)\.\([chly]\)/"{s}"\1.\2/
# Allow files named *.tab.[ch] as a special case.
/\.tab\.[ch]/s/\([ ><=]\)\([-a-zA-Z0-9_${}:"]*\.tab\)\.\([ch]\)/\1"{s}"\2.\3/g
/\.tab\.[ch]/s/^\([-a-zA-Z0-9_${}:"]*\.tab\)\.\([ch]\)/"{s}"\1.\2/
# Fix some overenthusiasms.
/{s}/s/"{s}""{srcdir}"/"{srcdir}"/g
/{s}/s/"{s}"{\([a-zA-Z0-9_]*\)dir}/"{\1dir}"/g
/{s}/s/"{s}"{\([a-zA-Z0-9_]*\)DIR}/"{\1DIR}"/g
/{s}/s/"{s}""{\([a-zA-Z0-9_]*\)dir}"/"{\1dir}"/g
/{s}/s/"{s}""{\([a-zA-Z0-9_]*\)DIR}"/"{\1DIR}"/g
/{s}/s/"{s}":/:/g
/{s}/s/^"{s}"//g
/{s}/s/"{s}""{s}"/"{s}"/g
/{s}/s/"{s}""{srcdir}"/"{s}"/g
/{s}/s/"{srcdir}""{s}"/"{s}"/g
# The .def files are also typically source files.
/\.def/s/\([ ><]\)\([-a-zA-Z0-9_${}:"]*\)\.def/\1"{s}"\2.def/g
/\.def/s/^\([-a-zA-Z0-9_${}:"]*\)\.def/"{s}"\1.def/g
# Change extension and path of objects.
/\.o/s/\([ =]\)\([-a-zA-Z0-9_${}:"]*\)\.o/\1"{o}"\2.c.o/g
/\.o/s/^\([-a-zA-Z0-9_${}:"]*\)\.o/"{o}"\1.c.o/
# Allow *.tab.o files as a special case of a 2-dot-name file.
/\.o/s/\([ =]\)\([-a-zA-Z0-9_${}:"]*\)\.tab\.o/\1"{o}"\2.tab.c.o/g
/\.o/s/^\([-a-zA-Z0-9_${}:"]*\)\.tab\.o/"{o}"\1.tab.c.o/
# Clean up.
/"{o}"/s/"{o}""{o}"/"{o}"/g
/"{o}"/s/^"{o}"\([a-zA-Z0-9_]*\)=/\1=/
# Change extension of libs.
/\.a/s/lib\([a-z]*\)\.a/lib\1.o/g
# Remove non-fail option.
/-/s/^\([ ]*\)-/\1/
# Fix overeagernesses - assumes no one-letter commands.
/^[ ]*[a-z] /s/^\([ ]*\)\([a-z]\) /\1-\2 /
# Remove non-echo option. (watch out for autoconf things)
/@/s/^\([ ]*\)@/\1/
# Change cp to Duplicate.
# Catenate is perhaps more accurate, but the pattern would have to
# identify the output file and add a '>' redirection into it.
/cp/s/^\([ ]*\)cp /\1Duplicate -d -y /
# Change mv to Rename.
/mv/s/^\([ ]*\)mv /\1Rename -y /
/Rename/s/^\([ ]*\)Rename -y -f/\1Rename -y/
# Change rm to Delete.
/rm -rf/s/^\([ ]*\)rm -rf /\1Delete -i -y /
/rm -f/s/^\([ ]*\)rm -f /\1Delete -i -y /
/rm/s/^\([ ]*\)rm /\1Delete -i -y /
# Note that we don't mess with ln - directory-specific scripts
# must decide what to do with symlinks.
# Change cat to Catenate.
/cat/s/^\([ ]*\)cat /\1Catenate /
# Change touch to mpw-touch.
/touch/s/^\([ ]*\)touch /\1mpw-touch /
# Change mkdir to NewFolder.
/mkdir/s/^\([ ]*\)mkdir /\1NewFolder /
# Change var setting to Set.
/=/s/^\([ ]*\)\([-a-zA-Z0-9_]*\)=\([^;]*\); \\Option-d/\1Set \2 \3/
# Change tests.
/if /s/if \[ *-f \([^ ]*\) ] *; *\\Option-d/If "`Exists "\1"`" != ""/
/if /s/if \[ *-f \([^ ]*\) ] *; *then *\\Option-d/If "`Exists "\1"`" != ""/
/if /s/if \[ ! *-f \([^ ]*\) ] *; *\\Option-d/If "`Exists "\1"`" == ""/
/if /s/if \[ ! *-f \([^ ]*\) ] *; *then \\Option-d/If "`Exists "\1"`" == ""/
/if /s/if \[ *-d \([^ ]*\) ] *; *\\Option-d/If "`Exists "\1"`" != ""/
/if /s/if \[ *-d \([^ ]*\) ] *; *then *\\Option-d/If "`Exists "\1"`" != ""/
/if /s/if \[ ! *-d \([^ ]*\) ] *; *\\Option-d/If "`Exists "\1"`" == ""/
/if /s/if \[ ! *-d \([^ ]*\) ] *; *then *\\Option-d/If "`Exists "\1"`" == ""/
/if /s/if \[ -d \([^ ]*\) ] *; then true *; else mkdir \([^ ;]*\) *; fi/If "`Exists "\1"`" != "" NewFolder \2 End If/
/if /s/if \[ \([^ ]*\) = \([^ ]*\) ] *; *\\Option-d/If "\1" == "\2"/
/if /s/if \[ \([^ ]*\) = \([^ ]*\) ] *; *then *\\Option-d/If "\1" == "\2"/
/if /s/if \[ \([^ ]*\) != \([^ ]*\) ] *; *\\Option-d/If "\1" != "\2"/
/if /s/if \[ \([^ ]*\) != \([^ ]*\) ] *; *then *\\Option-d/If "\1" != "\2"/
/if /s/if \[ \([^ ]*\) -eq \([^ ]*\) ] *; *\\Option-d/If "\1" != "\2"/
/if /s/if \[ \([^ ]*\) -eq \([^ ]*\) ] *; *then *\\Option-d/If "\1" != "\2"/
/^[ ]*else true$/c\
Else\
mpw-true\
/else/s/^\([ ]*\)else[ ]*$/\1Else/
/else/s/^\([ ]*\)else[; ]*\\Option-d$/\1Else/
/^[ ]*else[ ]*true[ ]*$/c\
Else\
mpw-true
/^[ ]*else[ ]*true[; ]*fi$/c\
Else\
mpw-true\
End If
/fi/s/^\([ ]*\)fi *$/\1End/
/fi/s/^\([ ]*\)fi *; *\\Option-d/\1End/
# Change looping.
/for/s/^\([ ]*\)for \([-a-zA-Z0-9_]*\) in \([^;]*\); *do *\\Option-d/\1For \2 In \3/
/^\([ ]*\)do *\\Option-d/d
/done/s/^\([ ]*\)done *; *\\Option-d/\1End/
/done/s/^\([ ]*\)done$/\1End/
# Trailing semicolons and continued lines are unneeded sh syntax.
/; \\Option-d/s/; \\Option-d//
# Change move-if-change to MoveIfChange.
/move-if-change/s/\([^ ]*\)move-if-change/MoveIfChange/g
# Change $(SHELL) to the script name by itself.
/SHELL/s/^\([ ]*\){SHELL} /\1/
# Change syntax of default rule dependency.
/^\.c\.o/s/^\.c\.o \\Option-f$/.c.o \\Option-f .c/
# Change default rule's action.
/{CC} -c/s/{CC} -c \(.*\) \$<$/{CC} @DASH_C_FLAG@ {DepDir}{Default}.c \1 @SEGMENT_FLAG({Default})@ -o {TargDir}{Default}.c.o/
# This is pretty disgusting, but I can't seem to detect empty rules.
/Option-f$/s/Option-f$/Option-f _oldest/g
# Remove -c from explicit compiler calls. (but should not if GCC)
# Handle the case of a source file that is "{xxx}"file.c.
/ -c /s/{\([A-Z_]*\)CC}\(.*\) -c \(.*\)"\([^"]*\)"\([-a-z_]*\)\.c/{\1CC}\2 @DASH_C_FLAG@ \3"\4"\5.c -o "{o}"\5.c.o/
# Handle the case of a source file that is "{xxx}"dir:file.c.
/ -c /s/{\([A-Z_]*\)CC}\(.*\) -c \(.*\)"\([^"]*\)"\([-a-z_]*\):\([-a-z_]*\)\.c/{\1CC}\2 @DASH_C_FLAG@ \3"\4"\5:\6.c -o "{o}"\6.c.o/
# Change linking cc to linking sequence.
/-o/s/^\([ ]*\){CC} \(.*\){\([A-Z_]*\)CFLAGS} \(.*\){LDFLAGS} \(.*\)-o \([^ ]*\) \(.*\)$/\1{CC_LD} \2 {\3CFLAGS} \4 {LDFLAGS} \5 -o \6{PROG_EXT} \7\
\1{MAKEPEF} \6{PROG_EXT} -o \6 {MAKEPEF_TOOL_FLAGS} {MAKEPEF_FLAGS}\
\1{REZ} "{s}"\6.r -o \6 -append -d PROG_NAME='"'\6'"' -d VERSION_STRING='"'{version}'"'/
/-o/s/^\([ ]*\){CC} \(.*\){\([A-Z_]*\)CFLAGS} \(.*\)-o \([^ ]*\) \(.*\){LDFLAGS} \(.*\)$/\1{CC_LD} \2 {\3CFLAGS} \4 {LDFLAGS} \6 -o \5{PROG_EXT} \7\
\1{MAKEPEF} \5{PROG_EXT} -o \5 {MAKEPEF_TOOL_FLAGS} {MAKEPEF_FLAGS}\
\1{REZ} "{s}"\5.r -o \5 -append -d PROG_NAME='"'\5'"' -d VERSION_STRING='"'{version}'"'/
/-o/s/^\([ ]*\){HOST_CC} \(.*\)-o \([^ ]*\) \(.*\)$/\1{HOST_CC_LD} \2 -o \3{PROG_EXT} \4\
\1{MAKEPEF} \3{PROG_EXT} -o \3 {MAKEPEF_TOOL_FLAGS} {MAKEPEF_FLAGS}\
\1{REZ} "{s}"\3.r -o \3 -append -d PROG_NAME='"'\3'"' -d VERSION_STRING='"'{version}'"'/
# Comment out .NOEXPORT rules.
/\.NOEXPORT/s/^\.NOEXPORT/#\.NOEXPORT/
# Comment out .PHONY rules.
/\.PHONY/s/^\.PHONY/#\.PHONY/
# Comment out .PRECIOUS rules.
/\.PRECIOUS/s/^\.PRECIOUS/#\.PRECIOUS/
# Comment out .SUFFIXES rules.
/\.SUFFIXES/s/^\.SUFFIXES/#\.SUFFIXES/
# Set the install program appropriately.
/INSTALL/s/^INSTALL *= *`.*`:install.sh -c/INSTALL = Duplicate -y/
# Don't try to decide whether to use the tree's own tools.
/bison/s/`.*bison:bison.*`/bison -y/
/byacc/s/`.*byacc:byacc.*`/byacc/
/flex/s/`.*flex:flex.*`/flex/
# Turn transformed C comments in echo commands back into comments.
/echo/s,echo '\(.*\):\\Option-x\(.*\)\\Option-x:\(.*\)',echo '\1/*\2*/\3',
# Whack out various clever expressions that search for tools, since
# the clever code is too /bin/sh specific.
/^AR_FOR_TARGET = `/,/`$/c\
AR_FOR_TARGET = ::binutils:ar\
/^RANLIB_FOR_TARGET = `/,/`$/c\
RANLIB_FOR_TARGET = ::binutils:ranlib\
/^RANLIB_TEST_FOR_TARGET = /,/ranlib ] )$/c\
RANLIB_TEST_FOR_TARGET = \
/^EXPECT = `/,/`$/c\
EXPECT = \
/^RUNTEST = `/,/`$/c\
RUNTEST = \
/^CC_FOR_TARGET = `/,/`$/c\
CC_FOR_TARGET = \
/^CXX_FOR_TARGET = `/,/`$/c\
CXX_FOR_TARGET = \
/^CHILL_FOR_TARGET = `/,/`$/c\
CHILL_FOR_TARGET = \
/^CHILL_LIB = `/,/`$/c\
CHILL_LIB = \
/sanit/s/{start-sanit...-[a-z0-9]*}//
/sanit/s/{end-sanit...-[a-z0-9]*}//
# Add standard defines and default rules.
/^# srcdir/a\
\
s = "{srcdir}"\
\
o = :\
\
"{o}" \\Option-f : "{s}"

7
config/mpw/mpw-touch Normal file
View File

@@ -0,0 +1,7 @@
# "Touch" command.
If "`Exists "{1}"`" != ""
SetFile -m . "{1}"
Else
Echo ' ' > "{1}"
End If

1
config/mpw/mpw-true Normal file
View File

@@ -0,0 +1 @@
Exit 0

1
config/mpw/null-command Normal file
View File

@@ -0,0 +1 @@
# This command does nothing.

4
config/mpw/open-brace Normal file
View File

@@ -0,0 +1,4 @@
# MPW makefiles seem not to have any way to get a literal open
# brace into a rule anywhere, so this does the job.
Echo '{'

9
config/mpw/tr-7to8-src Normal file
View File

@@ -0,0 +1,9 @@
StreamEdit -e \Option-d
'/\Option-x/ \Option-d
Replace /\Option-d\SrcOption-d/ "\Option-d\Option-d" -c \Option-5 ; \Option-d
Replace /\Option-d\SrcOption-f/ "\Option-d\Option-f" -c \Option-5 ; \Option-d
Replace /\Option-d\SrcOption-8/ "\Option-d\Option-8" -c \Option-5 ; \Option-d
Replace /\Option-d\SrcOption-5/ "\Option-d\Option-5" -c \Option-5 ; \Option-d
Replace /\Option-d\SrcOption-x/ "\Option-d\Option-x" -c \Option-5 ; \Option-d
Replace /\Option-d\SrcOption-r/ "\Option-d\Option-r" -c \Option-5' \Option-d
"{1}"

1
config/mpw/true Normal file
View File

@@ -0,0 +1 @@
Exit 0

1
config/mt-elfalphapic Normal file
View File

@@ -0,0 +1 @@
PICFLAG_FOR_TARGET=-fPIC

2
config/mt-linux Normal file
View File

@@ -0,0 +1,2 @@
# When using glibc 2 on Linux we must always use vtable thunks.
CXXFLAGS=-O2 -g -fvtable-thunks

1
config/mt-m68kpic Normal file
View File

@@ -0,0 +1 @@
PICFLAG_FOR_TARGET=-fpic

1
config/mt-netware Normal file
View File

@@ -0,0 +1 @@
GDB_NLM_DEPS = all-gcc all-ld

1
config/mt-papic Normal file
View File

@@ -0,0 +1 @@
PICFLAG_FOR_TARGET=-fPIC

1
config/mt-ppcpic Normal file
View File

@@ -0,0 +1 @@
PICFLAG_FOR_TARGET=-fPIC

1
config/mt-sparcpic Normal file
View File

@@ -0,0 +1 @@
PICFLAG_FOR_TARGET=-fPIC

4
config/mt-v810 Normal file
View File

@@ -0,0 +1,4 @@
CC_FOR_TARGET = ca732 -ansi
AS_FOR_TARGET = as732
AR_FOR_TARGET = ar732
RANLIB_FOR_TARGET = true

1
config/mt-x86pic Normal file
View File

@@ -0,0 +1 @@
PICFLAG_FOR_TARGET=-fpic

1414
configure vendored Executable file

File diff suppressed because it is too large Load Diff

889
configure.in Normal file
View File

@@ -0,0 +1,889 @@
#! /bin/bash
##############################################################################
## This file is a shell script fragment that supplies the information
## necessary to tailor a template configure script into the configure
## script appropriate for this directory. For more information, check
## any existing configure script.
## Be warned, there are two types of configure.in files. There are those
## used by Autoconf, which are macros which are expanded into a configure
## script by autoconf. The other sort, of which this is one, is executed
## by Cygnus configure.
## For more information on these two systems, check out the documentation
## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).
# Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
#
# 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 of the License, or
# (at your option) any later version.
#
# This program 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; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##############################################################################
### To add a new directory to the tree, first choose whether it is a target
### or a host dependent tool. Then put it into the appropriate list
### (library or tools, host or target), doing a dependency sort. For
### example, gdb requires that byacc (or bison) be built first, so it is in
### the ${host_tools} list after byacc and bison.
# these libraries are used by various programs built for the host environment
#
host_libs="mmalloc libiberty opcodes bfd readline gash db tcl tk tclX itcl tix"
if [ "${enable_gdbgui}" = "yes" ] ; then
host_libs="${host_libs} libgui"
fi
# these tools are built for the host environment
# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
# know that we are building the simulator.
host_tools="texinfo byacc flex bison binutils ld gas gcc sim gdb make patch prms send-pr gprof gdbtest tgas etc expect dejagnu bash m4 autoconf automake ispell grep diff rcs cvs fileutils shellutils time textutils wdiff find emacs emacs19 uudecode hello tar gzip indent recode release sed utils guile perl apache inet gawk findutils sn"
# these libraries are built for the target environment, and are built after
# the host libraries and the host tools (which may be a cross compiler)
#
target_libs="target-libiberty target-libgloss target-newlib target-libio target-librx target-libstdc++ target-libg++"
# these tools are built using the target libs, and are intended to run only
# in the target environment
#
# note: any program that *uses* libraries that are in the "target_libs"
# list belongs in this list. those programs are also very likely
# candidates for the "native_only" list which follows
#
target_tools="target-examples target-groff target-gperf"
################################################################################
## These two lists are of directories that are to be removed from the
## ${configdirs} list for either cross-compilations or for native-
## compilations. For example, it doesn't make that much sense to
## cross-compile Emacs, nor is it terribly useful to compile target-libiberty in
## a native environment.
# directories to be built in the native environment only
#
# This must be a single line because of the way it is searched by grep in
# the code below.
native_only="autoconf automake cvs emacs emacs19 fileutils find gawk grep gzip hello indent ispell m4 rcs recode sed shellutils tar textutils gash uudecode wdiff gprof target-groff guile perl apache inet time bash prms sn gnuserv target-gperf"
# directories to be built in a cross environment only
#
cross_only="target-libgloss target-newlib"
## All tools belong in one of the four categories, and are assigned above
## We assign ${configdirs} this way to remove all embedded newlines. This
## is important because configure will choke if they ever get through.
## ${configdirs} is directories we build using the host tools.
## ${target_configdirs} is directories we build using the target tools.
#
configdirs=`echo ${host_libs} ${host_tools}`
target_configdirs=`echo ${target_libs} ${target_tools}`
################################################################################
srctrigger=move-if-change
srcname="gnu development package"
# This gets set non-empty for some net releases of packages.
appdirs=""
# per-host:
# Work in distributions that contain no compiler tools, like Autoconf.
if [ -d ${srcdir}/config ]; then
case "${host}" in
m68k-hp-hpux*) host_makefile_frag=config/mh-hp300 ;;
m68k-apollo-sysv*) host_makefile_frag=config/mh-apollo68 ;;
m68k-apollo-bsd*) host_makefile_frag=config/mh-a68bsd ;;
m88k-dg-dgux*) host_makefile_frag=config/mh-dgux ;;
m88k-harris-cxux*) host_makefile_frag=config/mh-cxux ;;
m88k-motorola-sysv*) host_makefile_frag=config/mh-delta88;;
mips*-dec-ultrix*) host_makefile_frag=config/mh-decstation ;;
mips*-nec-sysv4*) host_makefile_frag=config/mh-necv4 ;;
mips*-sgi-irix6*) host_makefile_frag=config/mh-irix6 ;;
mips*-sgi-irix5*) host_makefile_frag=config/mh-irix5 ;;
mips*-sgi-irix4*) host_makefile_frag=config/mh-irix4 ;;
mips*-sgi-irix3*) host_makefile_frag=config/mh-sysv ;;
mips*-*-sysv4*) host_makefile_frag=config/mh-sysv4 ;;
mips*-*-sysv*) host_makefile_frag=config/mh-riscos ;;
i[3456]86-*-dgux*) host_makefile_frag=config/mh-dgux386 ;;
i[3456]86-ncr-sysv4.3*) host_makefile_frag=config/mh-ncrsvr43 ;;
i[3456]86-ncr-sysv4*) host_makefile_frag=config/mh-ncr3000 ;;
i[3456]86-*-sco3.2v5*) host_makefile_frag=config/mh-sysv ;;
i[3456]86-*-sco*) host_makefile_frag=config/mh-sco ;;
i[3456]86-*-isc*) host_makefile_frag=config/mh-sysv ;;
i[3456]86-*-solaris2*) host_makefile_frag=config/mh-sysv4 ;;
i[3456]86-*-aix*) host_makefile_frag=config/mh-aix386 ;;
i[3456]86-*-go32*) host_makefile_frag=config/mh-go32 ;;
i[3456]86-*-msdosdjgpp*) host_makefile_frag=config/mh-go32 ;;
*-cygwin32*) host_makefile_frag=config/mh-cygwin32 ;;
*-windows*) host_makefile_frag=config/mh-windows ;;
vax-*-ultrix2*) host_makefile_frag=config/mh-vaxult2 ;;
*-*-solaris2*) host_makefile_frag=config/mh-solaris ;;
m68k-sun-sunos*) host_makefile_frag=config/mh-sun3 ;;
*-hp-hpux[78]*) host_makefile_frag=config/mh-hpux8 ;;
*-hp-hpux*) host_makefile_frag=config/mh-hpux ;;
*-*-hiux*) host_makefile_frag=config/mh-hpux ;;
rs6000-*-lynxos*) host_makefile_frag=config/mh-lynxrs6k ;;
*-*-lynxos*) host_makefile_frag=config/mh-lynxos ;;
*-*-sysv4*) host_makefile_frag=config/mh-sysv4 ;;
*-*-sysv*) host_makefile_frag=config/mh-sysv ;;
esac
fi
# If we aren't going to be using gcc, see if we can extract a definition
# of CC from the fragment.
if [ -z "${CC}" -a "${build}" = "${host}" ]; then
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
found=
for dir in $PATH; do
test -z "$dir" && dir=.
if test -f $dir/gcc; then
found=yes
break
fi
done
IFS="$save_ifs"
if [ -z "${found}" -a -n "${host_makefile_frag}" -a -f "${srcdir}/${host_makefile_frag}" ]; then
xx=`sed -n -e 's/^[ ]*CC[ ]*=[ ]*\(.*\)$/\1/p' < ${srcdir}/${host_makefile_frag}`
if [ -n "${xx}" ] ; then
CC=$xx
fi
fi
fi
# We default to --with-shared on platforms where -fpic is meaningless.
# Well, we don't yet, but we will.
if false && [ "${host}" = "${target}" ] && [ x${enable_shared} = x ]; then
case "${target}" in
alpha-dec-osf*) enable_shared=yes ;;
alpha-*-linux*) enable_shared=yes ;;
mips-sgi-irix5*) enable_shared=yes ;;
*) enable_shared=no ;;
esac
fi
case "${enable_shared}" in
yes) shared=yes ;;
no) shared=no ;;
"") shared=no ;;
*) shared=yes ;;
esac
if [ x${shared} = xyes ]; then
waugh=
case "${host}" in
hppa*) waugh=config/mh-papic ;;
i[3456]86-*) waugh=config/mh-x86pic ;;
sparc64-*) waugh=config/mh-sparcpic ;;
powerpc*-*) waugh=config/mh-ppcpic ;;
alpha-*-linux*) waugh=config/mh-elfalphapic ;;
*) waugh=config/mh-${host_cpu}pic ;;
esac
if [ -f ${srcdir}/${waugh} ]; then
if [ -n "${host_makefile_frag}" ] ; then
cat ${srcdir}/${host_makefile_frag} > mh-frag
cat ${srcdir}/${waugh} >> mh-frag
host_makefile_frag=mh-frag
else
host_makefile_frag=${waugh}
fi
fi
fi
# per-target:
case "${target}" in
v810*) target_makefile_frag=config/mt-v810 ;;
i[3456]86-*-netware*) target_makefile_frag=config/mt-netware ;;
powerpc-*-netware*) target_makefile_frag=config/mt-netware ;;
*-*-linux-gnu) target_makefile_frag=config/mt-linux ;;
esac
skipdirs=
gasdir=gas
use_gnu_ld=
use_gnu_as=
# some tools are so dependent upon X11 that if we're not building with X,
# it's not even worth trying to configure, much less build, that tool.
case ${with_x} in
yes | "") # the default value for this tree is that X11 is available
;;
no)
skipdirs="${skipdirs} tk gash"
;;
*)
echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2
;;
esac
# Some tools are only suitable for building in a "native" situation.
# Those are added when we have a host==target configuration. For cross
# toolchains, we add some directories that should only be useful in a
# cross-compiler.
is_cross_compiler=
if [ x"${host}" = x"${target}" ] ; then
# when doing a native toolchain, don't build the targets
# that are in the 'cross only' list
skipdirs="${skipdirs} ${cross_only}"
is_cross_compiler=no
# Default to --enable-multilib. See similar code below.
if [ x${enable_multilib} = xno ]; then
target_subdir=.
else
target_subdir=libraries
fi
else
# similarly, don't build the targets in the 'native only'
# list when building a cross compiler
skipdirs="${skipdirs} ${native_only}"
is_cross_compiler=yes
target_subdir=${target_alias}
fi
if [ ! -d ${target_subdir} ] ; then
if mkdir ${target_subdir} ; then true
else
echo "'*** could not make ${PWD=`pwd`}/${target_subdir}" 1>&2
exit 1
fi
fi
copy_dirs=
# Handle --with-headers=XXX. The contents of the named directory are
# copied to $(tooldir)/sys-include.
if [ x"${with_headers}" != x ]; then
if [ x${is_cross_compiler} = xno ]; then
echo 1>&2 '***' --with-headers is only supported when cross compiling
exit 1
fi
case "${exec_prefixoption}" in
"") x=${prefix} ;;
*) x=${exec_prefix} ;;
esac
copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
fi
# Handle --with-libs=XXX. Multiple directories are permitted. The
# contents are copied to $(tooldir)/lib.
if [ x"${with_libs}" != x ]; then
if [ x${is_cross_compiler} = xno ]; then
echo 1>&2 '***' --with-libs is only supported when cross compiling
exit 1
fi
# Copy the libraries in reverse order, so that files in the first named
# library override files in subsequent libraries.
case "${exec_prefixoption}" in
"") x=${prefix} ;;
*) x=${exec_prefix} ;;
esac
for l in ${with_libs}; do
copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
done
fi
# If both --with-headers and --with-libs are specified, default to
# --without-newlib.
if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then
if [ x"${with_newlib}" = x ]; then
with_newlib=no
fi
fi
# Recognize --with-newlib/--without-newlib.
if [ x${with_newlib} = xno ]; then
skipdirs="${skipdirs} target-newlib"
elif [ x${with_newlib} = xyes ]; then
skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
fi
# Default to using --with-stabs for certain targets.
if [ x${with_stabs} = x ]; then
case "${target}" in
mips*-*-irix6*)
;;
mips*-*-* | alpha*-*-osf* | i[3456]86*-*-sysv4* | i[3456]86*-*-unixware*)
with_stabs=yes;
withoptions="${withoptions} --with-stabs"
;;
esac
fi
# Handle ${copy_dirs}
set fnord ${copy_dirs}
shift
while [ $# != 0 ]; do
if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
:
else
echo Copying $1 to $2
# Use the install script to create the directory and all required
# parent directories.
if [ -d $2 ]; then
:
else
echo >config.temp
${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
fi
# Copy the directory, assuming we have tar.
# FIXME: Should we use B in the second tar? Not all systems support it.
(cd $1; tar -cf - .) | (cd $2; tar -xpf -)
# It is the responsibility of the user to correctly adjust all
# symlinks. If somebody can figure out how to handle them correctly
# here, feel free to add the code.
echo $1 > $2/COPIED
fi
shift; shift
done
# Configure extra directories which are host specific
case "${host}" in
i[3456]86-*-go32*)
configdirs="$configdirs dosrel" ;;
*-cygwin32*)
configdirs="$configdirs dosrel" ;;
esac
# Remove more programs from consideration, based on the host or
# target this usually means that a port of the program doesn't
# exist yet.
noconfigdirs=""
case "${host}" in
i[3456]86-*-vsta)
noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl apache inet itcl tix db sn gnuserv"
;;
i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*)
noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db sn gnuserv"
;;
*-*-cygwin32)
noconfigdirs="expect dejagnu cvs autoconf automake bison send-pr gprof rcs guile perl texinfo apache inet"
;;
*-*-windows*)
# This is only used to build WinGDB...
# note that powerpc-eabi depends on sim configured before gdb.
configdirs="bfd libiberty opcodes readline sim gdb"
target_configdirs=
;;
ppc*-*-pe)
noconfigdirs="patch diff make tk tcl expect dejagnu cvs autoconf automake texinfo bison send-pr gprof rcs guile perl apache inet itcl tix db sn gnuserv"
;;
esac
case "${target}" in
*-*-netware)
noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-librx target-newlib target-libiberty target-libgloss"
;;
*-*-rtems*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
*-*-vxworks*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
alpha-dec-osf*)
# ld works, but does not support shared libraries. emacs doesn't
# work. newlib is not 64 bit ready. I'm not sure about fileutils.
# gas doesn't generate exception information.
noconfigdirs="$noconfigdirs gas ld emacs fileutils target-newlib target-libgloss"
;;
alpha*-*-*vms*)
noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss"
;;
alpha*-*-linux*)
# newlib is not 64 bit ready
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
# linux has rx in libc
skipdirs="$skipdirs target-librx"
;;
alpha*-*-*)
# newlib is not 64 bit ready
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
arc-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
arm-*-pe*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
arm-*-coff*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
arm-*-riscix*)
noconfigdirs="$noconfigdirs ld target-libgloss"
;;
d10v-*-*)
noconfigdirs="$noconfigdirs target-librx target-libg++ target-libstdc++ target-libio target-libgloss"
;;
h8300*-*-* | \
h8500-*-*)
noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss"
;;
hppa*-*-*elf* | \
hppa*-*-lites*)
# Do configure ld/binutils/gas for this case.
;;
hppa*-*-*)
# HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
# cc is gcc, and on any system a user should be able to link cc to
# whatever they want. FIXME, emacs emacs19).
case "${CC}" in
"" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
*) ;;
esac
noconfigdirs="$noconfigdirs ld shellutils"
;;
i[3456]86-*-go32* | i[3456]-*-msdosdjgpp*)
# but don't build gdb
noconfigdirs="$noconfigdirs gdb target-libg++ target-libstdc++ target-libio target-librx"
;;
*-*-linux*)
# linux has rx in libc
skipdirs="$skipdirs target-librx"
;;
*-*-cygwin32)
target_configdirs="$target_configdirs target-winsup"
noconfigdirs="$noconfigdirs expect target-libgloss"
# always build newlib.
skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
# Can't build gdb for cygwin32 if not native.
case "${host}" in
*-*-cygwin32) ;; # keep gdb tcl tk expect etc.
*) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db sn gnuserv"
;;
esac
;;
i[3456]86-*-pe)
noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx target-libgloss"
;;
i[3456]86-*-sco3.2v5*)
# The linker does not yet know about weak symbols in COFF,
# and is not configured to handle mixed ELF and COFF.
noconfigdirs="$noconfigdirs gprof ld target-libgloss"
;;
i[3456]86-*-sco*)
noconfigdirs="$noconfigdirs gprof target-libgloss"
;;
i[3456]86-*-solaris2*)
# The linker does static linking correctly, but the Solaris C library
# has bugs such that some important functions won't work when statically
# linked. (See man pages for getpwuid, for example.)
noconfigdirs="$noconfigdirs ld target-libgloss"
;;
i[3456]86-*-sysv4*)
# The SYSV4 C compiler doesn't handle Emacs correctly
case "${CC}" in
"" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
*) ;;
esac
# but that's okay since emacs doesn't work anyway
noconfigdirs="$noconfigdirs emacs emacs19 target-libgloss"
;;
mn10200-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
mn10300-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
powerpc-*-aix*)
# copied from rs6000-*-* entry
noconfigdirs="$noconfigdirs gprof cvs target-libgloss"
# This is needed until gcc and ld are fixed to work together.
use_gnu_ld=no
;;
powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
target_configdirs="$target_configdirs target-winsup"
noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix db sn gnuserv"
# always build newlib.
skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
;;
# This is temporary until we can link against shared libraries
powerpcle-*-solaris*)
noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix db sn gnuserv"
;;
rs6000-*-lynxos*)
# The CVS server code doesn't work on the RS/6000
# Newlib makes problems for libg++ in crosses.
noconfigdirs="$noconfigdirs target-newlib gprof cvs"
;;
rs6000-*-aix*)
noconfigdirs="$noconfigdirs gprof"
# This is needed until gcc and ld are fixed to work together.
use_gnu_ld=no
;;
rs6000-*-*)
noconfigdirs="$noconfigdirs gprof"
;;
m68k-apollo-*)
noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss"
;;
mips*-*-irix5*)
# The GNU linker does not support shared libraries.
# emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
noconfigdirs="$noconfigdirs ld gprof emacs target-libgloss"
;;
mips*-*-irix6*)
# The GNU assembler and linker do not support IRIX 6.
# emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
noconfigdirs="$noconfigdirs ld gas gprof emacs target-libgloss"
;;
mips*-dec-bsd*)
noconfigdirs="$noconfigdirs gprof target-libgloss"
;;
mips*-*-bsd*)
noconfigdirs="$noconfigdirs gprof target-libgloss"
;;
mips*-*-*)
noconfigdirs="$noconfigdirs gprof"
;;
romp-*-*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss"
;;
sh-*-*)
case "${host}" in
i[3456]86-*-vsta) ;; # don't add gprof back in
i[3456]86-*-go32*) ;; # don't add gprof back in
i[3456]86-*-msdosdjgpp*) ;; # don't add gprof back in
*) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
esac
noconfigdirs="$noconfigdirs target-libgloss"
;;
sparc-*-sunos4*)
if [ x${is_cross_compiler} != xno ] ; then
noconfigdirs="$noconfigdirs gdb gdbtest target-newlib target-libgloss"
else
use_gnu_ld=no
fi
;;
v810-*-*)
noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libio target-libg++ target-libstdc++ opcodes target-libgloss"
;;
vax-*-vms)
noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss"
;;
vax-*-*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-lynxos*)
# Newlib makes problems for libg++ in crosses.
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-macos* | \
*-*-mpw*)
# Macs want a resource compiler.
configdirs="$configdirs grez"
;;
esac
# targets that need a second pass
case "${target}" in
*-gm-magic*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
esac
# If we aren't building newlib, then don't build libgloss, since libgloss
# depends upon some newlib header files.
case "${noconfigdirs}" in
*target-libgloss*) ;;
*target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
esac
# If we are building a Canadian Cross, discard tools that can not be built
# using a cross compiler. FIXME: These tools should be fixed.
if [ "${build}" != "${host}" ]; then
noconfigdirs="$noconfigdirs expect dejagnu"
fi
# Make sure we don't let GNU ld be added if we didn't want it.
if [ x$with_gnu_ld = xno ]; then
use_gnu_ld=no
noconfigdirs="$noconfigdirs ld"
fi
# Make sure we don't let GNU as be added if we didn't want it.
if [ x$with_gnu_as = xno ]; then
use_gnu_as=no
noconfigdirs="$noconfigdirs gas"
fi
# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
# $target_configdirs.
# If we have the source for $noconfigdirs entries, add them to $notsupp.
notsupp=""
for dir in . $skipdirs $noconfigdirs ; do
dirname=`echo $dir | sed -e s/target-//g`
if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
if [ -r $srcdir/$dirname/configure ] \
|| [ -r $srcdir/$dirname/configure.in ]; then
if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
true
else
notsupp="$notsupp $dir"
fi
fi
fi
if [ $dir != . ] && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
if [ -r $srcdir/$dirname/configure ] \
|| [ -r $srcdir/$dirname/configure.in ]; then
if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
true
else
notsupp="$notsupp $dir"
fi
fi
fi
done
# Sometimes the tools are distributed with libiberty but with no other
# libraries. In that case, we don't want to build target-libiberty.
if [ -n "${target_configdirs}" ]; then
others=
for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
if [ "$i" != "libiberty" ]; then
if [ -r $srcdir/$i/configure ] || [ -r $srcdir/$i/configure.in ]; then
others=yes;
break;
fi
fi
done
if [ -z "${others}" ]; then
target_configdirs=
fi
fi
# Deconfigure all subdirectories, in case we are changing the
# configuration from one where a subdirectory is supported to one where it
# is not.
if [ -z "${norecursion}" -a -n "${configdirs}" ]; then
for i in `echo ${configdirs} | sed -e s/target-//g` ; do
rm -f $i/Makefile
done
fi
if [ -z "${norecursion}" -a -n "${target_configdirs}" ]; then
for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
rm -f ${target_subdir}/$i/Makefile
done
fi
# Produce a warning message for the subdirs we can't configure.
# This isn't especially interesting in the Cygnus tree, but in the individual
# FSF releases, it's important to let people know when their machine isn't
# supported by the one or two programs in a package.
if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
# If $appdirs is non-empty, at least one of those directories must still
# be configured, or we error out. (E.g., if the gas release supports a
# specified target in some subdirs but not the gas subdir, we shouldn't
# pretend that all is well.)
if [ -n "$appdirs" ]; then
for dir in $appdirs ; do
if [ -r $dir/Makefile.in ]; then
if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
appdirs=""
break
fi
if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
appdirs=""
break
fi
fi
done
if [ -n "$appdirs" ]; then
echo "*** This configuration is not supported by this package." 1>&2
exit 1
fi
fi
# Okay, some application will build, or we don't care to check. Still
# notify of subdirs not getting built.
echo "*** This configuration is not supported in the following subdirectories:" 1>&2
echo " ${notsupp}" 1>&2
echo " (Any other directories should still work fine.)" 1>&2
fi
# Set with_gnu_as and with_gnu_ld as appropriate.
#
# This is done by determining whether or not the appropriate directory
# is available, and by checking whether or not specific configurations
# have requested that this magic not happen.
#
# The command line options always override the explicit settings in
# configure.in, and the settings in configure.in override this magic.
#
# If the default for a toolchain is to use GNU as and ld, and you don't
# want to do that, then you should use the --without-gnu-as and
# --without-gnu-ld options for the configure script.
if [ x${use_gnu_as} = x ] ; then
if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
with_gnu_as=yes
withoptions="$withoptions --with-gnu-as"
fi
fi
if [ x${use_gnu_ld} = x ] ; then
if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
with_gnu_ld=yes
withoptions="$withoptions --with-gnu-ld"
fi
fi
# If using newlib, add --with-newlib to the withoptions so that gcc/configure
# can detect this case.
if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 && [ -d ${srcdir}/newlib ] ; then
with_newlib=yes
withoptions="$withoptions --with-newlib"
fi
if [ x${shared} = xyes ]; then
case "${target}" in
hppa*) target_makefile_frag=config/mt-papic ;;
i[3456]86-*) target_makefile_frag=config/mt-x86pic ;;
powerpc*-*) target_makefile_frag=config/mt-ppcpic ;;
alpha-*-linux*) target_makefile_frag=config/mt-elfalphapic ;;
*) target_makefile_frag=config/mt-${target_cpu}pic ;;
esac
fi
# post-target:
# Make sure that the compiler is able to generate an executable. If it
# can't, we are probably in trouble. We don't care whether we can run the
# executable--we might be using a cross compiler--we only care whether it
# can be created. At this point the main configure script has set CC.
echo "int main () { return 0; }" > conftest.c
${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
if [ $? = 0 ] && [ -s conftest ]; then
:
else
echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
echo 1>&2 "*** You must set the environment variable CC to a working compiler."
rm -f conftest*
exit 1
fi
rm -f conftest*
# The Solaris /usr/ucb/cc compiler does not appear to work.
case "${host}" in
sparc-sun-solaris2*)
CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
if [ "`/usr/bin/which $CCBASE`" = "/usr/ucb/cc" ] ; then
could_use=
[ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
if [ -d /opt/cygnus/bin ] ; then
if [ "$could_use" = "" ] ; then
could_use="/opt/cygnus/bin"
else
could_use="$could_use or /opt/cygnus/bin"
fi
fi
if [ "$could_use" = "" ] ; then
echo "Warning: compilation may fail because you're using"
echo "/usr/ucb/cc. You should change your PATH or CC "
echo "variable and rerun configure."
else
echo "Warning: compilation may fail because you're using"
echo "/usr/ucb/cc, when you should use the C compiler from"
echo "$could_use. You should change your"
echo "PATH or CC variable and rerun configure."
fi
fi
;;
esac
# If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
# binutils tools will find libbfd.so.
if [ "${shared}" = "yes" ]; then
sed -e 's/^SET_LIB_PATH[ ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \
Makefile > Makefile.tem
rm -f Makefile
mv -f Makefile.tem Makefile
case "${host}" in
*-*-hpux*)
sed -e 's/RPATH_ENVVAR[ ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
Makefile > Makefile.tem
rm -f Makefile
mv -f Makefile.tem Makefile
;;
esac
fi
# If we are building for a cygwin32 host, then set INSTALL_PROGRAM_ARGS to
# -x. This will cause programs to be installed with .exe extensions.
case "${host}" in
*-*-cygwin32*)
sed -e 's/^INSTALL_PROGRAM_ARGS[ ]*=.*$/INSTALL_PROGRAM_ARGS = -x/' \
Makefile > Makefile.tem
rm -f Makefile
mv -f Makefile.tem Makefile
;;
esac
# Record target_configdirs and the configure arguments in Makefile.
target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
targargs=`echo "${arguments}" | \
sed -e 's/--norecursion//' \
-e 's/--cache[a-z-]*=[^ ]*//' \
-e 's/--ho[a-z-]*=[^ ]*//' \
-e 's/--bu[a-z-]*=[^ ]*//' \
-e 's/--ta[a-z-]*=[^ ]*//'`
# Passing a --with-cross-host argument lets the target libraries know
# whether they are being built with a cross-compiler or being built
# native. However, it would be better to use other mechanisms to make the
# sorts of decisions they want to make on this basis. Please consider
# this option to be deprecated. FIXME.
if [ x${is_cross_compiler} = xyes ]; then
targargs="--with-cross-host=${host_alias} ${targargs}"
fi
# Default to --enable-multilib.
if [ x${enable_multilib} = x ]; then
targargs="--enable-multilib ${targargs}"
fi
targargs="--host=${target_alias} --build=${build_alias} ${targargs}"
sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
-e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
-e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
Makefile > Makefile.tem
rm -f Makefile
mv -f Makefile.tem Makefile
#
# Local Variables:
# fill-column: 131
# End:
#

407
etc/ChangeLog Normal file
View File

@@ -0,0 +1,407 @@
Fri Nov 21 12:54:58 1997 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in: Add --no-split argument to avoid creating files
with names longer than 14 characters.
Tue Oct 7 16:27:34 1997 Manfred Hollstein <manfred@s-direktnet.de>
* aclocal.m4: Substitute INSTALL.
* configure: Re-built.
Mon Sep 15 22:53:01 1997 Jeffrey A Law (law@cygnus.com)
* aclocal.m4: New file with replacement for AC_PROG_INSTALL.
* configure.in: Use EGCS_PROG_INSTALL.
Tue Jun 17 15:50:23 1997 Angela Marie Thomas (angela@cygnus.com)
* Install.in: Add /usr/bsd to PATH for Irix (home of compress)
Thu Jun 12 13:47:00 1997 Angela Marie Thomas (angela@cygnus.com)
* Install.in (show_exec_prefix_msg): fix quoting
Wed Jun 4 15:31:43 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
* rebuilding.texi: Removed.
Sat May 24 18:02:20 1997 Angela Marie Thomas (angela@cygnus.com)
* cross-tools-fix: Remove host check since it doesn't matter
for this case.
* Install.in (guess_system): clean up more unused hosts.
* Install.in, cross-tools-fix, comp-tools-fix, comp-tools-verify:
Hack for host check to not warn the user for certain cases.
Fri May 23 23:46:10 1997 Angela Marie Thomas (angela@cygnus.com)
* subst-strings: Remove a lot of unused code
* Install.in: Remove reference to TAPEdflt, use variables instead of
string substitution when able.
Fri Apr 11 17:25:52 1997 Ian Lance Taylor <ian@cygnus.com>
* configure.in: Change file named in AC_INIT to Makefile.in.
* configure: Rebuild.
Fri Apr 11 18:12:42 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
* Install.in (guess_system): Back out change to INSTALLHOST to
call all IRIX systems "mips-sgi-irix4"
* Makefile.in: Remove references to configure.texi and cfg-paper.texi.
Thu Apr 10 23:26:45 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
* srctree.texi, emacs-relnotes.texi, cfg-paper.texi: Remove.
* Install.in: Remove Ultrix-specific hacks.
Update Cygnus phone numbers.
(guess_system): Remove some old systems (Ultrix, OSF1 v1 & 2,
m68k-HPUX, m68k SunOS, etc.)
(show_gnu_root_msg): Remove.
Removed all the remove option code.
Thu Apr 10 23:23:33 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
* configure.man, configure.texi: Remote.
Mon Apr 7 18:15:00 1997 Brendan Kehoe <brendan@cygnus.com>
* Fix the version string for OSF1 4.0 to recognize either
V4.* or X4.*
Mon Apr 7 15:34:47 1997 Ian Lance Taylor <ian@cygnus.com>
* standards.texi, make-stds.texi: Update to current FSF versions.
Tue Apr 1 16:19:31 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
* Install.in (show_exec_prefix_msg): GDBTK_FILENAME to
GDBTK_LIBRARY, also update TCL_LIBRARY and TK_LIBRARY.
Tue Nov 19 15:36:14 1996 Doug Evans <dje@canuck.cygnus.com>
* make-rel-sym-tree: New file.
Wed Oct 23 00:34:07 1996 Angela Marie Thomas (angela@cygnus.com)
* Lots of patches from progressive...
* Install.in: restore DDOPTS for AIX 4.x
* Install.in, subst-strings: add case for DG Aviion
* subst-strings: fix typo in INSTALLdir var setting
* comp-tools-verify: set SHLIB_PATH for shared libs
* Install.in, subst-strings: add case for solaris2.5
* Install.in: fix regression for hppa1.1 check
* comp-tools-fix: set LD_LIBRARY_PATH
* comp-tools-fix: If fixincludes fixes /usr/include/limits.h,
install it as syslimits.h.
Wed Oct 16 19:20:42 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* Install.in (guess_system): Treat powerpc-ibm-aix4.1 the same as
rs6000-ibm-aix4.1, since the compiler now uses common mode by
default.
Wed Oct 2 15:39:07 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
* configure.in (AC_PROG_INSTALL): Added.
* Makefile.in (distclean): Remove config.cache.
Wed Oct 2 14:33:58 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
* configure.in: Switch to autoconf configure.in.
* configure: New.
* Makefile.in: Use autoconf-substituted values.
Tue Jun 25 18:56:08 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
* Makefile.in (datadir): Changed to $(prefix)/share.
Fri Mar 29 11:38:01 1996 J.T. Conklin (jtc@lisa.cygnus.com)
* configure.man: Changed to be recognized by catman -w on Solaris.
Wed Dec 6 15:40:28 1995 Doug Evans <dje@canuck.cygnus.com>
* comp-tools-fix (fixincludes): Define FIXPROTO_DEFINES from
.../install-tools/fixproto-defines.
Sun Nov 12 19:31:27 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* comp-tools-verify (verify_cxx_initializers): delete argv,
argc declarations, add -static to compile line.
(verify_cxx_hello_world): delete argv, argc declarations, add
-static to compile line.
Wed Sep 20 13:21:52 1995 Ian Lance Taylor <ian@cygnus.com>
* Makefile.in (maintainer-clean): New target, synonym for
realclean.
Thu Sep 14 17:19:58 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* Install.in (show_exec_prefix_msg): print out paths for
TCL_LIBRARY, TK_LIBRARY and GDBTK_FILENAME.
Mon Aug 28 17:25:49 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* Install.in (PATH): add /usr/ucb to $PATH (for SunOS 4.1.x).
Tue Aug 15 21:51:58 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* Install.in (guess_system): Match OSF/1 v3.x as the same as
v2.x--v2.x binaries are upward compatible.
Tue Aug 15 21:46:54 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* Install.in (guess_system): recognize HP 9000/800 systems as the
same as HP 9000/700 systems.
Tue Aug 8 13:11:56 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
* Install.in: For emacs, run show_emacs_alternate_msg and exit.
(show_emacs_alternate_msg): New message saying how emacs can't be
installed in an alternate prefix.
Thu Jun 8 00:42:56 1995 Angela Marie Thomas <angela@cirdan.cygnus.com>
* subst-strings: change du commands to $BINDIR/. & $SRCDIR/. just
in case they are symlinks.
Tue Apr 18 14:23:10 1995 J.T. Conklin <jtc@rtl.cygnus.com>
* cdk-fix: Extracted table of targets that don't need their
headers fixed from gcc's configure script.
* cdk-fix, cdk-verify: Use ${HOST} instead of ||HOSTstr||
* cdk-fix, cdk-verify: New files, install script fragments used
for Cygnus Developer's Kit.
* Install.in (do_mkdir): New function.
* Install.in: Added support for --with and --without options.
Changed so that tape commands are not run when extracting
from a file.
(do_mt): Changed to take only one argument.
Wed Mar 29 11:16:38 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* Install.in: catch UNAME==alpha-dec-osf2.x and correct entry for
alpha-dec-osf1.x
Fri Jan 27 12:04:29 1995 J.T. Conklin <jtc@rtl.cygnus.com>
* subst-strings (mips-sgi-irix5): New entry in table.
Thu Jan 19 12:15:44 1995 J.T. Conklin <jtc@rtl.cygnus.com>
* Install.in: Major rewrite, bundle dependent code (for example,
fixincludes for comp-tools) will be inserted into the Install
script when it is generated.
Tue Jan 17 16:51:32 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
* Makefile.in (Makefile): Rebuild using $(SHELL).
Thu Nov 3 19:30:33 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
* Makefile.in (install-info): Depend on info.
Fri Aug 19 16:16:38 1994 Jason Molenda (crash@phydeaux.cygnus.com)
* Install.in: set $FIX_HEADER so fixproto can find fix-header.
Fri May 6 16:18:58 1994 Jason Molenda (crash@sendai.cygnus.com)
* Makefile.in (install-info): add a semicolon in the if statement.
Fri Apr 29 16:56:07 1994 David J. Mackenzie (djm@rtl.cygnus.com)
* cfg-paper.texi: Update some outdated information.
* Makefile.in (install-info): Pass file, not directory, as last
arg to INSTALL_DATA.
(uninstall): New target.
Thu Apr 28 14:42:22 1994 David J. Mackenzie (djm@rtl.cygnus.com)
* configure.texi: Comment out @smallbook.
* Makefile.in: Define TEXI2DVI and TEXIDIR, and use the latter.
Remove info files in realclean, not clean, per coding standards.
Remove TeX output in clean.
Tue Apr 26 17:18:03 1994 Jason Molenda (crash@sendai.cygnus.com)
* Install.in: fixincludes output is actually put in fixincludes.log,
but echo'ed messages claim it is fixinc.log. This is the same
messages as I logged in March 4 1994, but for some reason we found
the change hadn't been done. I'll have to dig through the logs
and find out what I really did do that day. :)
Mon Apr 25 20:28:19 1994 Jason Molenda (crash@sendai.cygnus.com)
* Install.in: use eval to call do_mt() for Ultrix brokenness.
Mon Apr 25 20:00:00 1994 Jason Molenda (crash@sendai.cygnus.com)
* Install.in(do_mt): exit with error status 1 if # of parameters
!= 3.
Mon Apr 25 19:42:36 1994 Jason Molenda (crash@sendai.cygnus.com)
* Install.in: lose TAPE_FORWARD and TAPE_REWIND, add do_mt()
to do all tape movement operations. Currently untested. Addresses
PR # 4886 from bull.
* Install.in: add 1994 to the copyright thing.
Fri Apr 22 19:05:13 1994 David J. Mackenzie (djm@rtl.cygnus.com)
* standards.texi: Update from FSF.
Fri Apr 22 15:46:10 1994 Jason Molenda (crash@cygnus.com)
* Install.in: Add $DDOPTS, has ``bs=124b'' for all systems except
AIX (some versions of AIX don't understand bs=124b. Silly OS).
Mon Apr 4 22:55:05 1994 Jason Molenda (crash@sendai.cygnus.com)
* Install.in: null out $TOOLS before adding stuff to it
non-destructively.
Wed Mar 30 21:45:35 1994 David J. Mackenzie (djm@rtl.cygnus.com)
* standards.texi: Fix typo.
* configure.texi, configure.man: Document --disable-.
Mon Mar 28 13:22:15 1994 David J. Mackenzie (djm@rtl.cygnus.com)
* standards.texi: Update from FSF.
Sat Mar 26 09:21:44 1994 David J. Mackenzie (djm@rtl.cygnus.com)
* standards.texi, make-stds.texi: Update from FSF.
Fri Mar 25 22:59:45 1994 David J. Mackenzie (djm@rtl.cygnus.com)
* configure.texi, configure.man: Document --enable-* options.
Wed Mar 23 23:38:24 1994 Jason Molenda (crash@sendai.cygnus.com)
* Install.in: set CPP to be gcc -E for fixincludes.
Wed Mar 23 13:42:48 1994 Jason Molenda (crash@sendai.cygnus.com)
* Install.in: set PATH to $PATH:/bin:/usr/bin so we can pick
up native tools even if the user doesn't have them in his
path.
* Install.in: ``hppa-1.1-hp-hpux'' -> ``hppa1.1-hp-hpux''.
Tue Mar 15 22:09:20 1994 Jason Molenda (crash@sendai.cygnus.com)
* Install.in: TAPE_REWIND and TAPE_FORWARD variables for Unixunaware,
added switch statement to detect if system is Unixunaware.
Fri Mar 4 12:10:30 1994 Jason Molenda (crash@sendai.cygnus.com)
* Install.in: fixincludes output is actually put in fixincludes.log,
but echo'ed messages claim it is fixinc.log.
Wed Nov 3 02:58:02 1993 Jeffrey Osier (jeffrey@thepub.cygnus.com)
* subst-strings: output TEXBUNDLE for more install notes matching
* install-texi.in: PRMS info now exists
Tue Oct 26 16:57:12 1993 K. Richard Pixley (rich@sendai.cygnus.com)
* subst-strings: match solaris*. Also, add default case to catch
and error out for unrecognized systems.
Thu Aug 19 18:21:31 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
* Install.in: handle the new fixproto work
Mon Jul 19 12:05:41 1993 david d `zoo' zuhn (zoo@cirdan.cygnus.com)
* Install.in: remove "MT=tctl" for AIX (not needed, and barely
worked anyway)
Mon Jun 14 19:09:22 1993 Jeffrey Osier (jeffrey@cygnus.com)
* subst-strings: changed HOST to recognize Solaris for install notes
Thu Jun 10 16:01:25 1993 Jeffrey Osier (jeffrey@cygnus.com)
* dos-inst.texi: new file.
Wed Jun 9 19:23:59 1993 Jeffrey Osier (jeffrey@rtl.cygnus.com)
* install-texi.in: added conditionals (nearly complete)
cleaned up
added support for other releases (not done)
Wed Jun 9 15:53:58 1993 Jim Kingdon (kingdon@cygnus.com)
* Makefile.in (install-info): Use INSTALL_DATA.
({dist,real}clean): Also delete Makefile and config.status.
Fri Jun 4 17:09:56 1993 Jeffrey Osier (jeffrey@cygnus.com)
* subst-strings: added data for OS_STRING
* subst-strings: added support for OS_STRING
Thu Jun 3 00:37:01 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* Install.in: pull COPYING and COPYING.LIB off of the tape
Tue Jun 1 16:52:08 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* subst-strings: replace RELEASE_DIR too
Mon Mar 22 23:55:27 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* Makefile.in: add installcheck target
Wed Mar 17 02:21:15 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* Install.in: fix 'source only' extraction bug where it looked for
the src dir under H-<host>/src instead of src; also remove stray
reference to EMACSHIBIN
Mon Mar 15 01:25:45 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* make-stds.texi: added 'installcheck' to the standard targets
Tue Mar 9 19:48:28 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* standards.texi: added INFO-DIR-ENTRY, updated version from the FSF
Tue Feb 9 12:40:23 1993 Ian Lance Taylor (ian@cygnus.com)
* Makefile.in (standards.info): Added -I$(srcdir) to find
make-stds.texi.
Mon Feb 1 16:32:56 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* standards.texi: updated to latest FSF version, which includes:
* make-stds.texi: new file
Mon Nov 30 01:31:40 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* install-texi.in, relnotes.texi, intro.texi: changed Cygnus phone
numbers from the old Palo Alto ones to the new Mtn. View numbers
Mon Nov 16 16:50:43 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* Makefile.in: define $(RM) to "rm -f"
Sun Oct 11 16:05:48 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* intro.texi: added INFO-DIR-ENTRY

88
etc/Makefile.in Normal file
View File

@@ -0,0 +1,88 @@
#
# Makefile.in for etc
#
prefix = @prefix@
exec_prefix = @exec_prefix@
srcdir = @srcdir@
VPATH = @srcdir@
bindir = @bindir@
libdir = @libdir@
tooldir = $(libdir)
datadir = @datadir@
mandir = @mandir@
man1dir = $(mandir)/man1
man2dir = $(mandir)/man2
man3dir = $(mandir)/man3
man4dir = $(mandir)/man4
man5dir = $(mandir)/man5
man6dir = $(mandir)/man6
man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
man9dir = $(mandir)/man9
infodir = @infodir@
SHELL = /bin/sh
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
# Where to find texinfo.tex to format documentation with TeX.
TEXIDIR = $(srcdir)/../texinfo
#### Host, target, and site specific Makefile fragments come in here.
###
INFOFILES = standards.info
DVIFILES = standards.dvi
all:
install:
uninstall:
info: $(INFOFILES)
install-info: info
if test ! -f standards.info ; then cd $(srcdir); fi; \
for i in standards.info*; do \
$(INSTALL_DATA) $$i $(infodir)/$$i; \
done
dvi: $(DVIFILES)
standards.info: $(srcdir)/standards.texi
$(MAKEINFO) --no-split -I$(srcdir) -o standards.info $(srcdir)/standards.texi
standards.dvi: $(srcdir)/standards.texi
TEXINPUTS=$(TEXIDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/standards.texi
clean:
rm -f *.aux *.cp *.cps *.dvi *.fn *.fns *.ky *.kys *.log
rm -f *.pg *.pgs *.toc *.tp *.tps *.vr *.vrs
mostlyclean: clean
distclean: clean
rm -f Makefile config.status config.cache
maintainer-clean realclean: distclean
rm -f *.info*
Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)
$(SHELL) ./config.status
## these last targets are for standards.texi conformance
dist:
check:
installcheck:
TAGS:

63
etc/aclocal.m4 vendored Normal file
View File

@@ -0,0 +1,63 @@
AC_DEFUN(EGCS_PROG_INSTALL,
[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
AC_MSG_CHECKING(for a BSD compatible install)
if test -z "$INSTALL"; then
AC_CACHE_VAL(ac_cv_path_install,
[ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
# Account for people who put trailing slashes in PATH elements.
case "$ac_dir/" in
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
for ac_prog in ginstall scoinst install; do
if test -f $ac_dir/$ac_prog; then
if test $ac_prog = install &&
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
# OSF/1 installbsd also uses dspmsg, but is usable.
:
else
ac_cv_path_install="$ac_dir/$ac_prog -c"
break 2
fi
fi
done
;;
esac
done
IFS="$ac_save_IFS"
])dnl
if test "${ac_cv_path_install+set}" = set; then
INSTALL="$ac_cv_path_install"
else
# As a last resort, use the slow shell script. We don't cache a
# path for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the path is relative.
INSTALL="$ac_install_sh"
fi
fi
dnl We do special magic for INSTALL instead of AC_SUBST, to get
dnl relative paths right.
AC_MSG_RESULT($INSTALL)
AC_SUBST(INSTALL)dnl
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
AC_SUBST(INSTALL_PROGRAM)dnl
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
AC_SUBST(INSTALL_DATA)dnl
])

855
etc/configure vendored Executable file
View File

@@ -0,0 +1,855 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.12.1
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
# Defaults:
ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
# Initialize some variables set by options.
# The variables have the same names as the options, with
# dashes changed to underlines.
build=NONE
cache_file=./config.cache
exec_prefix=NONE
host=NONE
no_create=
nonopt=NONE
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
target=NONE
verbose=
x_includes=NONE
x_libraries=NONE
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datadir='${prefix}/share'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
libdir='${exec_prefix}/lib'
includedir='${prefix}/include'
oldincludedir='/usr/include'
infodir='${prefix}/info'
mandir='${prefix}/man'
# Initialize some other variables.
subdirs=
MFLAGS= MAKEFLAGS=
SHELL=${CONFIG_SHELL-/bin/sh}
# Maximum number of lines to put in a shell here document.
ac_max_here_lines=12
ac_prev=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval "$ac_prev=\$ac_option"
ac_prev=
continue
fi
case "$ac_option" in
-*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) ac_optarg= ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
case "$ac_option" in
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir="$ac_optarg" ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build="$ac_optarg" ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file="$ac_optarg" ;;
-datadir | --datadir | --datadi | --datad | --data | --dat | --da)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
| --da=*)
datadir="$ac_optarg" ;;
-disable-* | --disable-*)
ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
{ echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
fi
ac_feature=`echo $ac_feature| sed 's/-/_/g'`
eval "enable_${ac_feature}=no" ;;
-enable-* | --enable-*)
ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
{ echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
fi
ac_feature=`echo $ac_feature| sed 's/-/_/g'`
case "$ac_option" in
*=*) ;;
*) ac_optarg=yes ;;
esac
eval "enable_${ac_feature}='$ac_optarg'" ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix="$ac_optarg" ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
-help | --help | --hel | --he)
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat << EOF
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
--cache-file=FILE cache test results in FILE
--help print this message
--no-create do not create output files
--quiet, --silent do not print \`checking...' messages
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[same as prefix]
--bindir=DIR user executables in DIR [EPREFIX/bin]
--sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
--libexecdir=DIR program executables in DIR [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data in DIR
[PREFIX/share]
--sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data in DIR
[PREFIX/com]
--localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
--libdir=DIR object code libraries in DIR [EPREFIX/lib]
--includedir=DIR C header files in DIR [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
--infodir=DIR info documentation in DIR [PREFIX/info]
--mandir=DIR man documentation in DIR [PREFIX/man]
--srcdir=DIR find the sources in DIR [configure dir or ..]
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM
run sed PROGRAM on installed program names
EOF
cat << EOF
Host type:
--build=BUILD configure for building on BUILD [BUILD=HOST]
--host=HOST configure for HOST [guessed]
--target=TARGET configure for TARGET [TARGET=HOST]
Features and packages:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--x-includes=DIR X include files are in DIR
--x-libraries=DIR X library files are in DIR
EOF
if test -n "$ac_help"; then
echo "--enable and --with options recognized:$ac_help"
fi
exit 0 ;;
-host | --host | --hos | --ho)
ac_prev=host ;;
-host=* | --host=* | --hos=* | --ho=*)
host="$ac_optarg" ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir="$ac_optarg" ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir="$ac_optarg" ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir="$ac_optarg" ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir="$ac_optarg" ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst \
| --locals | --local | --loca | --loc | --lo)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* \
| --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
localstatedir="$ac_optarg" ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir="$ac_optarg" ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir="$ac_optarg" ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix="$ac_optarg" ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix="$ac_optarg" ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix="$ac_optarg" ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name="$ac_optarg" ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir="$ac_optarg" ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir="$ac_optarg" ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site="$ac_optarg" ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir="$ac_optarg" ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir="$ac_optarg" ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target="$ac_optarg" ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
echo "configure generated by autoconf version 2.12.1"
exit 0 ;;
-with-* | --with-*)
ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
{ echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
fi
ac_package=`echo $ac_package| sed 's/-/_/g'`
case "$ac_option" in
*=*) ;;
*) ac_optarg=yes ;;
esac
eval "with_${ac_package}='$ac_optarg'" ;;
-without-* | --without-*)
ac_package=`echo $ac_option|sed -e 's/-*without-//'`
# Reject names that are not valid shell variable names.
if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
{ echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
fi
ac_package=`echo $ac_package| sed 's/-/_/g'`
eval "with_${ac_package}=no" ;;
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes="$ac_optarg" ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries="$ac_optarg" ;;
-*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
;;
*)
if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
echo "configure: warning: $ac_option: invalid host type" 1>&2
fi
if test "x$nonopt" != xNONE; then
{ echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
fi
nonopt="$ac_option"
;;
esac
done
if test -n "$ac_prev"; then
{ echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
fi
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
# File descriptor usage:
# 0 standard input
# 1 file creation
# 2 errors and warnings
# 3 some systems may open it to /dev/tty
# 4 used on the Kubota Titan
# 6 checking for... messages and results
# 5 compiler messages saved in config.log
if test "$silent" = yes; then
exec 6>/dev/null
else
exec 6>&1
fi
exec 5>./config.log
echo "\
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
" 1>&5
# Strip out --no-create and --no-recursion so they do not pile up.
# Also quote any args containing shell metacharacters.
ac_configure_args=
for ac_arg
do
case "$ac_arg" in
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c) ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
*" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
ac_configure_args="$ac_configure_args '$ac_arg'" ;;
*) ac_configure_args="$ac_configure_args $ac_arg" ;;
esac
done
# NLS nuisances.
# Only set these to C if already set. These must not be set unconditionally
# because not all systems understand e.g. LANG=C (notably SCO).
# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
# Non-C LC_CTYPE values break the ctype check.
if test "${LANG+set}" = set; then LANG=C; export LANG; fi
if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -rf conftest* confdefs.h
# AIX cpp loses on an empty file, so make sure it contains at least a newline.
echo > confdefs.h
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
ac_unique_file=Makefile.in
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then its parent.
ac_prog=$0
ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
srcdir=$ac_confdir
if test ! -r $srcdir/$ac_unique_file; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r $srcdir/$ac_unique_file; then
if test "$ac_srcdir_defaulted" = yes; then
{ echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
else
{ echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
fi
fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
# Prefer explicitly selected file to automatically selected ones.
if test -z "$CONFIG_SITE"; then
if test "x$prefix" != xNONE; then
CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
else
CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
echo "loading site script $ac_site_file"
. "$ac_site_file"
fi
done
if test -r "$cache_file"; then
echo "loading cache $cache_file"
. $cache_file
else
echo "creating cache $cache_file"
> $cache_file
fi
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
ac_n= ac_c='
' ac_t=' '
else
ac_n=-n ac_c= ac_t=
fi
else
ac_n= ac_c='\c' ac_t=
fi
ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
if test -f $ac_dir/install-sh; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install-sh -c"
break
elif test -f $ac_dir/install.sh; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install.sh -c"
break
fi
done
if test -z "$ac_aux_dir"; then
{ echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
fi
ac_config_guess=$ac_aux_dir/config.guess
ac_config_sub=$ac_aux_dir/config.sub
ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
echo "configure:554: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
# Account for people who put trailing slashes in PATH elements.
case "$ac_dir/" in
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
for ac_prog in ginstall scoinst install; do
if test -f $ac_dir/$ac_prog; then
if test $ac_prog = install &&
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
# OSF/1 installbsd also uses dspmsg, but is usable.
:
else
ac_cv_path_install="$ac_dir/$ac_prog -c"
break 2
fi
fi
done
;;
esac
done
IFS="$ac_save_IFS"
fi
if test "${ac_cv_path_install+set}" = set; then
INSTALL="$ac_cv_path_install"
else
# As a last resort, use the slow shell script. We don't cache a
# path for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the path is relative.
INSTALL="$ac_install_sh"
fi
fi
echo "$ac_t""$INSTALL" 1>&6
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
trap '' 1 2 15
cat > confcache <<\EOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs. It is not useful on other systems.
# If it contains results you don't want to keep, you may remove or edit it.
#
# By default, configure uses ./config.cache as the cache file,
# creating it if it does not exist already. You can give configure
# the --cache-file=FILE option to use a different cache file; that is
# what configure does when it calls configure scripts in
# subdirectories, so they share the cache.
# Giving --cache-file=/dev/null disables caching, for debugging configure.
# config.status only pays attention to the cache file if you give it the
# --recheck option to rerun configure.
#
EOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, don't put newlines in cache variables' values.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(set) 2>&1 |
case `(ac_space=' '; set) 2>&1` in
*ac_space=\ *)
# `set' does not quote correctly, so add quotes (double-quote substitution
# turns \\\\ into \\, and sed turns \\ into \).
sed -n \
-e "s/'/'\\\\''/g" \
-e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
;;
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
;;
esac >> confcache
if cmp -s $cache_file confcache; then
:
else
if test -w $cache_file; then
echo "updating cache $cache_file"
cat confcache > $cache_file
else
echo "not updating unwritable cache $cache_file"
fi
fi
rm -f confcache
trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
# Any assignment to VPATH causes Sun make to only execute
# the first set of double-colon rules, so remove it if not needed.
# If there is a colon in the path, we need to keep it.
if test "x$srcdir" = x.; then
ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
fi
trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
cat > conftest.defs <<\EOF
s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
s%\[%\\&%g
s%\]%\\&%g
s%\$%$$%g
EOF
DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
rm -f conftest.defs
# Without the "./", some shells look in PATH for config.status.
: ${CONFIG_STATUS=./config.status}
echo creating $CONFIG_STATUS
rm -f $CONFIG_STATUS
cat > $CONFIG_STATUS <<EOF
#! /bin/sh
# Generated automatically by configure.
# Run this file to recreate the current configuration.
# This directory was configured as follows,
# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
#
# $0 $ac_configure_args
#
# Compiler output produced by configure, useful for debugging
# configure, is in ./config.log if it exists.
ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
for ac_option
do
case "\$ac_option" in
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
echo "$CONFIG_STATUS generated by autoconf version 2.12.1"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
*) echo "\$ac_cs_usage"; exit 1 ;;
esac
done
ac_given_srcdir=$srcdir
trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
# Protect against being on the right side of a sed subst in config.status.
sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
$ac_vpsub
$extrasub
s%@SHELL@%$SHELL%g
s%@CFLAGS@%$CFLAGS%g
s%@CPPFLAGS@%$CPPFLAGS%g
s%@CXXFLAGS@%$CXXFLAGS%g
s%@DEFS@%$DEFS%g
s%@LDFLAGS@%$LDFLAGS%g
s%@LIBS@%$LIBS%g
s%@exec_prefix@%$exec_prefix%g
s%@prefix@%$prefix%g
s%@program_transform_name@%$program_transform_name%g
s%@bindir@%$bindir%g
s%@sbindir@%$sbindir%g
s%@libexecdir@%$libexecdir%g
s%@datadir@%$datadir%g
s%@sysconfdir@%$sysconfdir%g
s%@sharedstatedir@%$sharedstatedir%g
s%@localstatedir@%$localstatedir%g
s%@libdir@%$libdir%g
s%@includedir@%$includedir%g
s%@oldincludedir@%$oldincludedir%g
s%@infodir@%$infodir%g
s%@mandir@%$mandir%g
s%@INSTALL@%$INSTALL%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
CEOF
EOF
cat >> $CONFIG_STATUS <<\EOF
# Split the substitutions into bite-sized pieces for seds with
# small command number limits, like on Digital OSF/1 and HP-UX.
ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
ac_file=1 # Number of current file.
ac_beg=1 # First line for current file.
ac_end=$ac_max_sed_cmds # Line after last line for current file.
ac_more_lines=:
ac_sed_cmds=""
while $ac_more_lines; do
if test $ac_beg -gt 1; then
sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
else
sed "${ac_end}q" conftest.subs > conftest.s$ac_file
fi
if test ! -s conftest.s$ac_file; then
ac_more_lines=false
rm -f conftest.s$ac_file
else
if test -z "$ac_sed_cmds"; then
ac_sed_cmds="sed -f conftest.s$ac_file"
else
ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
fi
ac_file=`expr $ac_file + 1`
ac_beg=$ac_end
ac_end=`expr $ac_end + $ac_max_sed_cmds`
fi
done
if test -z "$ac_sed_cmds"; then
ac_sed_cmds=cat
fi
EOF
cat >> $CONFIG_STATUS <<EOF
CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
*:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
*) ac_file_in="${ac_file}.in" ;;
esac
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
# Remove last slash and all that follows it. Not all systems have dirname.
ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
# The file is in a subdirectory.
test ! -d "$ac_dir" && mkdir "$ac_dir"
ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
# A "../" for each directory in $ac_dir_suffix.
ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
else
ac_dir_suffix= ac_dots=
fi
case "$ac_given_srcdir" in
.) srcdir=.
if test -z "$ac_dots"; then top_srcdir=.
else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
/*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
*) # Relative path.
srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
echo creating "$ac_file"
rm -f "$ac_file"
configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
case "$ac_file" in
*Makefile*) ac_comsub="1i\\
# $configure_input" ;;
*) ac_comsub= ;;
esac
ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
sed -e "$ac_comsub
s%@configure_input@%$configure_input%g
s%@srcdir@%$srcdir%g
s%@top_srcdir@%$top_srcdir%g
" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
fi; done
rm -f conftest.s*
EOF
cat >> $CONFIG_STATUS <<EOF
EOF
cat >> $CONFIG_STATUS <<\EOF
exit 0
EOF
chmod +x $CONFIG_STATUS
rm -fr confdefs* $ac_clean_files
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1

7
etc/configure.in Normal file
View File

@@ -0,0 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.5)
AC_INIT(Makefile.in)
EGCS_PROG_INSTALL
AC_OUTPUT(Makefile)

893
etc/make-stds.texi Normal file
View File

@@ -0,0 +1,893 @@
@comment This file is included by both standards.texi and make.texinfo.
@comment It was broken out of standards.texi on 1/6/93 by roland.
@node Makefile Conventions
@chapter Makefile Conventions
@comment standards.texi does not print an index, but make.texinfo does.
@cindex makefile, conventions for
@cindex conventions for makefiles
@cindex standards for makefiles
This
@ifinfo
node
@end ifinfo
@iftex
@ifset CODESTD
section
@end ifset
@ifclear CODESTD
chapter
@end ifclear
@end iftex
describes conventions for writing the Makefiles for GNU programs.
@menu
* Makefile Basics:: General Conventions for Makefiles
* Utilities in Makefiles:: Utilities in Makefiles
* Command Variables:: Variables for Specifying Commands
* Directory Variables:: Variables for Installation Directories
* Standard Targets:: Standard Targets for Users
* Install Command Categories:: Three categories of commands in the `install'
rule: normal, pre-install and post-install.
@end menu
@node Makefile Basics
@section General Conventions for Makefiles
Every Makefile should contain this line:
@example
SHELL = /bin/sh
@end example
@noindent
to avoid trouble on systems where the @code{SHELL} variable might be
inherited from the environment. (This is never a problem with GNU
@code{make}.)
Different @code{make} programs have incompatible suffix lists and
implicit rules, and this sometimes creates confusion or misbehavior. So
it is a good idea to set the suffix list explicitly using only the
suffixes you need in the particular Makefile, like this:
@example
.SUFFIXES:
.SUFFIXES: .c .o
@end example
@noindent
The first line clears out the suffix list, the second introduces all
suffixes which may be subject to implicit rules in this Makefile.
Don't assume that @file{.} is in the path for command execution. When
you need to run programs that are a part of your package during the
make, please make sure that it uses @file{./} if the program is built as
part of the make or @file{$(srcdir)/} if the file is an unchanging part
of the source code. Without one of these prefixes, the current search
path is used.
The distinction between @file{./} (the @dfn{build directory}) and
@file{$(srcdir)/} (the @dfn{source directory}) is important because
users can build in a separate directory using the @samp{--srcdir} option
to @file{configure}. A rule of the form:
@smallexample
foo.1 : foo.man sedscript
sed -e sedscript foo.man > foo.1
@end smallexample
@noindent
will fail when the build directory is not the source directory, because
@file{foo.man} and @file{sedscript} are in the the source directory.
When using GNU @code{make}, relying on @samp{VPATH} to find the source
file will work in the case where there is a single dependency file,
since the @code{make} automatic variable @samp{$<} will represent the
source file wherever it is. (Many versions of @code{make} set @samp{$<}
only in implicit rules.) A Makefile target like
@smallexample
foo.o : bar.c
$(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o
@end smallexample
@noindent
should instead be written as
@smallexample
foo.o : bar.c
$(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@@
@end smallexample
@noindent
in order to allow @samp{VPATH} to work correctly. When the target has
multiple dependencies, using an explicit @samp{$(srcdir)} is the easiest
way to make the rule work well. For example, the target above for
@file{foo.1} is best written as:
@smallexample
foo.1 : foo.man sedscript
sed -e $(srcdir)/sedscript $(srcdir)/foo.man > $@@
@end smallexample
GNU distributions usually contain some files which are not source
files---for example, Info files, and the output from Autoconf, Automake,
Bison or Flex. Since these files normally appear in the source
directory, they should always appear in the source directory, not in the
build directory. So Makefile rules to update them should put the
updated files in the source directory.
However, if a file does not appear in the distribution, then the
Makefile should not put it in the source directory, because building a
program in ordinary circumstances should not modify the source directory
in any way.
Try to make the build and installation targets, at least (and all their
subtargets) work correctly with a parallel @code{make}.
@node Utilities in Makefiles
@section Utilities in Makefiles
Write the Makefile commands (and any shell scripts, such as
@code{configure}) to run in @code{sh}, not in @code{csh}. Don't use any
special features of @code{ksh} or @code{bash}.
The @code{configure} script and the Makefile rules for building and
installation should not use any utilities directly except these:
@c dd find
@c gunzip gzip md5sum
@c mkfifo mknod tee uname
@example
cat cmp cp diff echo egrep expr false grep install-info
ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true
@end example
The compression program @code{gzip} can be used in the @code{dist} rule.
Stick to the generally supported options for these programs. For
example, don't use @samp{mkdir -p}, convenient as it may be, because
most systems don't support it.
It is a good idea to avoid creating symbolic links in makefiles, since a
few systems don't support them.
The Makefile rules for building and installation can also use compilers
and related programs, but should do so via @code{make} variables so that the
user can substitute alternatives. Here are some of the programs we
mean:
@example
ar bison cc flex install ld ldconfig lex
make makeinfo ranlib texi2dvi yacc
@end example
Use the following @code{make} variables to run those programs:
@example
$(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX)
$(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
@end example
When you use @code{ranlib} or @code{ldconfig}, you should make sure
nothing bad happens if the system does not have the program in question.
Arrange to ignore an error from that command, and print a message before
the command to tell the user that failure of this command does not mean
a problem. (The Autoconf @samp{AC_PROG_RANLIB} macro can help with
this.)
If you use symbolic links, you should implement a fallback for systems
that don't have symbolic links.
Additional utilities that can be used via Make variables are:
@example
chgrp chmod chown mknod
@end example
It is ok to use other utilities in Makefile portions (or scripts)
intended only for particular systems where you know those utilities
exist.
@node Command Variables
@section Variables for Specifying Commands
Makefiles should provide variables for overriding certain commands, options,
and so on.
In particular, you should run most utility programs via variables.
Thus, if you use Bison, have a variable named @code{BISON} whose default
value is set with @samp{BISON = bison}, and refer to it with
@code{$(BISON)} whenever you need to use Bison.
File management utilities such as @code{ln}, @code{rm}, @code{mv}, and
so on, need not be referred to through variables in this way, since users
don't need to replace them with other programs.
Each program-name variable should come with an options variable that is
used to supply options to the program. Append @samp{FLAGS} to the
program-name variable name to get the options variable name---for
example, @code{BISONFLAGS}. (The name @code{CFLAGS} is an exception to
this rule, but we keep it because it is standard.) Use @code{CPPFLAGS}
in any compilation command that runs the preprocessor, and use
@code{LDFLAGS} in any compilation command that does linking as well as
in any direct use of @code{ld}.
If there are C compiler options that @emph{must} be used for proper
compilation of certain files, do not include them in @code{CFLAGS}.
Users expect to be able to specify @code{CFLAGS} freely themselves.
Instead, arrange to pass the necessary options to the C compiler
independently of @code{CFLAGS}, by writing them explicitly in the
compilation commands or by defining an implicit rule, like this:
@smallexample
CFLAGS = -g
ALL_CFLAGS = -I. $(CFLAGS)
.c.o:
$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
@end smallexample
Do include the @samp{-g} option in @code{CFLAGS}, because that is not
@emph{required} for proper compilation. You can consider it a default
that is only recommended. If the package is set up so that it is
compiled with GCC by default, then you might as well include @samp{-O}
in the default value of @code{CFLAGS} as well.
Put @code{CFLAGS} last in the compilation command, after other variables
containing compiler options, so the user can use @code{CFLAGS} to
override the others.
Every Makefile should define the variable @code{INSTALL}, which is the
basic command for installing a file into the system.
Every Makefile should also define the variables @code{INSTALL_PROGRAM}
and @code{INSTALL_DATA}. (The default for each of these should be
@code{$(INSTALL)}.) Then it should use those variables as the commands
for actual installation, for executables and nonexecutables
respectively. Use these variables as follows:
@example
$(INSTALL_PROGRAM) foo $(bindir)/foo
$(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
@end example
@noindent
Always use a file name, not a directory name, as the second argument of
the installation commands. Use a separate command for each file to be
installed.
@node Directory Variables
@section Variables for Installation Directories
Installation directories should always be named by variables, so it is
easy to install in a nonstandard place. The standard names for these
variables are described below. They are based on a standard filesystem
layout; variants of it are used in SVR4, 4.4BSD, Linux, Ultrix v4, and
other modern operating systems.
These two variables set the root for the installation. All the other
installation directories should be subdirectories of one of these two,
and nothing should be directly installed into these two directories.
@table @samp
@item prefix
A prefix used in constructing the default values of the variables listed
below. The default value of @code{prefix} should be @file{/usr/local}.
When building the complete GNU system, the prefix will be empty and
@file{/usr} will be a symbolic link to @file{/}.
(If you are using Autoconf, write it as @samp{@@prefix@@}.)
@item exec_prefix
A prefix used in constructing the default values of some of the
variables listed below. The default value of @code{exec_prefix} should
be @code{$(prefix)}.
(If you are using Autoconf, write it as @samp{@@exec_prefix@@}.)
Generally, @code{$(exec_prefix)} is used for directories that contain
machine-specific files (such as executables and subroutine libraries),
while @code{$(prefix)} is used directly for other directories.
@end table
Executable programs are installed in one of the following directories.
@table @samp
@item bindir
The directory for installing executable programs that users can run.
This should normally be @file{/usr/local/bin}, but write it as
@file{$(exec_prefix)/bin}.
(If you are using Autoconf, write it as @samp{@@bindir@@}.)
@item sbindir
The directory for installing executable programs that can be run from
the shell, but are only generally useful to system administrators. This
should normally be @file{/usr/local/sbin}, but write it as
@file{$(exec_prefix)/sbin}.
(If you are using Autoconf, write it as @samp{@@sbindir@@}.)
@item libexecdir
@comment This paragraph adjusted to avoid overfull hbox --roland 5jul94
The directory for installing executable programs to be run by other
programs rather than by users. This directory should normally be
@file{/usr/local/libexec}, but write it as @file{$(exec_prefix)/libexec}.
(If you are using Autoconf, write it as @samp{@@libexecdir@@}.)
@end table
Data files used by the program during its execution are divided into
categories in two ways.
@itemize @bullet
@item
Some files are normally modified by programs; others are never normally
modified (though users may edit some of these).
@item
Some files are architecture-independent and can be shared by all
machines at a site; some are architecture-dependent and can be shared
only by machines of the same kind and operating system; others may never
be shared between two machines.
@end itemize
This makes for six different possibilities. However, we want to
discourage the use of architecture-dependent files, aside from object
files and libraries. It is much cleaner to make other data files
architecture-independent, and it is generally not hard.
Therefore, here are the variables Makefiles should use to specify
directories:
@table @samp
@item datadir
The directory for installing read-only architecture independent data
files. This should normally be @file{/usr/local/share}, but write it as
@file{$(prefix)/share}.
(If you are using Autoconf, write it as @samp{@@datadir@@}.)
As a special exception, see @file{$(infodir)}
and @file{$(includedir)} below.
@item sysconfdir
The directory for installing read-only data files that pertain to a
single machine--that is to say, files for configuring a host. Mailer
and network configuration files, @file{/etc/passwd}, and so forth belong
here. All the files in this directory should be ordinary ASCII text
files. This directory should normally be @file{/usr/local/etc}, but
write it as @file{$(prefix)/etc}.
(If you are using Autoconf, write it as @samp{@@sysconfdir@@}.)
@c rewritten to avoid overfull hbox --tower
Do not install executables
@c here
in this directory (they probably
belong in @file{$(libexecdir)} or @file{$(sbindir)}). Also do not
install files that are modified in the normal course of their use
(programs whose purpose is to change the configuration of the system
excluded). Those probably belong in @file{$(localstatedir)}.
@item sharedstatedir
The directory for installing architecture-independent data files which
the programs modify while they run. This should normally be
@file{/usr/local/com}, but write it as @file{$(prefix)/com}.
(If you are using Autoconf, write it as @samp{@@sharedstatedir@@}.)
@item localstatedir
The directory for installing data files which the programs modify while
they run, and that pertain to one specific machine. Users should never
need to modify files in this directory to configure the package's
operation; put such configuration information in separate files that go
in @file{$(datadir)} or @file{$(sysconfdir)}. @file{$(localstatedir)}
should normally be @file{/usr/local/var}, but write it as
@file{$(prefix)/var}.
(If you are using Autoconf, write it as @samp{@@localstatedir@@}.)
@item libdir
The directory for object files and libraries of object code. Do not
install executables here, they probably ought to go in @file{$(libexecdir)}
instead. The value of @code{libdir} should normally be
@file{/usr/local/lib}, but write it as @file{$(exec_prefix)/lib}.
(If you are using Autoconf, write it as @samp{@@libdir@@}.)
@item infodir
The directory for installing the Info files for this package. By
default, it should be @file{/usr/local/info}, but it should be written
as @file{$(prefix)/info}.
(If you are using Autoconf, write it as @samp{@@infodir@@}.)
@item lispdir
The directory for installing any Emacs Lisp files in this package. By
default, it should be @file{/usr/local/share/emacs/site-lisp}, but it
should be written as @file{$(prefix)/share/emacs/site-lisp}.
If you are using Autoconf, write the default as @samp{@@lispdir@@}.
In order to make @samp{@@lispdir@@} work, you need the following lines
in your @file{configure.in} file:
@example
lispdir='$@{datadir@}/emacs/site-lisp'
AC_SUBST(lispdir)
@end example
@item includedir
@c rewritten to avoid overfull hbox --roland
The directory for installing header files to be included by user
programs with the C @samp{#include} preprocessor directive. This
should normally be @file{/usr/local/include}, but write it as
@file{$(prefix)/include}.
(If you are using Autoconf, write it as @samp{@@includedir@@}.)
Most compilers other than GCC do not look for header files in
@file{/usr/local/include}. So installing the header files this way is
only useful with GCC. Sometimes this is not a problem because some
libraries are only really intended to work with GCC. But some libraries
are intended to work with other compilers. They should install their
header files in two places, one specified by @code{includedir} and one
specified by @code{oldincludedir}.
@item oldincludedir
The directory for installing @samp{#include} header files for use with
compilers other than GCC. This should normally be @file{/usr/include}.
(If you are using Autoconf, you can write it as @samp{@@oldincludedir@@}.)
The Makefile commands should check whether the value of
@code{oldincludedir} is empty. If it is, they should not try to use
it; they should cancel the second installation of the header files.
A package should not replace an existing header in this directory unless
the header came from the same package. Thus, if your Foo package
provides a header file @file{foo.h}, then it should install the header
file in the @code{oldincludedir} directory if either (1) there is no
@file{foo.h} there or (2) the @file{foo.h} that exists came from the Foo
package.
To tell whether @file{foo.h} came from the Foo package, put a magic
string in the file---part of a comment---and @code{grep} for that string.
@end table
Unix-style man pages are installed in one of the following:
@table @samp
@item mandir
The top-level directory for installing the man pages (if any) for this
package. It will normally be @file{/usr/local/man}, but you should
write it as @file{$(prefix)/man}.
(If you are using Autoconf, write it as @samp{@@mandir@@}.)
@item man1dir
The directory for installing section 1 man pages. Write it as
@file{$(mandir)/man1}.
@item man2dir
The directory for installing section 2 man pages. Write it as
@file{$(mandir)/man2}
@item @dots{}
@strong{Don't make the primary documentation for any GNU software be a
man page. Write a manual in Texinfo instead. Man pages are just for
the sake of people running GNU software on Unix, which is a secondary
application only.}
@item manext
The file name extension for the installed man page. This should contain
a period followed by the appropriate digit; it should normally be @samp{.1}.
@item man1ext
The file name extension for installed section 1 man pages.
@item man2ext
The file name extension for installed section 2 man pages.
@item @dots{}
Use these names instead of @samp{manext} if the package needs to install man
pages in more than one section of the manual.
@end table
And finally, you should set the following variable:
@table @samp
@item srcdir
The directory for the sources being compiled. The value of this
variable is normally inserted by the @code{configure} shell script.
(If you are using Autconf, use @samp{srcdir = @@srcdir@@}.)
@end table
For example:
@smallexample
@c I have changed some of the comments here slightly to fix an overfull
@c hbox, so the make manual can format correctly. --roland
# Common prefix for installation directories.
# NOTE: This directory must exist when you start the install.
prefix = /usr/local
exec_prefix = $(prefix)
# Where to put the executable for the command `gcc'.
bindir = $(exec_prefix)/bin
# Where to put the directories used by the compiler.
libexecdir = $(exec_prefix)/libexec
# Where to put the Info files.
infodir = $(prefix)/info
@end smallexample
If your program installs a large number of files into one of the
standard user-specified directories, it might be useful to group them
into a subdirectory particular to that program. If you do this, you
should write the @code{install} rule to create these subdirectories.
Do not expect the user to include the subdirectory name in the value of
any of the variables listed above. The idea of having a uniform set of
variable names for installation directories is to enable the user to
specify the exact same values for several different GNU packages. In
order for this to be useful, all the packages must be designed so that
they will work sensibly when the user does so.
@node Standard Targets
@section Standard Targets for Users
All GNU programs should have the following targets in their Makefiles:
@table @samp
@item all
Compile the entire program. This should be the default target. This
target need not rebuild any documentation files; Info files should
normally be included in the distribution, and DVI files should be made
only when explicitly asked for.
By default, the Make rules should compile and link with @samp{-g}, so
that executable programs have debugging symbols. Users who don't mind
being helpless can strip the executables later if they wish.
@item install
Compile the program and copy the executables, libraries, and so on to
the file names where they should reside for actual use. If there is a
simple test to verify that a program is properly installed, this target
should run that test.
Do not strip executables when installing them. Devil-may-care users can
use the @code{install-strip} target to do that.
If possible, write the @code{install} target rule so that it does not
modify anything in the directory where the program was built, provided
@samp{make all} has just been done. This is convenient for building the
program under one user name and installing it under another.
The commands should create all the directories in which files are to be
installed, if they don't already exist. This includes the directories
specified as the values of the variables @code{prefix} and
@code{exec_prefix}, as well as all subdirectories that are needed.
One way to do this is by means of an @code{installdirs} target
as described below.
Use @samp{-} before any command for installing a man page, so that
@code{make} will ignore any errors. This is in case there are systems
that don't have the Unix man page documentation system installed.
The way to install Info files is to copy them into @file{$(infodir)}
with @code{$(INSTALL_DATA)} (@pxref{Command Variables}), and then run
the @code{install-info} program if it is present. @code{install-info}
is a program that edits the Info @file{dir} file to add or update the
menu entry for the given Info file; it is part of the Texinfo package.
Here is a sample rule to install an Info file:
@comment This example has been carefully formatted for the Make manual.
@comment Please do not reformat it without talking to roland@gnu.ai.mit.edu.
@smallexample
$(infodir)/foo.info: foo.info
$(POST_INSTALL)
# There may be a newer info file in . than in srcdir.
-if test -f foo.info; then d=.; \
else d=$(srcdir); fi; \
$(INSTALL_DATA) $$d/foo.info $@@; \
# Run install-info only if it exists.
# Use `if' instead of just prepending `-' to the
# line so we notice real errors from install-info.
# We use `$(SHELL) -c' because some shells do not
# fail gracefully when there is an unknown command.
if $(SHELL) -c 'install-info --version' \
>/dev/null 2>&1; then \
install-info --dir-file=$(infodir)/dir \
$(infodir)/foo.info; \
else true; fi
@end smallexample
When writing the @code{install} target, you must classify all the
commands into three categories: normal ones, @dfn{pre-installation}
commands and @dfn{post-installation} commands. @xref{Install Command
Categories}.
@item uninstall
Delete all the installed files---the copies that the @samp{install}
target creates.
This rule should not modify the directories where compilation is done,
only the directories where files are installed.
The uninstallation commands are divided into three categories, just like
the installation commands. @xref{Install Command Categories}.
@item install-strip
Like @code{install}, but strip the executable files while installing
them. In many cases, the definition of this target can be very simple:
@smallexample
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
install
@end smallexample
Normally we do not recommend stripping an executable unless you are sure
the program has no bugs. However, it can be reasonable to install a
stripped executable for actual execution while saving the unstripped
executable elsewhere in case there is a bug.
@comment The gratuitous blank line here is to make the table look better
@comment in the printed Make manual. Please leave it in.
@item clean
Delete all files from the current directory that are normally created by
building the program. Don't delete the files that record the
configuration. Also preserve files that could be made by building, but
normally aren't because the distribution comes with them.
Delete @file{.dvi} files here if they are not part of the distribution.
@item distclean
Delete all files from the current directory that are created by
configuring or building the program. If you have unpacked the source
and built the program without creating any other files, @samp{make
distclean} should leave only the files that were in the distribution.
@item mostlyclean
Like @samp{clean}, but may refrain from deleting a few files that people
normally don't want to recompile. For example, the @samp{mostlyclean}
target for GCC does not delete @file{libgcc.a}, because recompiling it
is rarely necessary and takes a lot of time.
@item maintainer-clean
Delete almost everything from the current directory that can be
reconstructed with this Makefile. This typically includes everything
deleted by @code{distclean}, plus more: C source files produced by
Bison, tags tables, Info files, and so on.
The reason we say ``almost everything'' is that running the command
@samp{make maintainer-clean} should not delete @file{configure} even if
@file{configure} can be remade using a rule in the Makefile. More generally,
@samp{make maintainer-clean} should not delete anything that needs to
exist in order to run @file{configure} and then begin to build the
program. This is the only exception; @code{maintainer-clean} should
delete everything else that can be rebuilt.
The @samp{maintainer-clean} target is intended to be used by a maintainer of
the package, not by ordinary users. You may need special tools to
reconstruct some of the files that @samp{make maintainer-clean} deletes.
Since these files are normally included in the distribution, we don't
take care to make them easy to reconstruct. If you find you need to
unpack the full distribution again, don't blame us.
To help make users aware of this, the commands for the special
@code{maintainer-clean} target should start with these two:
@smallexample
@@echo 'This command is intended for maintainers to use; it'
@@echo 'deletes files that may need special tools to rebuild.'
@end smallexample
@item TAGS
Update a tags table for this program.
@c ADR: how?
@item info
Generate any Info files needed. The best way to write the rules is as
follows:
@smallexample
info: foo.info
foo.info: foo.texi chap1.texi chap2.texi
$(MAKEINFO) $(srcdir)/foo.texi
@end smallexample
@noindent
You must define the variable @code{MAKEINFO} in the Makefile. It should
run the @code{makeinfo} program, which is part of the Texinfo
distribution.
Normally a GNU distribution comes with Info files, and that means the
Info files are present in the source directory. Therefore, the Make
rule for an info file should update it in the source directory. When
users build the package, ordinarily Make will not update the Info files
because they will already be up to date.
@item dvi
Generate DVI files for all Texinfo documentation.
For example:
@smallexample
dvi: foo.dvi
foo.dvi: foo.texi chap1.texi chap2.texi
$(TEXI2DVI) $(srcdir)/foo.texi
@end smallexample
@noindent
You must define the variable @code{TEXI2DVI} in the Makefile. It should
run the program @code{texi2dvi}, which is part of the Texinfo
distribution.@footnote{@code{texi2dvi} uses @TeX{} to do the real work
of formatting. @TeX{} is not distributed with Texinfo.} Alternatively,
write just the dependencies, and allow GNU @code{make} to provide the command.
@item dist
Create a distribution tar file for this program. The tar file should be
set up so that the file names in the tar file start with a subdirectory
name which is the name of the package it is a distribution for. This
name can include the version number.
For example, the distribution tar file of GCC version 1.40 unpacks into
a subdirectory named @file{gcc-1.40}.
The easiest way to do this is to create a subdirectory appropriately
named, use @code{ln} or @code{cp} to install the proper files in it, and
then @code{tar} that subdirectory.
Compress the tar file file with @code{gzip}. For example, the actual
distribution file for GCC version 1.40 is called @file{gcc-1.40.tar.gz}.
The @code{dist} target should explicitly depend on all non-source files
that are in the distribution, to make sure they are up to date in the
distribution.
@ifset CODESTD
@xref{Releases, , Making Releases}.
@end ifset
@ifclear CODESTD
@xref{Releases, , Making Releases, standards, GNU Coding Standards}.
@end ifclear
@item check
Perform self-tests (if any). The user must build the program before
running the tests, but need not install the program; you should write
the self-tests so that they work when the program is built but not
installed.
@end table
The following targets are suggested as conventional names, for programs
in which they are useful.
@table @code
@item installcheck
Perform installation tests (if any). The user must build and install
the program before running the tests. You should not assume that
@file{$(bindir)} is in the search path.
@item installdirs
It's useful to add a target named @samp{installdirs} to create the
directories where files are installed, and their parent directories.
There is a script called @file{mkinstalldirs} which is convenient for
this; you can find it in the Texinfo package.
@c It's in /gd/gnu/lib/mkinstalldirs.
You can use a rule like this:
@comment This has been carefully formatted to look decent in the Make manual.
@comment Please be sure not to make it extend any further to the right.--roland
@smallexample
# Make sure all installation directories (e.g. $(bindir))
# actually exist by making them if necessary.
installdirs: mkinstalldirs
$(srcdir)/mkinstalldirs $(bindir) $(datadir) \
$(libdir) $(infodir) \
$(mandir)
@end smallexample
This rule should not modify the directories where compilation is done.
It should do nothing but create installation directories.
@end table
@node Install Command Categories
@section Install Command Categories
@cindex pre-installation commands
@cindex post-installation commands
When writing the @code{install} target, you must classify all the
commands into three categories: normal ones, @dfn{pre-installation}
commands and @dfn{post-installation} commands.
Normal commands move files into their proper places, and set their
modes. They may not alter any files except the ones that come entirely
from the package they belong to.
Pre-installation and post-installation commands may alter other files;
in particular, they can edit global configuration files or data bases.
Pre-installation commands are typically executed before the normal
commands, and post-installation commands are typically run after the
normal commands.
The most common use for a post-installation command is to run
@code{install-info}. This cannot be done with a normal command, since
it alters a file (the Info directory) which does not come entirely and
solely from the package being installed. It is a post-installation
command because it needs to be done after the normal command which
installs the package's Info files.
Most programs don't need any pre-installation commands, but we have the
feature just in case it is needed.
To classify the commands in the @code{install} rule into these three
categories, insert @dfn{category lines} among them. A category line
specifies the category for the commands that follow.
A category line consists of a tab and a reference to a special Make
variable, plus an optional comment at the end. There are three
variables you can use, one for each category; the variable name
specifies the category. Category lines are no-ops in ordinary execution
because these three Make variables are normally undefined (and you
@emph{should not} define them in the makefile).
Here are the three possible category lines, each with a comment that
explains what it means:
@smallexample
$(PRE_INSTALL) # @r{Pre-install commands follow.}
$(POST_INSTALL) # @r{Post-install commands follow.}
$(NORMAL_INSTALL) # @r{Normal commands follow.}
@end smallexample
If you don't use a category line at the beginning of the @code{install}
rule, all the commands are classified as normal until the first category
line. If you don't use any category lines, all the commands are
classified as normal.
These are the category lines for @code{uninstall}:
@smallexample
$(PRE_UNINSTALL) # @r{Pre-uninstall commands follow.}
$(POST_UNINSTALL) # @r{Post-uninstall commands follow.}
$(NORMAL_UNINSTALL) # @r{Normal commands follow.}
@end smallexample
Typically, a pre-uninstall command would be used for deleting entries
from the Info directory.
If the @code{install} or @code{uninstall} target has any dependencies
which act as subroutines of installation, then you should start
@emph{each} dependency's commands with a category line, and start the
main target's commands with a category line also. This way, you can
ensure that each command is placed in the right category regardless of
which of the dependencies actually run.
Pre-installation and post-installation commands should not run any
programs except for these:
@example
[ basename bash cat chgrp chmod chown cmp cp dd diff echo
egrep expand expr false fgrep find getopt grep gunzip gzip
hostname install install-info kill ldconfig ln ls md5sum
mkdir mkfifo mknod mv printenv pwd rm rmdir sed sort tee
test touch true uname xargs yes
@end example
@cindex binary packages
The reason for distinguishing the commands in this way is for the sake
of making binary packages. Typically a binary package contains all the
executables and other files that need to be installed, and has its own
method of installing them---so it does not need to run the normal
installation commands. But installing the binary package does need to
execute the pre-installation and post-installation commands.
Programs to build binary packages work by extracting the
pre-installation and post-installation commands. Here is one way of
extracting the pre-installation commands:
@smallexample
make -n install -o all \
PRE_INSTALL=pre-install \
POST_INSTALL=post-install \
NORMAL_INSTALL=normal-install \
| gawk -f pre-install.awk
@end smallexample
@noindent
where the file @file{pre-install.awk} could contain this:
@smallexample
$0 ~ /^\t[ \t]*(normal_install|post_install)[ \t]*$/ @{on = 0@}
on @{print $0@}
$0 ~ /^\t[ \t]*pre_install[ \t]*$/ @{on = 1@}
@end smallexample
The resulting file of pre-installation commands is executed as a shell
script as part of installing the binary package.

3061
etc/standards.texi Normal file

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

10662
gcc/ChangeLog.11 Normal file

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

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

Some files were not shown because too many files have changed in this diff Show More