This is the mail archive of the 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]

Re: [PATCH mingw/gold] Plugins cleanup fails on windows due to open handle

On Mon, Feb 11, 2013 at 2:11 AM, Pavel Chupin <> wrote:
> On Sat, Feb 9, 2013 at 5:56 AM, Ian Lance Taylor <> wrote:
>> On Sun, Jan 20, 2013 at 1:08 AM, Pavel Chupin <> wrote:
>>> Attached patch fixes issue with gold on windows:
>>> ld.exe: fatal error: could not unlink output file
>>> collect2.exe: error: ld returned 1 exit status
>>> It happens on any gold link (successful or not) with plugins when
>>> plugins->cleanup() called on gold_exit() tries to remove temporary
>>> files (cc2lB8c4.ltrans0.ltrans.o) but handle is still opened.
>>> I'm fixing it via new property close_on_release which can be setup per
>>> each descriptor and therefore control any descriptor release if
>>> needed.
>> Sorry for the slow review.  This approach does not look to me like a
>> good idea.  It will force additional unnecessary file reopens in all
>> cases.  You only care about input files added by the plugin, and you
>> only care about them at the end of the link.
>> Does this patch fix the problem?
>> Ian
> Hi Ian,
> Yes, it does fix the problem. Thanks a lot.

Thanks for testing it.  Committed with this ChangeLog entry.

2013-02-11  Ian Lance Taylor  <>

	* (Descriptors::close_all): New function.
	* descriptors.h (class Descriptors): Declare close_all.
	(close_all_descriptors): New inline function.
	* Include "descriptors.h".
	(Plugin_manager::cleanup): Call close_all_descriptors.


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