public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: 樊鹏 <fanpeng@loongson.cn>
To: "Xi Ruoyao" <xry111@xry111.site>
Cc: binutils@sourceware.org, mengqinggang@loongson.cn, cailulu@loongson.cn
Subject: Re: Re: [PATCH] LoongArch: Modify inconsistent behavior of ld with --unresolved-symbols=ignore-all
Date: Tue, 20 Feb 2024 10:56:12 +0800 (GMT+08:00)	[thread overview]
Message-ID: <bd583d9.8429.18dc4713f25.Coremail.fanpeng@loongson.cn> (raw)
In-Reply-To: <a0987ece506dd9bae7d9460c64b3d879fd8d2c8d.camel@xry111.site>

Got it. I'll resend the v2.
Thanks.

2024-02-20 10:31:17 "Xi Ruoyao" <xry111@xry111.site> 写道:
> On Tue, 2024-02-20 at 10:11 +0800, ticat-fp wrote:
> > Ignore errors when producing executable files that reference external symbols defined
> > in other files.
> > 
> > Testcase is:
> > resolv.c:
> > int main(int argc, char *argv[]) {
> >     return argc;
> > }
> > 
> > t.c:
> > 
> > extern const struct my_struct ms1;
> > static const struct my_struct *ms = &ms1;
> > 
> > t.h:
> > typedef struct my_struct {
> >     char *str;
> >     int i;
> > } my_struct;
> > 
> > Compiling and linking command with:
> > gcc t.c -c ; gcc resolv.c -c
> > gcc resolv.o t.o -o resolv -Wl,--unresolved-symbols=ignore-all
> > 
> > Got error as:
> > ~/install/usr/bin/ld: t.o:(.data.rel+0x0): undefined reference to `ms1'
> > collect2: error: ld returned 1 exit status
> > 
> > Signed-off-by: ticat-fp <fanpeng@loongson.cn>
> 
> Signed-off-by may have a legal implication so generally we should use
> the real name here.
> 
> Or if this is done during your working time you don't need a Signed-off-
> by as the change should be covered by Loongson corporate FSF assignment.
> 
> > ---
> >  bfd/elfnn-loongarch.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c
> > index 1895699af06..6b2d5a7164d 100644
> > --- a/bfd/elfnn-loongarch.c
> > +++ b/bfd/elfnn-loongarch.c
> > @@ -2662,6 +2662,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
> >        char tls_type;
> >        bfd_vma relocation, off, ie_off, desc_off;
> >        int i, j;
> > +      bool ignored = false;
> >  
> >        howto = loongarch_elf_rtype_to_howto (input_bfd, r_type);
> >        if (howto == NULL || r_type == R_LARCH_GNU_VTINHERIT
> > @@ -2703,7 +2704,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
> >  	}
> >        else
> >  	{
> > -	  bool warned, ignored;
> > +	  bool warned;
> >  
> >  	  RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
> >  				   r_symndx, symtab_hdr, sym_hashes,
> > @@ -2867,7 +2868,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
> >  		{
> >  		  if (h->dynindx == -1)
> >  		    {
> > -		      if (h->root.type == bfd_link_hash_undefined)
> > +		      if (h->root.type == bfd_link_hash_undefined && !ignored)
> >  			(*info->callbacks->undefined_symbol)
> >  			  (info, name, input_bfd, input_section,
> >  			   rel->r_offset, true);
> 
> -- 
> Xi Ruoyao <xry111@xry111.site>
> School of Aerospace Science and Technology, Xidian University


本邮件及其附件含有龙芯中科的商业秘密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制或散发)本邮件及其附件中的信息。如果您错收本邮件,请您立即电话或邮件通知发件人并删除本邮件。 
This email and its attachments contain confidential information from Loongson Technology , which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this email in error, please notify the sender by phone or email immediately and delete it. 

      reply	other threads:[~2024-02-20  2:56 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-20  2:11 ticat-fp
2024-02-20  2:31 ` Xi Ruoyao
2024-02-20  2:56   ` 樊鹏 [this message]

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=bd583d9.8429.18dc4713f25.Coremail.fanpeng@loongson.cn \
    --to=fanpeng@loongson.cn \
    --cc=binutils@sourceware.org \
    --cc=cailulu@loongson.cn \
    --cc=mengqinggang@loongson.cn \
    --cc=xry111@xry111.site \
    /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).