Denis Chertykov wrote: > 2011/6/27 Georg-Johann Lay <a...@gjlay.de>: >> This patch removes ELF dependencies from avr.h and redundancies from >> avr.h and avr.c >> >> The AVR BE defines many things that are readily available in elfos.h. >> ELF is the only target supported by avr-gcc. >> >> The patch includes elfos.h in config.gcc for all avr* targets together >> with a new file avr/elf.h. >> >> ELF for avr deviates in some points from elfos.h. The needed overrides >> are defined in avr/elf.h. avr/elf.h is included after elfos.h because >> that is the only way to achieve the needed overrides/undefs. >> >> The patch removes some hundreds lines from the AVR BE which are >> redundant, and the new avr/elf.h makes it much clearer what the actual >> deviations to default ELF implementation are. >> >> Some overrides like that there is no .ident emitted by avr presumably >> have just historical reasons; anyway the patch tries to be neutral >> compared to the present implementation. >> >> Same applies for other defines like READONLY_DATA_SECTION_ASM_OP: >> .rodata is mapped to .data by avr ldscripts anyway, so there is >> actually no need to set readonly_data_section = data_section and >> merging of STRING_CST could save some space. >> >> For zeroes memory the patch will emit >> .zero N >> instead of >> .skip N,0 >> >> Tested without regressions and asm-output diffed for real-world avr-code. >> >> Johann >> * config.gcc (tm_file): Add elfos.h and avr/elf.h for >> avr-*-* and avr-*-rtems* targets. >> >> * config/avr/elf.h: New file. >> (ASM_OUTPUT_BEFORE_CASE_LABEL): Define. >> (TARGET_ASM_SELECT_SECTION): Define. >> (INIT_SECTION_ASM_OP): Undefine. >> (FINI_SECTION_ASM_OP): Undefine. >> (IDENT_ASM_OP): Undefine. >> (ASM_OUTPUT_IDENT): Undefine. >> (READONLY_DATA_SECTION_ASM_OP): Undefine. >> (PCC_BITFIELD_TYPE_MATTERS): Undefine. >> (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine. >> * config/avr/avr.h: >> (PREFERRED_DEBUGGING_TYPE): Move to elf.h. >> (TARGET_ASM_NAMED_SECTION): Move to elf.h. >> (MAX_OFILE_ALIGNMENT): Move to elf.h. >> (STRING_LIMIT): Move to elf.h. >> (ASM_DECLARE_FUNCTION_NAME): Move to elf.h. >> (ASM_DECLARE_OBJECT_NAME): Remove. >> (ESCAPES): Remove. >> (ASM_OUTPUT_SKIP): Remove. >> (DWARF2_DEBUGGING_INFO): Remove. >> (OBJECT_FORMAT_ELF): Remove. >> (USER_LABEL_PREFIX): Remove. >> (ASM_OUTPUT_EXTERNAL): Remove. >> (ASM_OUTPUT_ASCII): Remove. >> (TYPE_ASM_OP): Remove. >> (SIZE_ASM_OP): Remove. >> (WEAK_ASM_OP): Remove. >> (STRING_ASM_OP): Remove. >> (SET_ASM_OP): Remove. >> (ASM_WEAKEN_LABEL): Remove. >> (TYPE_OPERAND_FMT): Remove. >> (ASM_DECLARE_FUNCTION_SIZE): Remove. >> (ASM_FINISH_DECLARE_OBJECT): Remove. >> (NO_DOLLAR_IN_LABEL): Remove. >> (ASM_GENERATE_INTERNAL_LABEL): Remove. >> (ASM_OUTPUT_CASE_LABEL): Remove. >> * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use >> ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON. >> (gas_output_ascii): Remove. >> (gas_output_limited_string): Remove. >> (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove. >> * config/avr/avr-protos.h >> (gas_output_ascii): Remove prototye. >> (gas_output_limited_string): Remove prototype. >> > > Approved. > > Denis.
http://gcc.gnu.org/ml/gcc-patches/2011-06/msg02011.html Is that also for the config.gcc part? Or does it need review from global reviewer? Is there a specific reason not to emit .ident? If not, I would remove the #undefs of IDENT_ASM_OP and ASM_OUTPUT_IDENT from avr/elf.h. Johann