This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH][gold] Mips: Add support for .MIPS.abiflags and .gnu.attributes sections.
- From: Cary Coutant <ccoutant at gmail dot com>
- To: Vladimir Radosavljevic <Vladimir dot Radosavljevic at imgtec dot com>
- Cc: "binutils at sourceware dot org" <binutils at sourceware dot org>, Petar Jovanovic <Petar dot Jovanovic at imgtec dot com>
- Date: Thu, 19 May 2016 16:04:05 -0700
- Subject: Re: [PATCH][gold] Mips: Add support for .MIPS.abiflags and .gnu.attributes sections.
- Authentication-results: sourceware.org; auth=none
- References: <3060420525346945A0ADBD567348A917237414E4 at BADAG02 dot ba dot imgtec dot org>
+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.)
-cary