aboutsummaryrefslogtreecommitdiff
path: root/bfd/ChangeLog
blob: 6e07ae370f1798a1c8e40307e788965b2d9c90c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
2010-02-08  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (bfd_mach_o_canonicalize_one_reloc): Set reloc.r_extern
	for non-scattered relocations.

2010-02-08  Nathan Sidwell  <nathan@codesourcery.com>

	* elf32-ppc.c (ppc_elf_begin_write_processing): Allow empty
	apuinfo sections, only scan input sections once and reuse the
	buffer.

2010-02-08  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* archures.c (bfd_mach_ppc_titan): Define.
	* bfd-in2.h: Regenerate.
	* cpu-powerpc.c (bfd_powerpc_archs): Add titan entry.

2010-02-08  Alan Modra  <amodra@gmail.com>

	* elf32-ppc.c (ppc_elf_check_relocs): Remove dead ifunc code.

2010-02-05  Sterling Augustine  <sterling@tensilica.com>

	* elf.c (assign_file_positions_for_load_sections) Update lma of
	section	if necessary.  Fixes Bugzilla 11219.

2010-02-05  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c: Remove trailing white spaces.
	* elf64-x86-64.c: Likewise.

2010-02-03  Nick Clifton  <nickc@redhat.com>

	* elf-bfd.h (emum elf_object_id): Rename to elf_target_id.  Add
	entries for other architectures.
	(struct elf_link_hash_table): Add hash_table_id field.
	(elf_hash_table_id): New accessor macro.
	* elflink.c (_bfd_elf_link_hash_table_init): Add target_id
	parameter.
	* elf-m10300.c (elf32_mn10300_hash_table): Check table id before
	returning cast pointer.
	(elf32_mn10300_link_hash_table_create): Identify new table as
	containing MN10300 extensions.
	(mn10300_elf_relax_section): Check pointer returned by
	elf32_mn10300_hash_table.
	* elf32-arm.c: Likewise, except using ARM extensions.
	* elf32-avr.c: Likewise, except using AVR extensions.
	* elf32-bfin.c: Likewise, except using BFIN extensions.
	* elf32-cris.c: Likewise, except using CRIS extensions.
	* elf32-frv.c: Likewise, except using FRV extensions.
	* elf32-hppa.c: Likewise, except using HPPA32 extensions.
	* elf32-i386.c: Likewise, except using I386 extensions.
	* elf32-lm32.c: Likewise, except using LM32 extensions.
	* elf32-m32r.c: Likewise, except using M32RM extensions.
	* elf32-m68hc11.c: Likewise, except using M68HC11 extensions.
	* elf32-m68hc1x.c: Likewise, except using M68HC11 extensions.
	* elf32-m68hc1x.h: Likewise, except using M68HC11 extensions.
	* elf32-m68k.c: Likewise, except using M68K extensions.
	* elf32-microblaze.c: Likewise, except using MICROBLAZE extensions.
	* elf32-ppc.c: Likewise, except using PPC32 extensions.
	* elf32-s390.c: Likewise, except using S390 extensions.
	* elf32-sh.c: Likewise, except using SH extensions.
	* elf32-spu.c: Likewise, except using SPU extensions.
	* elf32-xtensa.c: Likewise, except using XTENSA extensions.
	* elf64-alpha.c: Likewise, except using ALPHA extensions.
	* elf64-hppa.c: Likewise, except using HPPA64 extensions.
	* elf64-ppc.c: Likewise, except using PPC64 extensions.
	* elf64-s390.c: Likewise, except using S390 extensions.
	* elf64-x86-64.c: Likewise, except using X86_64 extensions.
	* elfxx-ia64.c: Likewise, except using IA64 extensions.
	* elfxx-mips.c: Likewise, except using MIPS extensions.
	* elfxx-sparc.c: Likewise, except using SPARC extensions.
	* elfxx-sparc.h: Likewise, except using SPARC extensions.
	* elf32-cr16.c (struct elf32_cr16_link_hash_table): Delete
	redundant structure.
	(elf32_cr16_hash_table): Delete unused macro.
	(elf32_cr16_link_hash_traverse): Delete unused macro.
	* elf32-score.c: Likewise.
	* elf32-score7.c: Likewise.
	* elf32-vax.c: Likewise.
	* elf64-sh64.c: Likewise.

2010-02-03  Alan Modra  <amodra@gmail.com>

	* elf64-ppc.c (struct plt_entry): Move earlier in file.
	(struct got_entry): Likewise.  Add is_indirect and got.ent fields.
	(struct ppc64_elf_obj_tdata): Change tlsld_got to be a struct got_entry.
	Update all uses.
	(struct ppc_link_hash_table): Add got_reli_size and second_toc_pass.
	Remove no_multi_toc.
	(update_local_sym_info, ppc64_elf_check_relocs): Clear is_indirect
	when allocating a new struct got_entry.
	(allocate_got): New function, extracted from..
	(allocate_dynrelocs): ..here.  Abort on got entry in non-ppc64 bfd.
	(ppc64_elf_size_dynamic_sections): Track got relocs allocated in
	.reliplt by got_reli_size.  Set owner on ppc64_tlsld_got entries.
	(ppc64_elf_setup_section_lists): Remove output_bfd param and
	no_multi_toc, add add_stub_section and layout_sections_again.  Stash
	new params in htab.  Extract some code to..
	(ppc64_elf_start_multitoc_partition): ..here.  New function.
	(ppc64_elf_next_toc_section): Check for linker script errors.  Handle
	second pass toc scan.
	(merge_got_entries, merge_global_got, reallocate_got): New functions.
	(ppc64_elf_reinit_toc): Rename to..
	(ppc64_elf_finish_multitoc_partition): ..this.
	(ppc64_elf_layout_multitoc): New function.
	(ppc64_elf_size_stubs): Delete output_bfd, add_stub_section and
	layout_sections_again params.
	(ppc64_elf_relocate_section): Handle indirect got entries.
	* elf64-ppc.h: Update prototypes.  Declare new functions.

2010-02-02  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (elfcore_write_xstatereg): New.

	* elf.c (elfcore_grok_xstatereg): New.
	(elfcore_write_xstatereg): Likewise.
	(elfcore_grok_note): Handle NT_X86_XSTATE.
	(elfcore_write_register_note): Handle .reg-xstate section.

2010-02-01  Tristan Gingold  <gingold@adacore.com>

	* som.c (som_write_ar_hdr): Define this macro.

2010-01-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* elf32-hppa.c (final_link_relocate): Convert R_PARISC_TLS_GD21L,
	R_PARISC_TLS_LDM21L and R_PARISC_TLS_IE21L relocations that use the
	linkage table pointer to use the global table pointer if not doing
	a shared link.

2010-01-29  Joel Brobecker  <brobecker@adacore.com>

	* elf.c (elfcore_grok_lwpstatus): Do not overwrite the core signal
	if it has already been set.

2010-01-27  Tristan Gingold  <gingold@adacore.com>

	* vms.h: Remove trailing spaces.
	(struct hdr_struct): Remove unused hdr_c_cpr field.
	(enum file_format_enum): Add comments.
	* vms.c (vms_bfd_print_private_bfd_data): New function that
	replaces the macro.
	Remove trailing spaces.
	* vms-misc.c: Improve comments.
	(_bfd_vms_get_object_record): Also handle files without pads.
	* vms-hdr.c (_bfd_vms_write_dbg): Fix format string.
	* vms-gsd.c (struct flagdescstruct): Make name field const.
	(gsyflagdesc): Fix typo.

2010-01-27  Alan Modra  <amodra@gmail.com>

	PR ld/11217
	* elf64-ppc.c (struct ppc_link_hash_table): Add toc_bfd, toc_first_sec.
	(ppc64_elf_setup_section_lists): Init them.
	(ppc64_elf_next_toc_section): Don't partition multi-toc between .got
	and .toc on the same input file.
	(ppc64_elf_relocate_section): Correct GOT entry offset.

2010-01-26  Tristan Gingold  <gingold@adacore.com>

	* targets.c (BFD_JUMP_TABLE_ARCHIVE): Add initializer for write_ar_hdr.
	(bfd_target): Add _bfd_write_ar_hdr_fn field.
	* archive.c (is_bsd44_extended_name): New macro.
	(_bfd_generic_read_ar_hdr_mag): Use it.  Add extra_size.
	(bfd_slurp_armap): Also check for "__.SYMDEF" as a BSD4.4 extended
	name.
	(_bfd_archive_bsd44_construct_extended_name_table): New function.
	(_bfd_generic_write_ar_hdr): Ditto.
	(_bfd_bsd44_write_ar_hdr): Ditto.
	(_bfd_write_archive_contents): Call _bfd_write_ar_hdr.
	(bsd_write_armap): Adjust firstreal computation.
	* libbfd-in.h (struct areltdata): Add extra_size field.
	(_bfd_generic_write_ar_hdr): Add prototype.
	(_bfd_bsd44_write_ar_hdr): Ditto.
	(_bfd_write_ar_hdr): Define.
	(_bfd_noarchive_write_ar_hdr): Ditto.
	(_bfd_archive_bsd_write_ar_hdr): Ditto.
	(_bfd_archive_coff_write_ar_hdr): Ditto.
	(_bfd_archive_bsd44_slurp_armap): Ditto.
	(_bfd_archive_bsd44_slurp_extended_name_table): Ditto.
	(_bfd_archive_bsd44_construct_extended_name_table): New prototype.
	(_bfd_archive_bsd44_truncate_arname): Ditto.
	(_bfd_archive_bsd44_write_armap): Ditto.
	(_bfd_archive_bsd44_read_ar_hdr): Ditto.
	(_bfd_archive_bsd44_write_ar_hdr): Ditto.
	(_bfd_archive_bsd44_openr_next_archived_file): Ditto.
	(_bfd_archive_bsd44_get_elt_at_index): Ditto.
	(_bfd_archive_bsd44_generic_stat_arch_elt): Ditto.
	(_bfd_archive_bsd44_update_armap_timestamp): Ditto.
	* libbfd.h: Regenerate.
	* oasys.c (oasys_write_ar_hdr): Define.
	* libecoff.h (_bfd_ecoff_write_ar_hdr): Define.
	* ieee.c (ieee_write_ar_hdr): Define.
	* elf64-mips.c (bfd_elf64_archive_write_ar_hdr): Define.
	* coff-rs6000.c (rs6000coff_vec): Adjust for write_ar_hdr field.
	(bfd_pmac_xcoff_backend_data): Ditto.
	* coff64-rs6000.c (rs6000coff64_vec): Ditto.
	(bfd_xcoff_aix5_backend_data): Ditto.
	* coff-alpha.c (alpha_ecoff_write_ar_hdr): Define.
	* aout-target.h (MY_write_ar_hdr): Define it if not defined.
	* aout-tic30.c (MY_write_ar_hdr): Ditto.
	* mach-o-target.c (TARGET_NAME): Use _bfd_archive_bsd44 archive.
	(bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr)
	(bfd_mach_o_slurp_armap, bfd_mach_o_slurp_extended_name_table)
	(bfd_mach_o_construct_extended_name_table)
	(bfd_mach_o_truncate_arname, bfd_mach_o_write_armap)
	(bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt)
	(bfd_mach_o_update_armap_timestamp): Moved to mach-o.c
	* mach-o.c (bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr)
	(bfd_mach_o_slurp_armap, bfd_mach_o_slurp_extended_name_table)
	(bfd_mach_o_construct_extended_name_table)
	(bfd_mach_o_truncate_arname, bfd_mach_o_write_armap)
	(bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt)
	(bfd_mach_o_update_armap_timestamp): Moved from mach-o-target.c
	* bfd-in2.h: Regenerate.

2010-01-26  Alan Modra  <amodra@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/11218
	* elflink.c (elf_link_output_extsym): Do not ignore undefined
	symbols with ref_regular set when gc_sections is active.

2010-01-25  Alan Modra  <amodra@gmail.com>

	PR ld/11217
	* elf64-ppc.c (ppc64_elf_tls_optimize): Optimize tls sequences
	with relocations against undefined weak symbols.
	(ppc64_elf_relocate_section): Don't optimize calls to undefined
	weak functions if the symbol is dynamic.
	(ppc64_elf_relocate_section): Edit tprel tls sequences.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	(_bfd_elf_ppc_at_tprel_transform): New function.
	* bfd-in.h (_bfd_elf_ppc_at_tprel_transform): Declare.
	* bfd-in2.h: Regenerate.

2010-01-23  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* coff-rs6000.c (xcoff_howto_table): Change size to 0 and bitsize to 1.
	(_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_NONE.
	* coff64-rs6000.c (xcoff64_howto_table): Change size to 0 and
	bitsize to 1.
	(xcoff64_reloc_type_lookup): Handle BFD_RELOC_NONE.

2010-01-21  Nick Clifton  <nickc@redhat.com>

	* elflink.c (elf_link_add_object_symbols): Look up name of
	undefined symbol both before and after versioning has been
	applied.  Do not bother with symbols that are weakly undefined.

2010-01-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* elf32-s390.c (elf32_s390_merge_private_bfd_data): New function.
	(bfd_elf32_bfd_merge_private_bfd_data): New macro definition.

2010-01-19  Cary Coutant  <ccoutant@google.com>

	* dwarf2.c (read_attribute_value): Add DW_FORM_ref_sig8.

2010-01-19  Daisuke Hatayama  <d.hatayama@jp.fujitsu.com>
	    Alan Modra <amodra@gmail.com>

        * elfcode.h (elf_swap_ehdr_out): Handle e_phnum > 0xffff.
	(elf_object_p): Read e_phnum extension.
	(elf_write_shdrs_and_ehdr): Write e_phnum extension.
        * elfcore.h (elf_core_file_p): Read e_phnum extension.  Sanity check
	that we can read last program header.

2010-01-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* elf32-arm.c (elf32_arm_howto_table_1): Correct bitsize of
	R_ARM_THM_CALL entry.
	(elf32_arm_final_link_relocate): Correct calculation of
	reloc_signed_max when doing a R_ARM_THM_CALL, R_ARM_THM_XPC22,
	or R_ARM_THM_JUMP24 relocation.

2010-01-18  Alan Modra  <amodra@gmail.com>

	PR 11168
	* coffcode.h (coff_compute_section_file_positions): Move Rs6000COFF_C
	block past vars in COFF_IMAGE_WITH_PE block.  Report error on more
	than 32k sections.

2010-01-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix compilation warning on gcc-3.4.
	* vms-tir.c (start_etir_record, sto_imm): Rename the prototype
	parameter index to sec_index according to the function definition.

2010-01-13  Chao-ying Fu  <fu@mips.com>

	* elfxx-mips.c (JR_TO_B_P): New define to transform JR to B.
	It is true for all CPUs.
	(jal_reloc_p): New function.
	(mips_elf_calculate_relocation): Rename require_jalxp to
	cross_mode_jump_p.
	Update comment for CROSS_MODE_JUMP_P.
	Set up cross_mode_jump_p based on the mode change.
	(mips_elf_perform_relocation): Rename require_jalx to cross_mode_jump_p.
	Update comment for CROSS_MODE_JUMP_P.
	Test cross_mode_jump_p and jal_reloc_p to turn jal to jalx.
	Use !cross_mode_jump_p to guard conversion.
	Convert "jr t9" to "b", if possible.
	(_bfd_mips_elf_relocate_section): Rename require_jalx to
	cross_mode_jump_p.
	Pass &cross_mode_jump_p to call mips_elf_calculate_relocation.
	Pass cross_mode_jump_p to call mips_elf_perform_relocation.

2010-01-13  Nick Clifton  <nickc@redhat.com>

	* cpu-m32c.c (m32c_scan): New function.  Ensures that a scan for
	"m32c" returns the m32c arch_info_struct and not the m16c
	arch_info_struct.
	(arch_info_struct): Use the new scan function.
	(bfd_m32c_arch): Likewise.

2010-01-13  Tristan Gingold  <gingold@adacore.com>

	* config.bfd: Remove duplicated target vector for i386-*-darwin.
	Appends new arch instead of overriding.
	Use mach_o_x86_64_vec for x86_64-*-darwin.
	* configure.in: Add mach_o_x86_64_vec.
	* configure: Regenerate.
	* targets.c: Declare mach_o_x86_64_vec, add it to _bfd_target_vector.
	* Makefile.am (BFD64_BACKENDS): Add mach-o-x86-64.lo
	(BFD64_BACKENDS_CFILES): Add mach-o-x86-64.c
	* Makefile.in: Regenerate.
	* mach-o-x86-64.c: New file.

2010-01-13  Tristan Gingold  <gingold@adacore.com>

	* reloc.c: Add MACH_O_X86_64 relocations.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

2010-01-13  Tristan Gingold  <gingold@adacore.com>

	* archive.c (normalize): Use lbasename.
	(bfd_bsd_truncate_arname): Ditto.
	(bfd_gnu_truncate_arname): Ditto.

2010-01-12  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms (CFLAGS): Turns warnings into informational messages.

2010-01-11  Tristan Gingold  <gingold@adacore.com>

	* mach-o.h: Add x86-64 relocation types.

2010-01-11  Tristan Gingold  <gingold@adacore.com>

	* mach-o.h (bfd_mach_o_backend_data): Add arch field.
	(bfd_mach_o_set_arch_mach): New prototype.
	* mach-o.c (bfd_mach_o_mkobject): Define with bfd_mach_o_gen_mkobject.
	(bfd_mach_o_set_arch_mach): New function.
	(bfd_mach_o_gen_mkobject): New function.
	Set TARGET_ARCHITECTURE for the generic back-ends.
	* mach-o-target.c (bfd_mach_o_set_arch_mach): Remove define.
	Check that TARGET_ARCHITECTURE is defined.
	Add TARGET_ARCHITECTURE in TARGET_NAME_BACKEND structure.
	* mach-o-i386.c (TARGET_ARCHITECTURE): Define.

2010-01-11  Tristan Gingold  <gingold@adacore.com>

	* archive.c (bfd_slurp_armap): Also check for Mach-O sorted armap.

2010-01-11  Nick Clifton  <nickc@redhat.com>

	* elf32-v850.c (v850_elf_perform_relocation): Fix overflow
	handling of R_V850_HI16_S relocation.

2010-01-11  Alan Modra  <amodra@gmail.com>

	PR 11103
	* dwarf1.c (parse_die): Correct FORM_STRING data pointer increment.

2010-01-11  Alan Modra  <amodra@gmail.com>

	PR 6832
	* dwarf2.c (struct comp_unit): Add sec_info_ptr.
	(find_abstract_instance_name): Use it.
	(parse_comp_unit): Set it.

2010-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in: Regenerate.
	* configure: Regenerate.

2010-01-08  Tristan Gingold  <gingold@adacore.com>

	* archive.c: Remove bfd_special_undocumented_glue.

2010-01-08  Alan Modra  <amodra@gmail.com>

	PR ld/11133
	* elf32-cr16.c (elf32_cr16_gc_mark_hook): Call _bfd_elf_gc_mark_hook.
	* elf32-microblaze.c (microblaze_elf_gc_mark_hook): Likewise.
	* elf64-ppc.c (ppc64_elf_gc_mark_hook): Likewise.

2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/11138
	* elflink.c (elf_link_check_versioned_symbol): Don't abort if
	a symbol referenced by DSO is is defined in a non-shared object
	and forced local.

2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/11133
	* elflink.c (_bfd_elf_gc_mark_hook): Check section XXX for
	undefined __start_XXX/__stop_XXX in all input files and set
	SEC_KEEP.

2010-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/11143
	* elflink.c (elf_gc_sweep): Keep SHT_NOTE section.

2010-01-04  Daniel Gutson  <dgutson@codesourcery.com>

	* bfd.m4 (BFD_HAVE_SYS_PROCFS_TYPE): Define _STRUCTURE_PROC
	before including procfs.h.
	(BFD_HAVE_SYS_PROCFS_TYPE_MEMBER): Likewise.
	* configure.in: Added autoconf probe for the pr_fpreg member.
	* configure: Regenerated.
	* config.in: Regenerated.
	* elf.c: Define _STRUCTURE_PROC before including procfs.h.

2010-01-04  Joel Brobecker  <brobecker@adacore.com>

	Fix -Wshadow warnings in dwarf2.c (seen on alpha-tru64).
	* dwarf2.c (concat_filename): Rename dirname with dir_name
	to void shadowing the dirname function.
	Rename subdirname with subdir_name to stay consistent with
	the new dir_name variable name.

2010-01-04  Edmar Wienskoski  <edmar@freescale.com>

	* archures.c: Add bfd_mach_ppc_e500mc64.
	* bfd-in2.h: Regenerate.
	* cpu-powerpc.c (bfd_powerpc_archs): Add entry for
	bfd_mach_ppc_e500mc64.

2010-01-01  Joel Brobecker  <brobecker@adacore.com>

	Fix -Wshadow warnings (seen on ppc-aix)
	* xcofflink.c: Replace finfo by flinfo throughout.

For older changes see ChangeLog-2009

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End: