public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* Multiple libstdc++ builds
@ 2024-04-03 11:34 John F
  2024-04-03 13:05 ` Jonathan Wakely
  0 siblings, 1 reply; 3+ messages in thread
From: John F @ 2024-04-03 11:34 UTC (permalink / raw)
  To: gcc-help

[-- Attachment #1: Type: text/plain, Size: 1446 bytes --]

Hello,

I’m building GCC from a release branch (13.2.0). For the majority of things I’m trying to compile, I want to produce static + lto’d binaries, linking the c++ lib in statically via the typical -static-libstdc++. So I initially configured gcc with —disable-shared and everything seemed to work just fine.

There are a few things though that I need to build dynamically. In the past, I configured with —with-pic, but I wanted to avoid paying the PIC tax for my true static links. So I rebuilt gcc without —disable-shared. And again, everything works fine and now I can produce shared c++ libraries where I need.

But I noticed that now the libstdc++ components objects are again getting built with -fPIC -DPIC as far as I can tell. Not surprising but disappointing.

Which brings me to the question: is there a good way to produce the libstdc++.a and .so from separate compilations s.t. the objects in the archive don’t have -fPIC?  Or, even better, produce both a libstdc++.a and a libstdc++_pic.a (assuming I can then link the latter via  -nostdlib++ libstdc++_pic.a)?  I tried to wrap my head around the build machinery, but couldn’t really make any progress.

Relatedly, can libstdc++.a practically be built with (fat) LTO support for non-cross builds? Bug 59893 discusses some issues with Canadian crosses but nothing for native and the discussion is largely from a decade ago.

Appreciate your time!




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-04-08 21:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-03 11:34 Multiple libstdc++ builds John F
2024-04-03 13:05 ` Jonathan Wakely
2024-04-08 21:32   ` John F

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).