aboutsummaryrefslogtreecommitdiff
path: root/gcc/mklibgcc.in
AgeCommit message (Collapse)AuthorFilesLines
2005-06-27c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.Richard Henderson1-1/+1
* c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__. * cfgexpand.c: Include params.h. (has_protected_decls, has_short_buffer): New. (expand_stack_vars): Take a predicate to determine what to expand. (defer_stack_allocation): True when flag_stack_protect on. (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New. (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New. (stack_protect_classify_type, stack_protect_decl_phase): New. (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New. (add_stack_protection_conflicts, create_stack_guard): New. (expand_used_vars): Add stack protection logic. (tree_expand_cfg): Likewise. * common.opt (Wstack-protector): New. (fstack-protector, fstack-protector-all): New. * function.c: Include predict.h. (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect wants to copy the parameter into the stack frame. (stack_protect_prologue, stack_protect_epilogue): New. (expand_function_end): Call stack_protect_epilogue. Do sjlj_emit_function_exit_after after naked_return_label. * function.h (struct function): Add stack_protect_guard. * params.def (PARAM_SSP_BUFFER_SIZE): New. * toplev.c (process_options): Disable flag_stack_protect and/or warn_stack_protect based on FRAME_GROWS_DOWNWARD. * tree.h (stack_protect_prologue): Declare. * target-def.h (TARGET_STACK_PROTECT_GUARD): New. (TARGET_STACK_PROTECT_FAIL): New. (TARGET_INITIALIZER): Add them. * target.h (struct gcc_target): Add stack_protect_guard and stack_protect_fail. * targhooks.c: Include ggc.h, gty header. (stack_chk_guard_decl, default_stack_protect_guard): New. (stack_chk_fail_decl, default_external_stack_protect_fail): New. (default_hidden_stack_protect_fail): New. * targhooks.h (default_stack_protect_guard): Declare. (default_external_stack_protect_fail): Declare. (default_hidden_stack_protect_fail): Declare. * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New. * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New. (trap): Use ud2. (conditional_trap, conditional_trap_1): Remove. (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New. (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New. * doc/md.texi (stack_protect_set, stack_protect_test): New. * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New. (TARGET_STACK_PROTECT_FAIL): New. * libgcc-std.ver (GCC_4.1.0): New. * libgcc.h (__stack_chk_guard): Declare. (__stack_chk_fail, __stack_chk_fail_local): Declare. * libgcc2.c (L_stack_chk, L_stack_chk_local): New. * mklibgcc.in (lib2funcs): Add them. From-SVN: r101348
2005-04-19Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.Daniel Jacobowitz1-2/+3
* Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET. * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc. From-SVN: r98420
2005-02-24re PR target/19019 (GCC ldouble format incompatibility with XLC long double)Jakub Jelinek1-15/+17
PR target/19019 * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects. * config/rs6000/darwin-ldouble.c: Only use the .symver directives if SHARED is defined. From-SVN: r95515
2005-02-19mklibgcc.in: If libgcc_eh.a would be empty, put a dummy object inside.Zack Weinberg1-0/+21
* mklibgcc.in: If libgcc_eh.a would be empty, put a dummy object inside. * config/ia64/hpux.h: Don't define LIBGCC_SPEC. From-SVN: r95286
2005-02-19re PR other/19525 (In-build-directory multilib testing broken)Richard Sandiford1-136/+34
PR other/19525 * doc/invoke.texi: Remove documentation of %M spec. * gcc.c: Likewise. (init_spec): Remove %M suffix from -lgcc_s. (do_spec_1): Remove 'M' case. * mklibgcc.in: Remove SHLIB_MULTILIB handling. Expect SHLIB_LINK to put shared libraries in the multilib directory. Remove the shlib_so_soname substitution variable. Don't add a multilib encoding to shlib_base_name. Set shlib_slibdir_qual to the full pathname reported by -print-multi-os-directory. Pass @multilib_dir@ to SHLIB_INSTALL as well as SHLIB_LINK. * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@. (SHLIB_NAME): Delete. (SHLIB_DIR): New macro. (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR). (SHLIB_INSTALL): Adjust accordingly. * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver. * config/t-slibgcc-sld: Likewise. * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete. (SHLIBUNWIND_SONAME): Use @shlib_base_name@. (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR). (SHLIBUNWIND_INSTALL): Adjust accordingly. * config/i386/t-nwld (SHLIB_SONAME): Delete. (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME. Use @shlib_base_name@ instead of @shlib_so_name@. * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0 and @shlib_base_name@.so in @multilib_dir@. (SHLIB_INSTALL): Adjust accordingly. Add @shlib_slibdir_qual@ to the install path. * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver. (SHLIB_LINK): Remove previous workaround. * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros. (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR). (SHLIB_INSTALL): Adjust accordingly. Add $(SHLIB_SLIBDIR_QUAL) to the install path. * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in @multilib_dir@. Use @multilib_dir@ to check for threading libraries. (SHLIB_INSTALL): Adjust accordingly. (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries. * config/rs6000/t-aix52: As for config/rs6000/t-aix43. * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for config/t-slibgcc-elf-ver. From-SVN: r95277
2005-02-15re PR bootstrap/18810 (Darwin's as unlinks /dev/null)Peter O'Gorman1-1/+5
2005-02-15 Peter O'Gorman <peter@pogma.com> PR bootstrap/18810 * mklibgcc.in (vis_hide): Use a temporary object file, not -o /dev/null. From-SVN: r95096
2005-02-11tree-complex.c (expand_complex_libcall): New.Richard Henderson1-1/+2
* tree-complex.c (expand_complex_libcall): New. (expand_complex_multiplication): Use it for c99 compliance. (expand_complex_division): Likewise. * fold-const.c (fold_complex_add, fold_complex_mult): New. (fold): Call them. * builtins.c (built_in_names): Remove const. * tree.c (build_common_builtin_nodes): Build complex arithmetic builtins. * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New. (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New. (built_in_names): Remove const. * c-common.c (c_common_type_for_mode): Handle complex modes. * flags.h, toplev.c (flag_complex_method): Rename from flag_complex_divide_method. * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3, __mulsc3, __muldc3, __mulxc3, __multc3): New. * libgcc2.h: Declare them. * libgcc-std.ver: Export them. * mklibgcc.in (lib2funcs): Build them. From-SVN: r94909
2005-02-09re PR middle-end/19402 (__builtin_powi? still missing)Richard Guenther1-1/+2
2005-02-09 Richard Guenther <rguenth@gcc.gnu.org> PR middle-end/19402 * builtins.def: New __builtin_powi[lf]. * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI. (expand_builtin_powi): New function. (expand_builtin): Dispatch to expand_builtin_powi. * libgcc2.h: Add prototypes for __builtin_powi[lf]. * libgcc2.c: Add __builtin_powi[lf] implementation. * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs. * optabs.h: Add powi_optab. * optabs.c (init_optabs): Initialize powi_optab. * doc/extend.texi: Document __builtin_powi[lf]. * gcc.dg/pr19402-1.c: New testcase. * gcc.dg/pr19402-2.c: likewise. From-SVN: r94774
2004-12-15mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h.Jan Beulich1-1/+1
gcc/ 2004-12-15 Jan Beulich <jbeulich@novell.com> * mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h. From-SVN: r92179
2004-12-05mklibgcc.in (vis_hide): Add the prototype for the test.Andrew Pinski1-1/+1
2004-12-05 Andrew Pinski <pinskia@physics.uc.edu> * mklibgcc.in (vis_hide): Add the prototype for the test. From-SVN: r91752
2004-12-04re PR bootstrap/18804 (lib2funcs.vis:1: Error: unknown pseudo-op: `.hidden')John David Anglin1-1/+1
PR bootstrap/18804 * mklibgcc.in (vis_hide): Use implementation instead of declaration for test function. From-SVN: r91732
2004-12-04mklibgcc.in: Build shared libgcc and shared libunwind in gcc/.Alan Modra1-12/+6
* mklibgcc.in: Build shared libgcc and shared libunwind in gcc/. Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK, SHLIB_INSTALL, and SHLIBUNWIND_INSTALL. * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of shlib_dir and shlib_so_name. * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise. * config/t-libunwind-elf (SHLIB_NAME): Likewise. * config/t-slibgcc-darwin (SHLIB_NAME): Likewise. * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise. * config/t-slibgcc-sld (SHLIB_NAME): Likewise. (SHLIB_LINK): Don't use shlib_dir when creating symlink. From-SVN: r91724
2004-12-03mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART.H.J. Lu1-30/+28
2004-12-03 H.J. Lu <hongjiu.lu@intel.com> * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART. From-SVN: r91684
2004-12-02re PR bootstrap/18532 (libgcc.mk isn't parallel build safe for multilib)H.J. Lu1-33/+45
2004-12-02 H.J. Lu <hongjiu.lu@intel.com> PR bootstrap/18532 * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for multilib at a time. Don't build the default set. Don't add EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove filter for shared libunwind and libgcc. From-SVN: r91663
2004-11-30mklibgcc.in: Correct calculation of libgcc_s_soname and libunwind_soname.Zack Weinberg1-40/+48
* mklibgcc.in: Correct calculation of libgcc_s_soname and libunwind_soname. Use $out, not $outS, in commands for no-shared-library case. Move EXTRA_MULTILIB_PARTS rules above library build rules, make $libunwind_so and $libgcc_s_so depend on them in the normal fashion, and filter those objects out of @shlib_objs@. From-SVN: r91534
2004-11-30* gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.hZack Weinberg1-414/+585
* unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS. * mklibgcc.in: Drastic restructure for comprehensibility. Remove the old hidden-directive hack. Eliminate support for .txt files in LIB2ADD etc (never used). Eliminate support for assembly source files in LIB2ADDEH* and LIBUNWIND (also never used). Build up dependency lists for libraries incrementally. If we have SHLIB_LINK, compile each file twice, once for the static and once for the shared library; also probe for -fvisibility=hidden in the generated libgcc.mk. If found, pass that and -DHIDE_EXPORTS to the compilation of every C source file going into the static library. If found, generate hidden-directive lists for every assembly source file going into the static library, but incorporate them with -include instead of ld -r. Write comments into generated libgcc.mk to facilitate debugging. * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc. * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP. * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in -Zdynamiclib case. From-SVN: r91513
2004-10-18re PR bootstrap/17684 (/usr/ccs/bin/ld: Can't create libgcc_s.sl)H.J. Lu1-0/+1
2004-11-18 H.J. Lu <hongjiu.lu@intel.com> PR bootstrap/17684 * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?. (stage1-start): Remove and copy libunwind.a and libunwind*$(SHLIB_EXT) instead of libunwind*. (stage2-start): Likewise. (stage3-start): Likewise. (stage4-start): Likewise. (stageprofile-start): Likewise. (stagefeedback-start): Likewise. * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for the shared library to be created and don't remove the existing shared library. * config/arm/t-netbsd (SHLIB_LINK): Likewise. * config/i386/t-nwld (SHLIB_LINK): Likewise. * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise. * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. * config/sh/t-linux (SHLIB_LINK): Likewise. * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. * config/t-slibgcc-sld (SHLIB_LINK): Likewise. * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s" files. From-SVN: r89227
2004-09-03re PR target/14925 (libunwind enabled gcc generates incompatible libgcc_s.so.1)H.J. Lu1-10/+149
2004-09-03 H.J. Lu <hongjiu.lu@intel.com> PR target/14925: Makefile.in (LIB2ADDEHSTATIC): New. (LIB2ADDEHSHARED): New. (LIBUNWIND): New. (LIBUNWINDDEP): New. (SHLIBUNWIND_LINK): New. (SHLIBUNWIND_INSTALL): New. (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND, LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL. (clean): Remove libunwind* (stage1-start): Remove and copy stage1/libunwind*. (stage2-start): Remove and copy stage2/libunwind*. (stage3-start): Remove and copy stage3/libunwind*. (stage4-start): Remove and copy stage4/libunwind*. (stageprofile-start): Remove and copy stageprofile/libunwind*. (stagefeedback-start): Remove and copy stagefeedback/libunwind*. * config.gcc (ia64*-*-linux*): Always add t-libunwind to tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to tmake_file if --with-system-libunwind isn't used. * config/ia64/t-glibc-libunwind: New file. * config/t-libunwind-elf: Likewise. * unwind-compat.c: Likewise. * unwind-compat.h: Likewise. * unwind-dw2-fde-compat.c: Likewise. * config/ia64/t-glibc (LIB2ADDEH): Updated. * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS. * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define aliases if needed. * unwind-dw2-fde-glibc.c: Likewise. * unwind-dw2.c: Likewise. * config/t-libunwind (LIB2ADDEH): Updated. (LIB2ADDEHSTATIC): New. (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS. (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER. * configure.ac: Change --enable-libunwind-exceptions to --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS. * configure: Regenerated. * config.in: Updated. * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or above and mention --with-system-libunwind. (ia64-*-hpux*): Mention --enable-libunwind-exceptions is removed in gcc 3.4.3 and later. * gcc.c (init_spec): Add -lunwind to -lgcc_s if USE_LIBUNWIND_EXCEPTIONS is defined. * mklibgcc.in: Support libunwind. From-SVN: r87066
2004-09-02Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.Jan Beulich1-5/+8
* Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h. * mklibgcc.in (libgcc_dep): New, covering general dependencies, but not unwind code specific ones. (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep. Remove unwind code specific dependencies. (libgcov_c_dep): Replace general dependencies with use of libgcc_dep. Remove gbl-ctors.h. Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH. From-SVN: r87026
2004-07-17libgcc2.c (__enable_execute_stack): New symbol.Eric Botcazou1-2/+2
* libgcc2.c (__enable_execute_stack): New symbol. * libgcc-std.ver (GCC_3.4.2): New version. Inherit from GCC_3.4 and declare __enable_execute_stack. * mklibgcc.in (lib2funcs): Add _enable_execute_stack. * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy. * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into ENABLE_EXECUTE_STACK. * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into ENABLE_EXECUTE_STACK. * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise. * config/i386/i386.c (x86_initialize_trampoline): Conditionalize on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into ENABLE_EXECUTE_STACK. * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise. * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise. * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise. * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise. * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. (sparc64_initialize_trampoline): Likewise. * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro. From-SVN: r84880
2004-03-19* mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.Ian Lance Taylor1-4/+4
From-SVN: r79669
2003-11-21mklibgcc.in: Evaluate shlib_slibdir_qual during link step too.Andreas Tobler1-2/+9
2003-11-21 Andreas Tobler <a.tobler@schweiz.ch> * mklibgcc.in: Evaluate shlib_slibdir_qual during link step too. * config/t-slibgcc-darwin: Adjust install path. * config/rs6000/t-darwin: Revert multilib matches since it is not used on darwin. From-SVN: r73790
2003-10-08* mklibgcc.in: Don't hide undefined or typeless symbols.Rainer Orth1-1/+3
From-SVN: r72235
2003-09-08mklibgcc.in (libcc.a): Depend on stmp-dirs.Mark Mitchell1-3/+9
* mklibgcc.in (libcc.a): Depend on stmp-dirs. (libgov.a): Likewise. (libgcc_eh.a): Likewise. From-SVN: r71217
2003-06-07mklibgcc.in (lib2funcs): Remove _exit.Andreas Jaeger1-1/+1
* mklibgcc.in (lib2funcs): Remove _exit. * libgcc2.c: Remove L_exit. * gbl-ctors.h: Remove declarations dependend on NEED_ATEXIT. * system.h: Poison NEED_ATEXIT, ON_EXIT, EXIT_BODY. * doc/tm.texi (Misc): Remove NEED_ATEXIT, ON_EXIT, EXIT_BODY. From-SVN: r67599
2003-06-06mklibgcc.in: Propagate .note.GNU-stack section if needed into the .hidden ↵Jakub Jelinek1-2/+7
assembly stubs. * mklibgcc.in: Propagate .note.GNU-stack section if needed into the .hidden assembly stubs. From-SVN: r67545
2003-05-14Makefile.in (LIBGCC_DEPS): Use $(srcdir) on gcov filesNathan Sidwell1-1/+1
* Makefile.in (LIBGCC_DEPS): Use $(srcdir) on gcov files (libgcov.a): Depend on libgcc.a. (gcov.o, gcov-dump.o): Add gcov-io.c. * mklibgcc.in (libgcov_c_dep): Use $(srcdir). From-SVN: r66804
2003-05-09mklibgcc.in: Remove extra quotes.Matt Kraai1-1/+1
2003-05-09 Matt Kraai <kraai@alumni.cmu.edu> * mklibgcc.in: Remove extra quotes. From-SVN: r66644
2003-05-08mklibgcc.in: Use mkinstalldirs when installing multilib directories.Aldy Hernandez1-2/+2
2003-05-07 Aldy Hernandez <aldyh@redhat.com> * mklibgcc.in: Use mkinstalldirs when installing multilib directories. From-SVN: r66613
2003-04-23Makefile.in (LIBGCC_DEPS): Add gcov headers.Nathan Sidwell1-1/+1
* Makefile.in (LIBGCC_DEPS): Add gcov headers. (libgcov.a): Depends on LIBGCC_DEPS. * basic-block.h (profile_info): Moved here from coverage.h. Made a pointer. * coverage.c (struct function_list): Fixed array of counter types. (struct counts_entry): Keyed by counter type, contains summary. (profile_info): Moved to profile.c. (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global vars. (profiler_label): Remove. (ctr_labels): New. (set_purpose, label_for_tag, build_counter_section_fields, build_counter_section_value, build_counter_section_data_fields, build_counter_section_data_values, build_function_info_fields, build_function_info_value, gcov_info_fields, gcov_info_value): Remove. (build_fn_info_type, build_fn_info_value, build_ctr_info_type, build_ctr_info_value, build_gcov_info): New. (htab_counts_entry_hash, htab_counts_entry_eq): Adjust. (reads_counts_file): Adjust. (get_coverage_counts): Takes counter number. Add summary parameter. Adjust. (coverage_counter_ref): Tkaes counter number. Adjust. Lazily create counter array labels. (coverage_end_function): Adjust. (create_coverage): Adjust. (find_counters_section): Remove. * coverage.h (MAX_COUNTER_SECTIONS): Remove. (struct section_info, struct profile_info): Remove. (profile_info): Moved to basic-block.h. (coverage_counter_ref): Takes a counter number. (get_coverage_counts): Takes a counter number. Added summary parameter. (find_counters_section): Remove. * gcov-dump.c (tag_arc_counts): Rename to ... (tag_counters): ... here. Adjust. (tag_table): Move tag_counters to 3rd entry. Remove PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries. (dump_file): Check for counter tag values here. (tag_summary): Adjust. * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust. * gcov-io.h (GCOV_LOCKED): New. (GCOV_TAG_ARC_COUNTS): Rename to ... (GCOV_TAG_COUNTS_BASE): ... here. (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY): Remove. (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New. (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG, GCOV_TAG_IS_COUNTER): New. (struct gcov_ctr_summary): New. (struct gcov_summary): Adjust. (struct gcov_counter_section): Remove. struct gcov_counter_section_data): Remove. (struct gcov_function_info): Rename to ... (struct gcov_fn_info): ... here. Adjust. (struct gcov_ctr_info): New. (struct gcov_info): Adjust. * gcov.c (read_count_file): Adjust. (output_lines): Adjust. * libgcov.c (gcov_exit): Adjust. (__gcov_flush): Adjust. * mklibgcc.in (libgcc2_c_dep): Add gcov headers. * predict.c (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p, compute_frequency_function): Adjust profile_info use. * profile.c (struct counts_entry): Remove. (profile_info): Define here. (get_exec_counts): Adjust get_coverage_counts call. (compute_branch_probablilities): Remove find_counters_section call. (gen_edge_profiler): Adjust coverage_counter_ref call. * tracer.c (tail_duplicate): Adjust profile_info use. From-SVN: r65990
2003-04-12mklibgcc.in (libgcc-stage-start): For every multilib directory containing a ↵Alexandre Oliva1-0/+1
libgcc.a... * mklibgcc.in (libgcc-stage-start): For every multilib directory containing a libgcc.a, move lib* to the corresponding stage dir. From-SVN: r65505
2003-04-12mklibgcc.in (libgcc-stage-start): Move into the stage directory object files ↵Alexandre Oliva1-1/+1
from the non-libgcc/ multilib... * mklibgcc.in (libgcc-stage-start): Move into the stage directory object files from the non-libgcc/ multilib directories as well. From-SVN: r65503
2003-04-07mklibgcc.in: Use a here document to avoid running afoul of shells that ↵Zack Weinberg1-7/+14
generate control-A... * mklibgcc.in: Use a here document to avoid running afoul of shells that generate control-A from "echo \1". From-SVN: r65321
2003-02-04libgcc2.h, libgcc2.c (__ffsSI2): New.Richard Henderson1-3/+3
* libgcc2.h, libgcc2.c (__ffsSI2): New. (__ffsDI2): Rename from __ffsdi2. * mklibgcc.in (lib2funcs): Add _ffssi2. From-SVN: r62422
2003-02-01[multiple changes]Richard Henderson1-10/+15
2003-02-01 Richard Henderson <rth@redhat.com> * optabs.c (expand_unop): Use word_mode for outmode of bit scaners. * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2, __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change return type to Wtype. * libgcc-std.ver (GCC_3.4): Fix inheritance. * config/i386/i386.md (ffssi2): Use nonimmediate_operand for expander input constraint. 2003-02-01 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and OTI_parity. (clz_optab, ctz_optab, popcount_optab, parity_optab): New. * optabs.c (widen_clz, expand_parity): New. (expand_unop): Handle clz and parity. Hardcode SImode as outmode for libcalls to clz, ctz, popcount, and parity. (init_optabs): Init clz_optab, ctz_optab, popcount_optab and parity_optab, and set up libfunc handlers. * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2, __popcountsi2, __popcountdi2, __paritysi2 __paritydi2, __popcount_tab): New. * libgcc2.h: Declare them. * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c. * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab and parity_optab. * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New. * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT, BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL, BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL, BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL, BUILT_IN_PARITYLL): New. * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs and add optab argument. (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*. * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New. * expr.c (expand_expr): Handle them. * fold-const.c (tree_expr_nonnegative_p): Likewise. * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New. * reload1.c (eliminate_regs): Handle them. (elimination_effects): Likewise. * function.c (instantiate_virtual_regs_1): Likewise * genattrtab.c (check_attr_value): Likewise. * simplify-rtx.c (simplify_unary_operation): Likewise. * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR. * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY. (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY. * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New. * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to __builtin_arm_clz. * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move... * mklibgcc.in (lib2funcs): ...here and merge. Add new members. * doc/extend.texi (Other Builtins): Add new builtins. * doc/md.texi (Standard Names): Add new patterns. From-SVN: r62252
2003-01-27Makefile.in (LIB2FUNCS_ST): Remove _gcov.Nathan Sidwell1-1/+37
* Makefile.in (LIB2FUNCS_ST): Remove _gcov. (LIBGCOV): New variable. (libgcc.mk): Add LIBGCOV. (LIBGCC_DEPS): Add libgcov.c. (libgcov.a): New target. (clean): Remove libgcov.a. (install-libgcc): Do libgcov too. (stage1-start, stage2-start, stage3-start, stage4-start): Deal with libgcov.a. * libgcc2.c (L_gcov): Move into ... * libgcov.c: ... here. New file. * mklibgcc.in: Add libgcov rules. * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling. * doc/invoke.texi (profile-arcs, test-coverage): Update and clarify. * profile.c (index_counts_file): Remove duplicate check for open file. From-SVN: r61905
2003-01-26Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.Alexandre Oliva1-0/+17
* Makefile.in (FPBIT_FUNCS): Added _sf_to_tf. (DBBIT_FUNCS): Added _df_to_tf. (TPBIT_FUNCS): New. (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down. (LIBGCC_DEPS): Added TPBIT. * mklibgcc.in: Support TPBIT and TPBIT_FUNCS. From-SVN: r61832
2003-01-10Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native.Geoffrey Keating1-7/+3
* Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native. (RANLIB_TEST_FOR_TARGET): Delete. Don't pass down to sub-makes. Remove calls. * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET. From-SVN: r61171
2003-01-09Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR.Andreas Jaeger1-4/+4
* Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR. (install-gcc-tooldir, install-cpp, installdirs, install-common, install-driver, install-info, install-man, install-headers, install-include-dir, install-headers-tar, install-headers-cpio, install-headers-cp, install-mkheaders, install-collect2, uninstall): Prepend $(DESTDIR) to destination paths in all (un)installation commands. (install-driver): Rewrite $(LN) commands to support DESTDIR with "ln" as well as with "ln -s". (installdirs): Simply use mkinstalldirs. (install-libgcc, install-multilib): Also pass DESTDIR. * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the installation destination variable ldir. * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux, config/mips/t-iris5-6, config/pa/t-hpux-shlib, config/rs6000/t-aix43, config/rs6000/t-aix52, config/t-slibgcc-elf-ver, config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir) in the definition of SHLIB_INSTALL. * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to $(libsubdir) in the installation commands. From-SVN: r61076
2002-12-16Merge basic-improvements-branch to trunkZack Weinberg1-2/+2
From-SVN: r60174
2002-10-03gcc.c (print_multi_os_directory): New variable.Jakub Jelinek1-45/+25
* gcc.c (print_multi_os_directory): New variable. (option_map): Support --print-multi-os-directory. (struct prefix_list): Add os_multilib field. (multilib_os_dir): New variable. (static_specs): Add multilib_options. (find_a_file): Add multilib argument. Search in GCC or OS multilib subdirs if non-zero. (read_specs, execute): Update callers. (find_file): Likewise. Don't prefix name with multilib_dir, instead pass 1 as multilib option. (display_help): Include --print-multi-os-directory. (add_prefix): Add os_multilib argument. Initialize pl->os_multilib. (process_command): Update callers. Handle --print-multi-os-directory. (do_spec_1) ['D']: Use multilib_os_directory if pl->os_multilib is set. (main): Update find_a_file and add_prefix callers. Handle print_multi_os_directory. (struct mdswitchstr): New. (mdswitches, n_mdswitches): New variables. (used_arg): Add MULTILIB_DEFAULT switches too if they are not present on the command line nor their mutually incompatible switches. (default_arg): Optimize. (set_multilib_dir): Compute multilib_os_dir. Initialize mdswitches array. (print_multilib_info): Only print GCC multilib dir name, not OS multilib dirname. * genmultilib: Add osdirnames parameter. Output multilib_options variable. If osdirnames is specified, output dirnames as dirname:osdirname. * mklibgcc.in: Use MULTILIB_OSDIRNAMES, --print-multi-directory and --print-multi-os-directory instead of SHLIB_SLIBDIR_SUFFIXES to compute libgcc_s soname and install path. * Makefile.in (libgcc.mk): Pass MULTILIB_OSDIRNAMES instead of SHLIB_SLIBDIR_SUFFIXES to mklibgcc. (s_mlib): Pass MULTILIB_OSDIRNAMES or nothing as last genmultilib argument. * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Set. (SHLIB_SLIBDIR_SUFFIXES): Remove. * config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64, ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_COMMON): Remove. (STARTFILE_SPEC, ENDFILE_SPEC): Don't distinguish between -m32 and -m64. * config/sparc/t-sol2-64 (MULTILIB_OSDIRNAMES): Set. (SHLIB_SLIBDIR_SUFFIXES): Remove. * config/sparc/sol2-bi.h (STARTFILE_ARCH64_SPEC): Remove. (STARTFILE_ARCH_SPEC): Remove. * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Set. (SHLIB_SLIBDIR_SUFFIXES): Remove. * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Remove. * config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Set. (SHLIB_SLIBDIR_SUFFIXES): Remove. From-SVN: r57786
2002-05-31Makefile.in: Replace HOST_PREFIX...Nathanael Nerode1-2/+2
* gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature. * gcc/mklibgcc.in: Likewise. * gcc/config/arc/t-arc: Likewise. * gcc/configure.in: Likewise. * gcc/configure: Regenerate. From-SVN: r54118
2002-05-09t-linux64 (SHLIB_MAPFILES): Set.Jakub Jelinek1-1/+4
* config/sparc/t-linux64 (SHLIB_MAPFILES): Set. * config/sparc/libgcc-sparc-glibc.ver: New file. * config/cris/t-linux (SHLIB_MAPFILES): Remove. * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags. From-SVN: r53346
2002-05-09re PR target/6429 (libgcc_s problem on dual 32/64-bit arches)Jakub Jelinek1-8/+77
PR target/6429 * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc. * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for base multilibs. * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above. * config/t-slibgcc-sld (SHLIB_LINK): Likewise. * config/i386/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define. * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define. * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define. * lib/g77.exp (g77_link_flags): Append all multilib dirs containing libgcc_s*.so.1 below gcc object dir to LD_LIBRARY_PATH. * lib/g++.exp (g++_link_flags): Likewise. * lib/objc.exp (objc_target_compile): Likewise. * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Append all multilib dirs containing libgcc_s*.so.1 below gcc object dir to LD_LIBRARY_PATH. * testsuite/lib/libjava.exp (libjava_arguments): Append all multilib dirs containing libgcc_s*.so.1 below gcc object dir to LD_LIBRARY_PATH. From-SVN: r53345
2002-04-05* mklibgcc.in: Use $tmpmapfile, not tmp-$@.Jakub Jelinek1-2/+3
From-SVN: r51918
2002-04-05mklibgcc.in: Use separate libgcc.map for each multilib.Jakub Jelinek1-2/+2
* mklibgcc.in: Use separate libgcc.map for each multilib. * Makefile.in (distclean): Don't remove libgcc.map here. From-SVN: r51914
2002-03-22mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.Alan Modra1-1/+3
* mklibgcc.in (SHLIB_MKMAP_OPTS): New variable. * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo. * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc. From-SVN: r51153
2002-03-05mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc -r command line.Jakub Jelinek1-2/+2
* mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc -r command line. Don't hide any symbols if not building shared libgcc. From-SVN: r50321
2002-02-28* mklibgcc.in: Don't use GNU make extension.Jakub Jelinek1-8/+8
From-SVN: r50156
2002-02-27mklibgcc.in: Don't use \n in a line subject to interpretation by echo.Zack Weinberg1-1/+1
* mklibgcc.in: Don't use \n in a line subject to interpretation by echo. From-SVN: r50109