This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Gold linker] Incremental linking in C++


Hello all,

I would like to use incremental linking in my C++ project.

However, I understand from this report:

https://sourceware.org/bugzilla/show_bug.cgi?id=13442

...that incremental linking disables eh_frame_hdr generation.
Naturally, the inability to catch any thrown exception makes using
this functionality for C++ development virtually impossible.

I was wondering if there is any planned effort to make this
functionality work?  Someone in the report was asking for help in
implementing it on his own, would it be possible to review what the
necessary steps are?

P.S.  I also hit a crash in this code in incremental.cc.

2267 // Get the name of a section.  This returns the name of the output
2268 // section, because we don't usually track the names of the input
2269 // sections.
2270
2271 template<int size, bool big_endian>
2272 std::string
2273 Sized_relobj_incr<size, big_endian>::do_section_name(unsigned int
shndx) const
2274 {
2275   const Output_sections& out_sections(this->output_sections());
2276   const Output_section* os = out_sections[shndx];
2277   if (os == NULL)
2278     return NULL;
2279   return os->name();
2280 }

Returning NULL on line 2278 quickly crashes because std::string makes
an implicit construction from the null pointer.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]