From: Jonathan Wakely <jwakely.gcc@gmail.com>
To: Yubin Ruan <ablacktshirt@gmail.com>
Cc: "libstdc++" <libstdc++@gcc.gnu.org>
Subject: Re: libstdc++.so.0.29 contains undefined reference to libiconv
Date: Thu, 7 Apr 2022 15:04:28 +0100 [thread overview]
Message-ID: <CAH6eHdSnF8TixC6xy=PkcAsQfOYpm9pdaP=RqByw8q9t=Fryrg@mail.gmail.com> (raw)
In-Reply-To: <CAJYFCiMZ8wHj=+nEuDHwjwuh28SZB=QO3hyigLQWS6T2=NNscA@mail.gmail.com>
On Thu, 7 Apr 2022, 14:21 Yubin Ruan, <ablacktshirt@gmail.com> wrote:
> 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?
Yes.
Does it require any more configuration?
>
No.
> How do I make sure that the configuration is correct?
>
Check the config.log in the $TARGET/libstdc++-v3 build directory, it think
it should say where iconv is found.
>
> >> 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
>
prev parent reply other threads:[~2022-04-07 14:04 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
2022-04-07 14:04 ` Jonathan Wakely [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='CAH6eHdSnF8TixC6xy=PkcAsQfOYpm9pdaP=RqByw8q9t=Fryrg@mail.gmail.com' \
--to=jwakely.gcc@gmail.com \
--cc=ablacktshirt@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).