This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 1/8] PR ld/17878: Add bfd_maybe_object_p
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Binutils <binutils at sourceware dot org>
- Date: Sat, 7 Feb 2015 04:50:27 -0800
- Subject: Re: [PATCH 1/8] PR ld/17878: Add bfd_maybe_object_p
- Authentication-results: sourceware.org; auth=none
- References: <20150205135440 dot GA27203 at gmail dot com> <20150207094240 dot GD14796 at bubble dot grove dot modra dot org>
On Sat, Feb 7, 2015 at 1:42 AM, Alan Modra <amodra@gmail.com> wrote:
> On Thu, Feb 05, 2015 at 05:54:40AM -0800, H.J. Lu wrote:
>> This patch adds bfd_maybe_object_p which is similar to
>>
>> bfd_check_format (abfd, bfd_object)
>>
>> The difference is bfd_maybe_object_p takes an argument to indicate if a
>> compiler plug-in library is applied. When a compiler plug-in library is
>> active, it also returns TRUE if the file is not an archive or a coredump
>> file.
>
> Hmm, in other words, if it is unknown. (bfd_format takes the values
> bfd_unknown, bfd_object, bfd_archive, bfd_core.)
Yes.
>> +bfd_boolean
>> +bfd_maybe_object_p (bfd *abfd, bfd_boolean plugin_active_p)
>> +{
>> + /* LTO IR object file may look like a bfd_object file or a file which
>> + is not bfd_core nor bfd_archive. */
>> + return (bfd_check_format (abfd, bfd_object)
>> + || (plugin_active_p
>> + && !bfd_check_format (abfd, bfd_core)
>> + && !bfd_check_format (abfd, bfd_archive)));
>> +}
>
> I find this really strange. If plugins are active then you're
> willing to accept anything except cores and archives. To throw out
> cores and archives you'll be iterating over all compiled-in bfd
> targets, asking "is this a core file", then asking "is this an
> archive". That's quite a bit of processing, and won't exclude your
> average text file!
LTO IR could be stored in the average text file. The new plug tests
use this feature. We can add a new type, bfd_maybe_object.
> I think you need to find a way of answering the question "is this a
> file accepted by a plugin?" in a more robust way. One possibility is
> merging the linker handling of plugins into the bfd plugin support.
>
I have considered it before. This approach has many implications.
If we do this, we need to add bfd_plugin_object and bfd_all_object.
bfd_all_object includes bfd_object and bfd_plugin_object. We need
bfd_plugin_object so that we won't update dummy BFD info from the
LTO IR input. Let me take another look.
--
H.J.