All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gabriel Dos Reis <gdr@integrable-solutions.net>
To: Denis Zaitsev <zzz@anda.ru>
Cc: gcc@gcc.gnu.org, linux-gcc@vger.kernel.org
Subject: Re: [i386] Why g++ _always_ link an executable with libm.so?
Date: 05 Jan 2005 01:38:34 +0100	[thread overview]
Message-ID: <m3hdlwpv5h.fsf@uniton.integrable-solutions.net> (raw)
In-Reply-To: <20050105035915.I1437@natasha.ward.six>

Denis Zaitsev <zzz@anda.ru> writes:

| On Tue, Jan 04, 2005 at 11:30:05PM +0100, Gabriel Dos Reis wrote:
| > Denis Zaitsev <zzz@anda.ru> writes:
| > | 
| > |   a) why g++ assumes that libstdc++ is always needed?
| > 
| > Because that is the way it is designed.  If you don't want libstdc++,
| > say -nostdlib as explained in our documentation.
| 
| This doesn't work out of the box...

If -nostdlib does not work as explained in the documentation, then you
might have found a bug.  If you don't explain why it does not work as
explained in the documentation or do not a fill a proper bug report,
the probability that it gets fixed is near to zero.

| But yes, it can be a solution,  thanks.
| 
| > |   b) why is libm _always_ needed by libstdc++?
| > 
| > Because libstdc++ needs the mathematical functions.
| > 
| > |  It's rather strange.
| > 
| > I guess it is a matter of perspective.  From my part, requiring users
| > to explicitly supply -lm is a bug.  Simply because the mathematical
| > functions are part of the standard library; we do not require users to
| > say -lstr when they use strcpy() and friend; we do not require users
| > to say -lstdio when they use fprintf() and friends.  YMMV.
| 
| Ok, but do we force users to use libm every time libc is used?

What is libc?  How do you define it?

|  No, we
| don't.  Of course, we don't.  And I emphasised the word 'always':
| not _every_ routine from libstdc++ need libm, but it always
| required...

The C++ standard library is a whole entity (minus the "freestanding"
part) that is hard to split in meaningfully independent parts.
Personnaly, I have zilk interest in splitting it into zillions
arbitrary parts (or maintain such splits) and require users to supply
zillions -lxxx switches. 

As a C++ user, when I say

   copy(istream_iterator<int>(cin), istream_iterator<int>(),
        back_insert(v));

I have no idea of which of those zillions parts are involved
underneath, I do not want to know, and a fortiori I do not want to
be required to supply a cabalistic combination of switches to get it
work. The compiler is better at that than I.

-- Gaby

  parent reply	other threads:[~2005-01-05  0:38 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-04 22:01 [i386] Why g++ _always_ link an executable with libm.so? Denis Zaitsev
2005-01-04 22:05 ` Daniel Jacobowitz
2005-01-04 22:18   ` Denis Zaitsev
2005-01-04 22:30     ` Gabriel Dos Reis
2005-01-04 22:59       ` Denis Zaitsev
2005-01-04 23:06         ` Andrew Pinski
2005-01-04 23:16           ` Denis Zaitsev
2005-01-05  0:40           ` Gabriel Dos Reis
2005-01-05 17:14           ` Mike Hearn
2005-01-05 18:21             ` Andrew Pinski
2005-01-05 18:51               ` Mike Hearn
2005-01-05 18:48                 ` Andrew Pinski
2005-01-05 19:10                   ` Mike Hearn
2005-01-05 22:09               ` Denis Zaitsev
2005-01-05 22:16                 ` Andrew Pinski
2005-01-05 22:30                   ` Denis Zaitsev
2005-01-05 22:32                     ` Andrew Pinski
2005-01-05 22:39                 ` Gabriel Dos Reis
2005-01-05  0:38         ` Gabriel Dos Reis [this message]
2005-01-05 22:25           ` Denis Zaitsev
2005-01-05 22:30             ` Andrew Pinski
2005-01-05 22:44             ` Gabriel Dos Reis
2005-01-05 22:55               ` Denis Zaitsev

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=m3hdlwpv5h.fsf@uniton.integrable-solutions.net \
    --to=gdr@integrable-solutions.net \
    --cc=gcc@gcc.gnu.org \
    --cc=linux-gcc@vger.kernel.org \
    --cc=zzz@anda.ru \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.