public inbox for libstdc++@gcc.gnu.org
 help / color / mirror / Atom feed
From: Yubin Ruan <ablacktshirt@gmail.com>
To: Jonathan Wakely <jwakely.gcc@gmail.com>
Cc: "libstdc++" <libstdc++@gcc.gnu.org>
Subject: Re: libstdc++.so.0.29 contains undefined reference to libiconv
Date: Thu, 7 Apr 2022 21:21:19 +0800	[thread overview]
Message-ID: <CAJYFCiMZ8wHj=+nEuDHwjwuh28SZB=QO3hyigLQWS6T2=NNscA@mail.gmail.com> (raw)
In-Reply-To: <CAH6eHdR5KAyvw2iZU8SqX+N0c=GwR3FPnRzPGNt302-vR4PQjQ@mail.gmail.com>

On Thu, Apr 7, 2022 at 5:02 PM Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
>
>
>
> On Thu, 7 Apr 2022, 03:38 Yubin Ruan via Libstdc++, <libstdc++@gcc.gnu.org> wrote:
>>
>> Hi,
>>
>> I compile GCC 11.2 and get a libstdc++.so.6.0.29 (installed in
>> "/usr/local/mygcc/lib64/") but this shared lib contains undefined
>> reference to libiconv_*.
>>
>> When I compile a hello world program using gcc11.2, I get the following error:
>>
>> > /usr/local/mygcc/bin/g++ -Wall -std=c++17 hw.cc -o hw
>> /usr/local/mygcc/bin/../lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib64/libstdc++.so:
>> undefined reference to `libiconv'
>> /usr/local/mygcc/bin/../lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib64/libstdc++.so:
>> undefined reference to `libiconv_close'
>> /usr/local/mygcc/bin/../lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib64/libstdc++.so:
>> undefined reference to `libiconv_open'
>> collect2: error: ld returned 1 exit status
>>
>> Adding a "-liconv" flag will help this program compile.
>>
>> From ldd's output, the libstdc++.so does not has any dynamic reference
>> to libiconv;
>>
>>   > ldd /usr/local/mygcc/lib64/libstdc++.so.6.0.29
>>           linux-vdso.so.1 =>  (0x00007ffce1fea000)
>>           libm.so.6 => /lib64/libm.so.6 (0x00007fefc74b8000)
>>           libc.so.6 => /lib64/libc.so.6 (0x00007fefc70e9000)
>>           /lib64/ld-linux-x86-64.so.2 (0x00007fefc7bd1000)
>>           libgcc_s.so.1 =>
>> /usr/local/$INSTALL_PREFX/lib64/libgcc_s.so.1 (0x00007fefc6ed1000)
>>
>> But from nm 's output, there are indeed undefined reference to libiconv*
>>
>>   > nm -D /usr/local/mygcc/lib64/libstdc++.so.6.0.29 |grep -i iconv
>>                    U libiconv
>>                    U libiconv_close
>>                    U libiconv_open
>>
>> I already have libiconv installed under /usr/local when compiling
>> GCC11.2, but this does not seems to help;
>
>
> It doesn't help because that is the cause of the problem.
>
> Glibc defines the iconv routines that libstdc++ needs, and so you should not use libiconv on Linux systems using Glibc.


So remove all libiconv libs and headers, and recompile GCC will be
fine? Does it require any more configuration?

How do I make sure that the configuration is correct?


>> And by the way, libiconv seems to only provide dynamic lib; there is
>> no libiconv.a;
>>
>>
>> Previously I have GCC10.2 compiled & installed. The libstdc++.so.0.28
>> also contains undefined ref to libiconv*
>>
>>   > nm -D /usr/local/mygcc/lib64/libstdc++.so.6.0.28 |grep -i iconv
>>                    U libiconv
>>                    U libiconv_close
>>                    U libiconv_open
>>
>> but compiling with libstdc++.so.6.0.28 does NOT require "-liconv".
>>
>> So, is there anything that I missed when compiling GCC11.2 which can
>> remove unnecessary dependency of libiconv ?
>>
>> Thanks,
>> Yubin

  parent reply	other threads:[~2022-04-07 13:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-07  2:37 Yubin Ruan
2022-04-07  2:42 ` Yubin Ruan
2022-04-07  9:02 ` Jonathan Wakely
2022-04-07  9:03   ` Jonathan Wakely
2022-04-07 13:21     ` Yubin Ruan
2022-04-11 12:20       ` Jonathan Wakely
2022-04-07 13:21   ` Yubin Ruan [this message]
2022-04-07 14:04     ` Jonathan Wakely

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='CAJYFCiMZ8wHj=+nEuDHwjwuh28SZB=QO3hyigLQWS6T2=NNscA@mail.gmail.com' \
    --to=ablacktshirt@gmail.com \
    --cc=jwakely.gcc@gmail.com \
    --cc=libstdc++@gcc.gnu.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).