You are not logged in.
So, GCC 5 is coming. And everything that depends on its libraries will need to be rebuilt. So, when GCC 5 hits the repo pretty-well every package will be rebuilt and therefore be "new" to pacman. I am far from an expert in such things but, how will this be handled? There will no doubt be .pacnew files aplenty to deal with. To my untrained eye something to ease the transition would be to have a "package freeze" for about 1 week before GCC 5 hits to give everyone time to get their systems fully up-to-date including dealing with those .pacnew files. Then, when the switch is flipped, everyone could update their entire system, rebuild their affected AUR packages, and just delete all the .pacnew files as their configurations will already be valid.
That's what I suggest, anyone care to enlighten how the GCC 5 transition will actually happen? Especially in regards to files that the user must configure for their specific systems.
Offline
So, GCC 5 is coming. And everything that depends on its libraries will need to be rebuilt.
Why?
Offline
drcouzelis,
Here's how it works. Package 'A' depends on library provided by 'B', let's call it libB.so.1. 'B' gets updated so it now contains libB.so.2. As 'A' is linked against libB.so.1 it no longer works, and needs to be rebuilt against new library version. Alot of software depends on gcc and bumping its so version will cause a need for a lot of rebuilds.
Offline
http://developerblog.redhat.com/2015/02 … in-fedora/
https://www.reddit.com/r/archlinux/comm … ith_gcc_5/
GCC 5 changes ABI for its C++ libraries.
Last edited by anatolik (2015-02-23 02:26:41)
Read it before posting http://www.catb.org/esr/faqs/smart-questions.html
Ruby gems repository done right https://bbs.archlinux.org/viewtopic.php?id=182729
Fast initramfs generator with security in mind https://wiki.archlinux.org/index.php/Booster
Offline
Thank you for the explanation.
How exciting!
Offline
Basically every c++ package, perhaps even more, will be recompiled,
Offline
Then, when the switch is flipped, everyone could update their entire system, rebuild their affected AUR packages, and just delete all the .pacnew files as their configurations will already be valid.
That's what I suggest, anyone care to enlighten how the GCC 5 transition will actually happen? Especially in regards to files that the user must configure for their specific systems.
I'd assume that things would probably be held in [testing] a while longer whilst everything in the main Arch repositories is re-built and tested. As for the AUR, I'd assume that most of the maintainers that are on the ball will account for the change, but I don't know about the rest, seeing as the AUR really depends on the users.
Claire is fine.
Problems? I have dysgraphia, so clear and concise please.
My public GPG key for package signing
My x86_64 package repository
Offline
IIRC Arch has a [staging] repo for massive rebuilds.
Offline
I didn't know about this. Is this official repo?
Last edited by helix (2015-02-23 16:53:45)
Offline
I didn't know about this. Is this official repo?
Nope, use it only if you want to break your system
https://ugjka.net
paru > yay | webcord > discord
pacman -S spotify-launcher
mount /dev/disk/by-...
Offline
helix wrote:I didn't know about this. Is this official repo?
Nope, use it only if you want to break your system
That, and I think they only appear when there's going to be a major re-build.
Claire is fine.
Problems? I have dysgraphia, so clear and concise please.
My public GPG key for package signing
My x86_64 package repository
Offline
it doesn't have to be that massive, almost all rebuilds caused by ABI/API breaks go to staging.
Last edited by Scimmia (2015-02-24 03:36:54)
Offline
Here. Assuming "allanbrokeit" is Allan's account on reddit and assuming he didn't joke in some grey area outside my comprehension, then this is it: http://www.reddit.com/r/archlinux/comme … ith_gcc_5/
Offline
Exactly. The update is not a whole lot worse than many we have done in the past. The only difference is that which packages needing rebuilt from the AUR is not immediately clear. But I will make a news announcement with a way to determine that too...
Offline
This gives a list of non-repo packages you will need to rebuild (when I say to):
for pkg in $(pacman -Qqm); do
if readelf -d $(pacman -Qql $pkg) 2>/dev/null | grep NEEDED | grep -q libstdc++.so; then
echo $pkg
fi
done
Offline
Oh, oh...
...
dropbox
samsung-unified-driver
...
EDIT: Yes, let's turn this into a question. Will there be a way to run outdated binaries?
Last edited by Awebb (2015-02-24 13:30:31)
Offline
hrm...
I bet samsung-unified-driver does not link to much else so will be fine (the old C++ ABI is still in the library). Dropbox might be an issue...
Offline
Is there a way to determine, what a binary links to?
EDIT: This would be a good opportunity to reevaluate all the binary packages we use and see if there are alternatives.
Last edited by Awebb (2015-02-24 13:33:55)
Offline
Is there a way to determine, what a binary links to?
Allan used readelf in the loop and then there is ldd and also objdump.
Edit: Dropbox will probably still work, since it should include all the libraries it needs.
Last edited by progandy (2015-02-24 13:41:15)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
Awebb wrote:Is there a way to determine, what a binary links to?
Allan usedd that in the loop: ldd
Ah, I should read more carefully. There is readelf.
Offline
Naive question: won't the version of libstdc++.so.* change? So if dropbox is linked against libstdc++.so.6 and the new version is libstdc++.so.7, then having a legacy gcc4 package would suffice to keep dropbox (or any other old binary) running, right?
Offline
Because gcc devs are idiots.
Offline
Naive question: won't the version of libstdc++.so.* change? So if dropbox is linked against libstdc++.so.6 and the new version is libstdc++.so.7, then having a legacy gcc4 package would suffice to keep dropbox (or any other old binary) running, right?
They claim sonames aren't good enough.
http://developerblog.redhat.com/2015/02 … e-c11-abi/
[...]
The last time G++ went through an ABI change, back in the 3.x period, we changed the soname of libstdc++, which was widely regarded as a mistake. Changing the soname caused a lot of pain but is not sufficient to deal with changes in symbol ABIs: if you load multiple shared objects that depend on different versions of the library, you can still get clashes between different versions of the same symbol.So the plan for this ABI change has been to leave the soname (and the existing binary interface) alone, and express the new ABI using different mangled names.
[...]
Calling the resulting symbol names mangled is not wrong, but I'd rather call them garbled.
Last edited by progandy (2015-02-24 14:18:17)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
I'm seeing google-chrome, chromium-pepper-flash, and the virtualbox extension pack. We'll have to see how this goes.
Offline
All of my "outated" kde4 packages (fate,kwrite,gwenview,konsole) i kept to not f**** kde4 environment will need a rebuild as well.
Help me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !
Offline