Add io and address attributes, to facilitate separation of libc from
target headers.
        * config/avr/avr.h (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
        (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
        * config/avr/avr.c (varasm.h): #include.
        (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO.
        (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
        (avr_attribute_table): Add "io" and "address".
        (avr_asm_output_aligned_decl_common): Change type of decl to tree.
        Add special handling for symbols with "io" and/or "address" attributes.
        (avr_asm_asm_output_aligned_bss): New function.
        (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
        as appropriate.
        * config/avr/avr.md (mov<mode>): Use avr_eval_addr_attrib.
        * config/avr/predicates.md (io_address_operand):
        Allow SYMBOL_REF with SYMBOL_FLAG_IO.
        * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
        Update prototype.
        (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
        * doc/extend.texi (io, address): Document new AVR variable attributes.
        * config/avr/avr.c (avr_print_operand) <i>: When outputting
        a symbolic I/O address, subtract sfr_offset.
gcc:
        * config/avr/avr.h (SYMBOL_FLAG_IO_LOW): Define.
        * config/avr/avr.c (avr_handle_addr_attribute): Handle io_low
        attribute.
        (avr_encode_section_info): Likewise.
        (avr_attribute_table): Add "io_low".
        (avr_out_sbxx_branch): Handle symbolic io addresses.
        * config/avr/avr.md (cbi, sbi): Change constraint for
        low_io_address_operand operand to "i".
        (sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
        * config/avr/predicates.md (low_io_address_operand):
        Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
include:
         * elf/avr.h (R_AVR_5_IO): New RELOC_NUMBER.
bfd:
        * reloc.c (BFD_RELOC_AVR_5_IO): New reloc.
        * elf32-avr.c (R_AVR_5_IO): New HOWTO.
        (avr_reloc_map): Add entry for {BFD_RELOC,R}_AVR_5_IO.
        * bfd-in2.h, libbfd.h: Regenerate.
gas:
         * config/tc-avr.c (avr_operand) <'p'>: Create a fixup for
         non-immediate-constant addresses.
        (md_apply_fix): Handle BFD_RELOC_AVR_5_IO.

gas:
        * config/tc-avr.c (md_apply_fix): Don't suppress overflow warnings
        for BFD_RELOC_AVR_6_IO.
        * doc/extend.texi (io, address): Document io_low variable attribute.
        * config/avr/avr.c (avr_encode_section_info): Don't set
        SYMBOL_FLAG_ADDRESS for external symbols.
Merge branch 'joern-io-relax' into avr-gcc-mainline

Conflicts:
	gcc/ChangeLog.AVR