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]

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


On Sun, Jan 20, 2013 at 1:08 PM, Pavel Chupin <pavel.v.chupin@gmail.com> wrote:
> Hi,
> 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.
>
> ChangeLog:
>
> 2013-01-20  Pavel Chupin  <pavel.v.chupin@intel.com>
>
>         Enforce descriptor close on release when plugins used
>         * descriptors.cc: Enforce close for plugins.
>         * descriptors.h: Add close_on_release descriptor property.
>
> Alternative simpler fix could be made to always call
> release_descriptor with permanent=true. E.g. this patch fixes the
> problem as well:
>
> --- a/gold/fileread.cc
> +++ b/gold/fileread.cc
> @@ -280,7 +280,7 @@ File_read::release()
>        this->clear_views(CLEAR_VIEWS_NORMAL);
>        if (this->is_descriptor_opened_)
>         {
> -         release_descriptor(this->descriptor_, false);
> +         release_descriptor(this->descriptor_, true);
>           this->is_descriptor_opened_ = false;
>         }
>      }
>
> --
> Pavel Chupin
> Intel Corporation

Ping.


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