Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
GCC 4.7 System neu bauen ja oder nein?
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2566
Location: Heidelberg - Germany

PostPosted: Sun Sep 29, 2013 6:27 am    Post subject: GCC 4.7 System neu bauen ja oder nein? Reply with quote

Gerade kommt der gcc 4.7 reingeflattert auf amd64 stable. Die einen sagen, man müsse sein System komplett neu bauen. Die anderen sagen, das ist nicht notwendig, nur bei Major Versionnummern.
Das ist doch mal ein Grund zu diskutieren, oder nicht? Was meint ihr?

-Erdie
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5165

PostPosted: Sun Sep 29, 2013 10:19 am    Post subject: Reply with quote

laut dem post message von gcc ebuild ist für gentoo ein 4.x+1 eine major version:

Quote:
If you have issues with packages unable to locate libstdc++.la,
then try running 'fix_libtool_files.sh' on the old gcc versions.
You might want to review the GCC upgrade guide when moving between
major versions (like 4.2 to 4.3):
http://www.gentoo.org/doc/en/gcc-upgrading.xml

Das ganze betrifft/betraf hauptsächlich C++ Programme, da sich die ABI der C++ runtime (libstdc++.so) in früheren Versionen des gcc geändert hat.

Aber laut dem verlinkten guide ist ein komplettes neu bauen nicht mehr notwendig (war beim Wechsel von gcc 3.x auf 4.x notwendig). Da mit gcc 4.1+ die ABI "forward compatible" ist.

Sprich ein C++ programm, welches z.b. gcc 4.4.y übersetzt wurde, sollte auch ohne probleme mit der c++ runtime von gcc 4.5, 4.6, usw. laufen.

http://www.gentoo.org/doc/en/gcc-upgrading.xml wrote:
ABI Changes

An ABI, or Application Binary Interface, is a set of conventions used by all tools that deal with binary representation of programs, including compilers, assemblers, linkers and language runtime support (source: GCC Binary Compatibility). When the ABI used for binary applications and libraries is changed, you will risk getting linker errors or malfunctioning programs unless you rebuild all libraries that use C++ code. Yes, C++, since most incompatibilities occur within the C++ ABI. This is also why we use the revdep-rebuild command against the libstdc++.so.5 library.

Code Listing 2.1: Rebuilding applications linked against libstdc++.so.5

# revdep-rebuild --library libstdc++.so.5

So why is this only needed up to GCC 3.4.0/4.1 ? That's because from that version onwards, GCC uses a forward compatible ABI, which removes the need for rebuilding applications and libraries. Of course, guarantees can never be given indefinitely, but when an incompatibility occurs again, we'll definitely document it here ;-) In that case, the version of the libstdc++.so library will probably be increased.

Rebuilding Everything

Some people swear that they need to rebuild every single package on their system when a new GCC version is made available. Of course, that doesn't make sense, since there are many applications that are not using GCC for their build and install process anyhow, so they would never be affected by such changes.

That however doesn't mean they are completely incorrect: newer GCC versions often include better support for the processors' instruction set, which might influence the performance of some applications in a positive way. Although it is expected that this improvement is generally only marginally, in some cases (especially CPU intensive applications) this might yield notable improvements.

There are also known cases where packages need to be built with the same compiler. Although these packages are usually bumped by Gentoo simultaneously (so that they are always built with the same GCC version) cherry-picking reinstalls on these packages might prove to be troublesome. The various qt-* packages are a nice example on this matter.

_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Erdie
Advocate
Advocate


Joined: 20 May 2004
Posts: 2566
Location: Heidelberg - Germany

PostPosted: Sun Sep 29, 2013 10:49 am    Post subject: Reply with quote

Ich habe gestern abend nach dem world upgrade ein
Quote:
emerge -ae --keep-going @world
gestartet. Kostet ja nix ausser etwas Strom. Damit sollte eigentlich alles erledigt sein. Ein paar Pakete noch, dann ist er fertig.
_________________
Desktop AMD Ryzen 9 5900X 32GB RAM, Asus GF GTX 1060.
Notebook Tuxedo Pulse 15 Gen1 AMD Ryzen 7 4800H mit Radeon Vega 7
Raspberry Pi 1 + 2 + 3B+ + Zero W
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum