X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gold%2FChangeLog;h=b7876d4d020ed5e4d12b51bdf70d9a43915d634e;hb=c3d399e712774f8c8e4cd6b6a5bb8230c42bc760;hp=153a87d575ec23744d392928ea3c4532ef6f8259;hpb=bfdfa4cd8da8b878613e3ee98c8268f8aa72983c;p=deliverable%2Fbinutils-gdb.git diff --git a/gold/ChangeLog b/gold/ChangeLog index 153a87d575..b7876d4d02 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,572 @@ +2013-01-07 H.J. Lu + + * options.h (General_options): Add -fuse-ld= for GCC linker + option compatibility. + +2013-01-04 Cary Coutant + + * configure.ac: Fix typo restoring CXXFLAGS. + * configure: Regenerate. + +2013-01-04 Cary Coutant + + * testsuite/Makefile.am (CXXLINK_S): New macro. + (debug_msg_so.err, debug_msg_ndebug.err): Use CXXLINK_S. + * testsuite/Makefile.in: Regenerate. + +2013-01-02 H.J. Lu + + * version.cc (print_version): Update copyright year to 2013. + +2012-12-20 Ian Lance Taylor + + * layout.cc (Layout::special_ordering_of_input_section): New + function. + (Layout::layout): If input section requires special ordering, must + sort input sections. + (Layout::make_output_section): May sort .text input sections. + (Layout::is_section_name_prefix_grouped): Remove. + * layout.h (class Layout): Declare + special_ordering_of_input_section. Don't declare + is_section_name_prefix_grouped. + * output.cc (Output_section::add_input_section): Revert last + change. + (Output_section::Input_section_sort::match_file_name): Don't crash + if called on output section data. + (Output_section::Input_section_sort_compare): Sort based on + special ordering. + (Output_section::Input_section_sort_section_order_index_compare): + Revert last patch. + (Output_section::sort_attached_input_sections): Likewise. + +2012-12-18 Sriraman Tallam + + * layout.cc (Layout::is_section_name_prefix_grouped): New function. + * layout.h (Layout::is_section_name_prefix_grouped): New function. + * output.cc (Output_section::add_input_section): Check if section + name contains special prefix. Keep input sections to sort such + sections. + (Output_section::Input_section_sort_section_order_index_compare + ::operator()): Group sections according to prefixes. + (Output_section::sort_attached_input_sections): Add condition to + Input_section_entry constructor call. + * testsuite/Makefile.am (text_section_grouping): New test. + * testsuite/Makefile.in: Regenerate. + * testsuite/text_section_grouping.cc: New file. + * testsuite/text_section_grouping.sh: New file. + +2012-12-17 Nick Clifton + + * Makefile.am: Add copyright notice. + * NEWS: Likewise. + * README: Likewise. + * configure.ac: Likewise. + * ftruncate.c: Likewise. + * Makefile.in: Regenerate. + +2012-12-14 Cary Coutant + + * testsuite/Makefile.am (exception_separate_shared_12_test): Add + --no-as-needed flag. + (exception_separate_shared_12_test): Likewise. + (incremental_copy_test): Likewise. + * testsuite/Makefile.in: Regenerate. + +2012-12-14 Cary Coutant + + * dwp.cc (Dwp_output_file::add_cu_set): Check for duplicate CUs. + (Dwp_output_file::Dwp_index::enter_set): Add assert. + +2012-12-12 Alan Modra + + * powerpc.cc (class Track_tls): New. + (class Relocate, class Scan): Inherit Track_tls. + (Target_powerpc::Scan::local, global): Track tls optimization + and avoid creating plt entry for __tls_get_addr if all uses + are optimized away. + (Target_powerpc::Relocate::relocate): Update to use Track_tls. + +2012-12-12 Alan Modra + + * options.h (General_options): Add --toc-sort/--no-toc-sort. + Replace no_toc_optimize with toc_optimize. + * output.h (Output_section::input_sections): Provide non-const variant. + * powerpc.cc (Powerpc_relobj::has_small_toc_reloc_, + set_has_small_toc_reloc, has_small_toc_reloc): New variable and + accessors. + (Target_powerpc::Scan::local, global): Call set_has_small_toc_reloc. + (class Sort_toc_sections): New. + (Target_powerpc::do_finalize_sections): Sort toc sections. + (Target_powerpc::Relocate::relocate): Update toc_optimize test. + +2012-12-10 Roland McGrath + + * testsuite/binary_unittest.cc (read_all): New function. + (Sized_binary_test): Use it instead of ::read. + * fileread.cc (do_read): Don't assume pread always reads the whole + amount in a single call. + +2012-12-10 Alan Modra + + * powerpc.cc (Target_selector_powerpc::Target_selector_powerpc): + Set EM_PPC64 or EM_PPC here. + (Target_selector_powerpc::do_recognize): Delete. + +2012-12-10 Alan Modra + + * powerpc.cc (Powerpc_relobj::Powerpc_relobj): Init has14_ and + stub_table_. + (Target_powerpc::Branch_info::make_stub): Don't omit addend. + +2012-12-07 Roland McGrath + + * testsuite/binary_unittest.cc (Sized_binary_test): + Use open_descriptor rather than ::open. + +2012-12-07 Alan Modra + + * powerpc.cc (Stub_table::do_write): Delete redundant Address + typedef and invalid_address constant. + (Output_data_glink, Stub_table, Target_powerpc): Explicitly + instantiate constants. + +2012-12-06 Roland McGrath + + * configure.ac (HAVE_ZLIB): Use AM_ZLIB instead of AC_SEARCH_LIBS. + Use $ac_cv_header_zlib_h = yes as the condition in AM_CONDITIONAL. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + +2012-12-07 Alan Modra + + * options.h (General_options): Add no_toc_optimize. + * powerpc.cc (ok_lo_toc_insn): New function. + (Target_powerpc::Relocate::relocate): Optimize toc access sequences. + +2012-12-06 Alan Modra + + * options.h (General_options): Add plt_align, plt_static_chain, + plt_thread_safe. Update stub_group_size help text. + * powerpc.cc (Target_powerpc::plt_thread_safe): New access function + for new plt_thread_safe_ var. + (use_plt_offset): Correct comments. + (Target_powerpc::do_relax): Look for thread creation symbols to + determine default plt_thread_safe value. Clear plt call stubs + as well as branch stubs each iteration. + (add_2_2_11, add_12_12_11, bnectr_p4, cmpldi_2_0, xor_11_11_11): New + insn constants. + (l, hi, ha, write_insn): Move earlier. + (Stub_table): Delete prev_size, add last_plt_size and last_branch_size. + (Stub_table::clear_stubs): Rename from clear_long_branch_stubs, clear + plt stubs too. + (Stub_table::update_size): Adjust. + (Stub_table::prev_size, set_prev_size): Delete. + (Stub_table::stub_align): Let --plt-align affect result. + (Stub_table::plt_call_size): Calculate sizes for various stubs. + (Stub_table::branch_stub_size): Use last_plt_size in address calc. + (Stub_table::add_plt_call_stub): Pass iterator to plt_call_size. + (Stub_table::do_write): Support more stub variants. + +2012-12-04 Alan Modra + + * powerpc.cc (Powerpc_relobj::do_scan_relocs): Delete. + (Target_powerpc::do_define_standard_symbols): New function. + +2012-12-03 Alan Modra + + * output.h: Formatting, whitespace. + +2012-12-03 Alan Modra + + * layout.h (Layout::get_executable_sections): Declare. + * layout.cc (Layout::get_executable_sections): New function. + * arm.cc (Target_arm::group_sections): Use it. + (Arm_output_section::group_sections): Delete now redundant test. + * output.cc (Output_reloc::Output_reloc): Add is_relative. + param to handle relative relocs. + * output.h (Output_reloc::Output_reloc ): Likewise. + (Output_data_reloc::add_absolute): Adjust. + (Output_data_reloc::add_relative): New function. + (Output_data::reset_data_size): New function. + (Output_relaxed_input_section::set_relobj, set_shndx): New functions. + (Output_section::set_addralign): New function. + (Output_section::checkpoint_set_addralign): New function. + (Output_section::clear_section_offsets_need_adjustment): New function. + (Output_section::input_sections): Make public. + * powerpc.cc (class Output_data_brlt_powerpc): New. + (class Stub_table, class Stub_control): New. + (Powerpc_relobj::has14_, set_has_14bit_branch, has_14bit_branch, + stub_table_, set_stub_table, stub_table): New vectors and accessor + functions. + (Target_powerpc::do_may_relax, do_relax, push_branch, + new_stub_table, stub_tables, brlt_section, group_sections, + add_branch_lookup_table, find_branch_lookup_table, + write_branch_lookup_table, make_brlt_section): New functions. + (Target_powerpc::struct Sort_sections, class Branch_info): New. + (Target_powerpc::brlt_section_, stub_tables_, branch_lookup_table_, + branch_info_): New vars. + (Target_powerpc::make_plt_entry, make_local_ifunc_plt_entry): Don't + make call stubs here. + (Output_data_glink): Remove all call stub handling from this class. + (Target_powerpc::Scan::local, global): Save interesting branch + relocs and relocs for ifunc. Adjust calls to plt entry functions. + (Target_powerpc::do_finalize_sections): Only make reg save/restore + functions on final link. + (Target_powerpc::Relocate::relocate): Adjust lookup of call stubs. + Handle long branch destinations too. + (Target_powerpc::do_dynsym_value, do_plt_address_for_global, + do_plt_address_for_local): Adjust lookup of plt call stubs. + +2012-11-30 Alan Modra + + * powerpc.c (Target_powerpc::Scan::global): Don't emit relative + relocs against protected symbols when building 32-bit shared libs. + +2012-11-30 Alan Modra + + * powerpc.cc (Target_powerpc::make_plt_section): Add symtab + param. Call got_section() to make .got. Update all callers + and their callers and so on. + +2012-11-30 Alan Modra + + * powerpc.cc (Powerpc_relobj::do_scan_relocs): Make STB_LOCAL + _GLOBAL_OFFSET_TABLE_ rather than STB_WEAK. + (Output_data_got_powerpc::make_header): Update _GLOBAL_OFFSET_TABLE_ + value if it already exists. + +2012-11-19 H.J. Lu + + PR gold/14858 + * x86_64.cc (Relocate::tls_ld_to_le): Support x32. + +2012-11-14 Roland McGrath + + * arm.cc (Output_data_plt_arm_nacl::first_plt_entry): Use bic rather + than bfc instruction for data sandboxing. + +2012-11-08 Alan Modra + + * po/POTFILES.in: Regenerate. + +2012-11-05 Alan Modra + + * configure.ac: Apply 2012-09-10 change to config.in here. + * configure: Regenerate. + +2012-11-05 Alan Modra + + * powerpc.cc (Powerpc_relobj): Delete "Offset" typedef. + (struct Opd_ent): Use "Address" rather than "Offset". + (Output_data_got_powerpc::got_base_offset): Return Valtype. + (Target_powerpc::got_section): Make public. + (Target_powerpc::scan_relocs): Move code setting symbols.. + (Powerpc_relobj::do_scan_relocs): ..to here, new function. + Create _SDA_BASE_ only when referenced. + +2012-11-02 Roland McGrath + + * i386.cc (Target_i386::relocate_relocs): Remove extraneous typename + from last change. + +2012-11-01 Roland McGrath + + * target.h (Sized_target::relocate_relocs): Use Elf_Off + for offset_in_output_section parameter. + (Sized_target::relocate_special_relocatable): Likewise. + * arm.cc (Target_arm::relocate_relocs): Likewise. + (Target_arm::relocate_special_relocatable): Likewise. + * i386.cc (Target_i386::relocate_relocs): Likewise. + * powerpc.cc (Target_powerpc::relocate_relocs): Likewise. + * sparc.cc (Target_sparc::relocate_relocs): Likewise. + * target-reloc.h (relocate_relocs): Likewise. + * testsuite/testfile.cc (Target_test): Likewise. + * tilegx.cc (Target_tilegx::relocate_relocs): Likewise. + * x86_64.cc (Target_x86_64::relocate_relocs): Likewise. + + * system.h: Move inclusion of to after in + [ENABLE_NLS] section, and separately at top of [!ENABLE_NLS] section. + + * descriptors.cc (set_close_on_exec): Add ATTRIBUTE_UNUSED to the + parameter, which is unused in the [!F_SETFD] case. + + * dwarf_reader.cc (Sized_elf_reloc_mapper::symbol_section): Cast + SYMNDX to off_t before comparing it to this->data_size(). + * output.cc (Output_symtab_xindex::endian_do_write): Likewise. + * incremental.cc (Output_section_incremental_inputs::do_write): + Cast GLOBAL_SYM_COUNT to off_t before comparing it to SYMTAB_SIZE. + + * nacl.cc: Include "libiberty.h" for vasprintf declaration. + +2012-10-30 Steve McIntyre + + * gold.cc (Target_arm::do_adjust_elf_header): Add the + hard-float/soft-float ABI flag as appropriate for ET_DYN/ET_EXEC + in EABI_VER5. + +2012-10-29 Cary Coutant + + * dwp.cc (usage): Add file and exit status parameters; + add --help and --version options. + (print_version): New function. + (main): Add --help and --version options. + +2012-10-25 H.J. Lu + + * testsuite/Makefile.am (MOSTLYCLEANFILES): Add + final_layout_sequence.txt. + * testsuite/Makefile.in: Regenerated. + +2012-10-25 H.J. Lu + + * testsuite/Makefile.am (COMPILE1): New variable. Renamed from + COMPILE generated by automake. + (LINK1): Likewise. + (CXXCOMPILE1): Likewise. + (CXXLINK1): Likewise. + (COMPILE): Strip out -Wp,-D_FORTIFY_SOURCE= from COMPILE1. + (LINK): Likewise. + (CXXCOMPILE): Likewise. + (CXXLINK): Likewise. + * testsuite/Makefile.in: Regenerated. + +2012-10-25 H.J. Lu + + * dwp.cc (Dwo_file::record_target_info): Issue a fatal error + on bad fwrite return. + +2012-10-25 H.J. Lu + + * dwp.cc (Dwo_file::remap_str_offset): Use section_offset_type + on val. + +2012-10-23 Cary Coutant + + * testsuite/Makefile.am (TEST_OBJCOPY): New macro. + * testsuite/Makefile.in: Regenerate. + * testsuite/dwp_test.h: New source file. + * testsuite/dwp_test_1.cc: New source file. + * testsuite/dwp_test_1.s: New source file. + * testsuite/dwp_test_1.sh: New source file. + * testsuite/dwp_test_1b.cc: New source file. + * testsuite/dwp_test_1b.s: New source file. + * testsuite/dwp_test_2.cc: New source file. + * testsuite/dwp_test_2.s: New source file. + * testsuite/dwp_test_2.sh: New source file. + * testsuite/dwp_test_main.cc: New source file. + * testsuite/dwp_test_main.s: New source file. + +2012-10-23 Cary Coutant + + * dwp.h: New header file. + * dwp.cc: New source file. + * gold.h: Move shared declarations to system.h. + * system.h: New header file. + * Makefile.am: Add dwp. + * Makefile.in: Regenerate. + +2012-10-23 Cary Coutant + + * dwarf_reader.cc (Dwarf_ranges_table::read_range_list): Call + Dwarf_info_reader::read_from_pointer. + (Dwarf_pubnames_table::read_header): Likewise. + (Dwarf_pubnames_table::next_name): Likewise. + (Dwarf_die::read_attributes): Likewise. + (Dwarf_die::skip_attributes): Likewise. + (Dwarf_info_reader::read_from_pointer): New function template. + * dwarf_reader.h (Dwarf_ranges_table): Add dwinfo_. + (Dwarf_pubnames_table): Likewise. + (Dwarf_info_reader::read_from_pointer): New function template. + * gdb-index.cc (Gdb_index_info_reader): Adjust call to + Dwarf_pubnames_table ctor. + +2012-10-23 Cary Coutant + + * dwarf_reader.cc (Dwarf_info_reader::do_parse): Use stored + abbrev_shndx. + * dwarf_reader.h (Dwarf_info_reader::Dwarf_info_reader): Initialize + abbrev_shndx_. + (Dwarf_info_reader::set_abbrev_shndx): New method. + (Dwarf_info_reader::abbrev_shndx_): New data member. + +2012-10-23 Cary Coutant + + * dwarf_reader.cc (make_elf_reloc_mapper): Check size and endianness + from object, not parameters. + (Dwarf_info_reader::parse): Likewise. + * object.h (Relobj::elfsize, Relobj::is_big_endian): New methods. + (Relobj::do_elfsize, Relobj::do_is_big_endian): New methods. + (Sized_relobj::do_elfsize, Sized_relobj::do_is_big_endian): New + methods. + +2012-10-23 Cary Coutant + + * fileread.cc (Input_file::Input_file): New constructor. + * fileread.h (class Input_file): Add new constructor. + +2012-10-18 Alan Modra + + PR gold/14727 + * object.cc (Relobj::is_section_name_included): Also match + .sdata personality section. + +2012-10-18 Alan Modra + + * target-reloc.h (class Default_comdat_behavior): New, package up.. + (get_comdat_behaviour): ..this. + (relocate_section): Add Relocate_comdat_behavior template arg, + adjust code to suit. + * arm.cc (Target_arm::relocate_section): Adjust to suit. + (Target_arm::scan_reloc_section): Likewise. + * i386.cc (Target_i386::relocate_section): Likewise. + * sparc.cc (Target_sparc::relocate_section): Likewise. + * tilegx.cc (Target_tilegx::relocate_section): Likewise. + * x86_64.cc (Target_x86_64::relocate_section): Likewise. + * powerpc.cc (class Relocate_comdat_behavior): New. + (Target_powerpc::relocate_section): Don't zap opd relocs. Supply + gold::relocate_section with new template arg. + +2012-10-18 Alan Modra + + * powerpc.cc (Target_powerpc::Scan::local, global): Always emit + dynamic relocs for GOT_TPREL got entries, without symbol if + resolving locally. + (Target_powerpc::do_gc_add_reference): Don't add for dynamic objects. + (Target_powerpc::scan_relocs): Define _GLOBAL_OFFSET_TABLE_ early. + (Target_powerpc::Relocate:relocate): REL32 reloc may be unaligned. + +2012-10-17 Alan Modra + + PR gold/14726 + * gold.cc (queue_middle_tasks): Call gc_mark_symbol on _init and _fini. + +2012-10-16 Sriraman Tallam + + * layout.cc (Layout::include_section): Keep sections marked + SHF_EXCLUDE when doing relocatable links. + +2012-10-16 Alan Modra + + * powerpc.cc (Target_powerpc::define_save_restore_funcs): New func. + (Target_powerpc::do_finalize_sections): Call it. + (Output_data_save_res): New class and supporting functions. + (Target_powerpc::symval_for_branch): Only look up .opd entry for + normal symbols defined in object files. + +2012-10-12 Alan Modra + + * powerpc.cc (Powerpc_relobj::add_gc_mark, process_gc_mark): New. + (struct Opd_ent): Make "discard" a bit field. Add "gc_mark". + (Target_powerpc::do_gc_mark_symbol): Delay marking function code + section if scan_opd_relocs not yet called. + (Target_powerpc::gc_process_relocs): Call process_gc_mark. + +2012-10-12 Alan Modra + + * powerpc.cc (Output_data_plt_powerpc::add_entry, add_ifunc_entry, + add_local_ifunc_entry): Revert last change. + (Target_powerpc::make_plt_entry, make_local_ifunc_plt_entry): Likewise. + +2012-10-05 Alan Modra + + * powerpc.cc (Target_powerpc::do_plt_address_for_local, + do_plt_address_for_global): New functions. + (Output_data_got_powerpc::do_write): Don't segfault when linking + statically. + (Output_data_plt_powerpc::add_entry, add_ifunc_entry, + add_local_ifunc_entry): Return true on adding entry.. + (Target_powerpc::make_plt_entry): ..use to avoid unnecessary + glink->add_entry call. Remove unused symtab param. Adjust calls. + (Target_powerpc::make_local_ifunc_plt_entry): Likewise. + (Target_powerpc::make_iplt_section): Remove symtab param. Don't + set up symbols here. + (Target_powerpc::do_finalize_sections): Instead set up __rela_iplt + syms here. Do so even when no .iplt. Don't segfault when linking + statically. + (Output_data_glink::add_entry, find_entry): Rearrange params. Add + new variants without reloc param. + (Glink_sym_ent::Glink_sym_ent): Likewise. + (Target_powerpc::Scan::reloc_needs_plt_for_ifunc): Accept any + reloc when refs will resolve to plt call stub. + (Target_powerpc::Scan::local): Correct ifunc handling. Allow + R_PPC_PLTREL24 to resolve locally. + (Target_powerpc::Scan::global): Correct ifunc handling. + (Target_powerpc::Relocate::relocate): Correct local sym glink + lookup. Don't destroy "value" when we have a plt call stub, + and when checking plt call validity. + (Target_powerpc::do_dynsym_value): Simplify. + +2012-10-05 Alan Modra + + * i386.cc (Output_data_plt_i386::address_for_global, + address_for_local): Add plt offset to returned value. Adjust uses. + * sparc.cc (Output_data_plt_sparc::address_for_global, + address_for_local): Likewise. + * tilegx.cc (Output_data_plt_tilegx::address_for_global, + address_for_local): Likewise. + * x86_64.cc (Output_data_plt_x86_64::address_for_global, + address_for_local): Likewise. + * target.h (Target::plt_address_for_global, plt_address_for_local): + Update comment. + * output.cc (Output_reloc::symbol_value): Don't add plt offset here. + (Output_data_got::Got_entry::write): Nor here. + * output.h: Comment fix. + +2012-10-02 Jiong Wang + + * tilegx.cc (Target_tilegx::do_finalize_sections): Adjust + global_offset_table_ value for larget got. + (Target_tilegx::Relocate::relocate): Handle adjusted got value. + +2012-09-29 Alan Modra + + * powerpc.cc (Target_powerpc::iplt_): New output section. + (Target_powerpc::iplt_section, make_iplt_section, + reloc_needs_plt_for_ifunc, make_local_ifunc_plt_entry): New functions. + (Target_powerpc::make_plt_entry): Handle ifunc syms. + Target_powerpc::plt_entry_count): Count iplt entries too. + (Output_data_plt_powerpc::Output_data_plt_powerpc): Don't create + reloc section in constructor. New params. + (Target_powerpc::make_plt_section): Create reloc section here instead. + (Output_data_plt_powerpc::add_ifunc_entry, add_local_ifunc_entry): New + functions. + (Output_data_plt_powerpc::initial_plt_entry_size_, name_): New vars. + (Output_data_glink::add_entry, find_entry): New functions to + deal with local syms. + (Glink_sym_ent): Add support for local syms. + (Output_data_glink::do_write): Handle ifunc plt entries. + (Target_powerpc::Scan::get_reference_flags): Handle more relocs. + (Target_powerpc::Scan::local, global): Handle ifunc syms. + (Target_powerpc::Relocate::relocate): Likewise. + (Target_powerpc::do_dynsym_value): Use glink stub, not plt entry. + +2012-09-25 Alan Modra + + * object.h (Sized_relobj_file::adjust_local_symbol, + do_adjust_local_symbol): New functions. + * object.cc (Sized_relobj_file::do_count_local_symbols): Use the above. + * powerpc.cc (Powerpc_relobj::do_adjust_local_symbol): New function. + (Powerpc_relobj::scan_opd_relocs): Warn on unexpected opd relocs + and irregular opd entry spacing. + (Powerpc_relobj::do_read_relocs): Add opd size checks. + (Global_symbol_visitor_opd): New functor. + (Target_powerpc::do_finalize_sections): Omit global symbols defined + on deleted opd entries. + +2012-09-15 Jiong Wang + + * tilegx.cc: New file. + * Makefile.am (TARGETSOURCES): Add tilegx.cc + (ALL_TARGETOBJS): Add tilegx.$(OBJEXT) + * configure.tgt: Add entries for tilegx*. + * configure.ac: Likewise. + * Makefile.in: Rebuild. + * configure: Likewise. + * testsuite/icf_safe_test.sh (arch_specific_safe_fold): Handle + tilegx. + 2012-09-13 Alan Modra * target-reloc.h (scan_relocs): Call scan.local for relocs @@ -13712,3 +14281,16 @@ 2008-03-21 Ian Lance Taylor * Added source code to GNU binutils. + +Copyright (C) 2008-2012 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: