[PATCH][gold] Mips: Add support for .MIPS.abiflags and .gnu.attributes sections.

Vladimir Radosavljevic Vladimir.Radosavljevic@imgtec.com
Mon May 23 15:59:00 GMT 2016


> +template<int size, bool big_endian>
> +void
> +Mips_output_section_abiflags<size, big_endian>::do_write(Output_file* of)
> +{
> +  off_t offset = this->offset();
> +  off_t data_size = this->data_size();
> +
> +  unsigned char* view = of->get_output_view(offset, data_size);
> +  elfcpp::Swap<16, big_endian>::writeval(view, this->abiflags_.version);
> +  elfcpp::Swap<8, big_endian>::writeval(view + 2, this->abiflags_.isa_level);
> +  elfcpp::Swap<8, big_endian>::writeval(view + 3, this->abiflags_.isa_rev);
> +  elfcpp::Swap<8, big_endian>::writeval(view + 4, this->abiflags_.gpr_size);
> +  elfcpp::Swap<8, big_endian>::writeval(view + 5, this->abiflags_.cpr1_size);
> +  elfcpp::Swap<8, big_endian>::writeval(view + 6, this->abiflags_.cpr2_size);
> +  elfcpp::Swap<8, big_endian>::writeval(view + 7, this->abiflags_.fp_abi);
> +  elfcpp::Swap<32, big_endian>::writeval(view + 8, this->abiflags_.isa_ext);
> +  elfcpp::Swap<32, big_endian>::writeval(view + 12, this->abiflags_.ases);
> +  elfcpp::Swap<32, big_endian>::writeval(view + 16, this->abiflags_.flags1);
> +  elfcpp::Swap<32, big_endian>::writeval(view + 20, this->abiflags_.flags2);
> 
> You need to call of->write_output_view(). (I know it doesn't do
> anything now, but the reason that API is there is to support a future
> option to write an output file without using mmap.)

Done.
Thanks for review!

Regards,
Vladimir



More information about the Binutils mailing list