public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Sonal Santan <sonal.santan@xilinx.com>
To: "H. J. Lu" <hjl@lucon.org>
Cc: binutils@sources.redhat.com
Subject: Re: Linker --sort-section name is broken
Date: Mon, 07 Aug 2006 21:44:00 -0000	[thread overview]
Message-ID: <44D7B4A3.2030805@xilinx.com> (raw)
In-Reply-To: <20060807181041.GA18835@lucon.org>

Hello H.J.

Looks like ld lacks the kind of examples you tried in its testsuite. I 
can think of the following two ways to fix this:

[1] A quick fix would be to change the logic which triggers BST sorting 
in wild() to the following--
if (s->handler_data[0]
    && s->handler_data[0]->spec.sorted == by_name
    && !s->filenames_sorted
    && !handler_data[1])
    {...
[2] A better fix would be grow the handler_data[] array in struct 
lang_wild_statement_struct to size 5. Make the BST logic exclusively use 
handler_data[4] for all its needs.

What do you think?

Sonal

H. J. Lu wrote:
> Hi Sonal,
>
> Your linker patch breaks --sort-section name. In wild (), you hae
>
>   if (s->handler_data[0]
>       && s->handler_data[0]->spec.sorted == by_name
>       && !s->filenames_sorted)
>     {
>       lang_section_bst_type *tree;
>
>       walk_wild (s, output_section_callback_fast, output);
>
>       tree = (lang_section_bst_type *) s->handler_data[1];
>       if (tree)
>         output_section_callback_tree_to_list (s, tree, output);
>       s->handler_data[1] = NULL;
>     }
>
> With "--sort-section name" on
>
> *(.text .text.*)
>
> handler_data[1] is a wildcard spec. But you use it for BST in
> wild_sort_fast. I don't see how it can work. I really don't like
>
> tree = (lang_section_bst_type **) &wild->handler_data[1];
>
> It is hard to check if it is really valid.
>
>
> H.J.
>
>   


  reply	other threads:[~2006-08-07 21:44 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-07 18:10 H. J. Lu
2006-08-07 21:44 ` Sonal Santan [this message]
2006-08-07 21:56   ` PATCH ld/3006: " H. J. Lu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44D7B4A3.2030805@xilinx.com \
    --to=sonal.santan@xilinx.com \
    --cc=binutils@sources.redhat.com \
    --cc=hjl@lucon.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).