[GOLD][PATCH] Fix potential object locking problems in ARM backend.
Ian Lance Taylor
iant@google.com
Tue Nov 9 05:44:00 GMT 2010
More information about the Binutils mailing list
Tue Nov 9 05:44:00 GMT 2010
- Previous message (by thread): [GOLD][PATCH] Fix potential object locking problems in ARM backend.
- Next message (by thread): [GOLD][PATCH] Fix potential object locking problems in ARM backend.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Doug Kwan (關振德)" <dougkwan@google.com> writes: > 2010-11-08 Doug Kwan <dougkwan@google.com> > > * arm.cc (Arm_exidx_merge_section::build_contents): New method. > (Arm_exidx_merge_section::section_contents_): New data member. > (Arm_input_section::Arm_input_section): Initialize original_contents_. > (Arm_input_section::~Arm_input_section): De-allocate memory. > (Arm_input_section::original_contents_): New data member. > (Arm_exidx_fixup::process_exidx_section): Pass EXIDX section contents > in parameters instead of calling Object::section_contents without > locking. > (Arm_output_section::group_section): New parameter TASK. Pass it > to callees that need locking objects. > (Arm_output_section::fix_exidx_coverage): New parameter TASK. Use it > to lock EXIDX input sections. Call > Arm_exidx_merged_section::build_contents to create merged section > contents. > (Arm_output_section::create_stub_group): New parameter TASK. Use it > to lock object of stub table owner. > (Arm_exidx_input_section::Arm_exidx_input_section): Add new parameter > TEXT_SIZE to initialize data member TEXT_SIZE_. > (Arm_exidx_input_section::addralign): Fix typo in comment. > (Arm_exidx_input_section::text_size): New method. > (Target_arm::do_relax): New parameter TASK. Pass it to callees > that require locking objects. Lock objects before scanning for stubs > and updating local symbols. > (Arm_input_section<big_endian>::init): Copy contents of original > input section. > (Arm_input_section<big_endian>::do_write): Use saved contents of > original input section instead of calling Object::section_contents > without locking. > (Arm_exidx_cantunwind::do_fixed_endian_write): Find out text section > size without calling Object::section_size(). > (Arm_exidx_merged_section::Arm_exidx_merged_section): Add sanity check > for size. Allocate a buffer for merged EXIDX entries. > (Arm_exidx_merged_section::build_contents): New method. > (Arm_exidx_merged_section::do_write): Move merge section contents > building code to Arm_exidx_merged_section::build_contetns. Write > out contetns in buffer instead of building it on the fly. > (Arm_relobj::make_exidx_input_section): Also pass text section size > to Arm_exidx_input_section constructor. > (Arm_relobj::do_read_symbols): Fix memory leak. > (Arm_dynobj::do_read_symbols): Fix memory leak. > * layout.cc (Layout::finalize): Pass TASK to Target::relax(). > * target.h: (class Task): Add forward declaration. > (Target::relax): Add new parameter TASK and pass it to > Target::do_relax(). > (Target::do_relax):: New parameter TASK. > - // Reutnr address alignment of EXIDX input section. > + // Reutrn address alignment of EXIDX input section. s/Reutrn/Return/. So close and yet so far. > + for(Arm_exidx_section_offset_map::const_iterator p = > + this->section_offset_map_.begin(); > + p != this->section_offset_map_.end(); > + ++p) s/for(/for (/ This is OK with those changes. Thanks. Ian
- Previous message (by thread): [GOLD][PATCH] Fix potential object locking problems in ARM backend.
- Next message (by thread): [GOLD][PATCH] Fix potential object locking problems in ARM backend.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list