Du bist nicht angemeldet.
Seiten: 1
GCC 5.x enthält eine libstdc++ mit Unterstützung zweier ABIs, und Arch Linux verwendet jetzt die neue ABI.
Obwohl die alte C++ ABI immer noch da ist, wird empfohlen, alle Pakete, die nicht aus offiziellen Repos stammen, neu zu kompilieren. Insbesondere bei indirekten Abhängigkeiten zu Bibliotheken, die schon die neue ABI verwenden, kann dies nötig sein. Mit dem folgenden Skript kann man sich eine Liste der betroffenen Pakete generieren lassen:
#!/bin/bash
while read pkg; do
mapfile -t files < <(pacman -Qlq $pkg | grep -v /$)
grep -Fq libstdc++.so.6 "${files[@]}" 2>/dev/null && echo $pkg
done < <(pacman -Qmq)
Offline
./alteabi.sh
chromium-pepper-flash
libchardet
libtaginfo-git
makemkv
makemkv-libaacs
thunderbird-lightning-bin
Sollte ich auf ein Update der Packer vertrauen, oder selbst aktiv werden?
Offline
Selber aktiv werden. Selbst wenn die Maintainer reagieren, wirst du AUR-Pakete ja ohnehin selber bauen müssen. Die meisten PKGBUILDS werden womöglich auch gar nicht angepasst werden müssen, nur die dadurch entstehenden Pakete.
Offline
In wie fern muss man da aktiv werden? Ich habe jetzt dropbox-experimental neugebaut und es erscheint immer noch in der liste.
$ . oldabi.sh
dropbox-experimental
evince2-light
firefox-beta-bin
seafile-client
telegram-desktop-bin
Beitrag geändert von danbruegge (10.12.2015 13:47:14)
Offline
dropbox-experimental installiert nur bereits kompilierte Binärdateien, die halt gegen die alte ABI gebaut wurden, deshalb bringt es nichts, das Paket neu zu bauen. Der Switch auf die neue ABI kann bei Binärpaketen nur von Upstream vollzogen werden.
Offline
Ok, danke für die Info. Bisher läuft mein System auch ohne Probleme nach dem Riesen Update und Neustart.
Einzig Shadow of Mordor will nicht starten, im Steam.
Offline
@stefanhusmann
Danke für die Antwort.
Offline
Beim Update stoße ich auf einen Konflikt zwischen gcc-libs und gcc-libs-multilib.
Auf zwei Archsystemen läuft bei mir gcc-libs-multilib anstelle von gcc-libs. Die Ersetzung war aufgrund des Paketes pdfstudio erfolgt, das gcc-libs-multilib zwingend benötigt. Mit den heutigen GCC 5.x-Updates ist das nicht mehr möglich:
pacman -Syu
---
Löse Abhängigkeiten auf...
Suche nach in Konflikt stehenden Paketen...
:: gcc-libs und gcc-libs-multilib stehen miteinander in Konflikt. gcc-libs-multilib entfernen? [j/N] j
Fehler: Konnte den Vorgang nicht vorbereiten (Kann Abhängigkeiten nicht erfüllen)
:: pdfstudio: benötigt gcc-libs-multilib
pacman -Qi gcc-libs
Fehler: Paket 'gcc-libs' wurde nicht gefunden
pacman -Qi gcc-libs-multilib
Name : gcc-libs-multilib
Version : 5.2.0-2
Beschreibung : Runtime libraries shipped by GCC for multilib
Architektur : x86_64
---
Liegt da eventuell ein Fehler beim Paket gcc-libs vor?
Gruß, Werner
Offline
Nein, der Konflikt liegt in der Natur der Dinge. Prüfe einmal nach, ob in der pacman.conf die mulitilib-Varianten _vor_ den Entsprechungen ohne -multilib eingebunden sind. Dann sollte nicht versucht werden, gcclibs zu installieren.
Offline
Vielen Dank Stefan!
Ich habe das Problem gerade vor ’ner Minute lösen können. Die Ursache war, dass ich zu kompliziert gedacht habe
Es war nur ein Sache der richtigen Reihenfolge: Ich habe das aktualisierte Paket gcc-libs-multilib 5.3.0-2 vor dem Gesamtupdate erst einmal gesondert neu installiert, danach lief’s problemlos durch.
Gruß, Werner
Edit: … [multilib] stand tatsächlich nachrangig in der pacman.conf
Beitrag geändert von Werner (10.12.2015 16:17:00)
Offline
Wie verträgt sich das denn mit Anwendungen von denen man keinen Sourcecode hat? Typischerweise werden ja Pakete für Debian oder Ubuntu gebaut, die dann auch zufällig unter ArchLinux laufen. Baut ja kaum jemand für ArchLinux seine Software noch mal neu.
Offline
Die alte ABI ist ja noch verfügbar, daher durchatmen und ruhig bleiben!
Blöde Frage von mir vielleicht, aber worin zeigt sich dieses Update, also dass Archlinux jetzt die neue ABI verwendet? Edit: Ok, jetzt kommt hier auch dieses riesige Update rein!
Beitrag geändert von sekret (10.12.2015 21:48:52)
Offline
also ich habe alle durch das Skript angemerkten AUR-Pakete neu gemacht, und slebst bei denen, die neu kompiliert wurden, hat sich nichts geändert, was das Script angeht; sie werden weiterhin aufgeführt?!
Offline
Wenn die neu kompilierten Programme weiterhin wie gewohnt funktionieren, würde ich die Füße stillhalten. Das Skript zeigt nur Kandidaten auf, die betroffen sein könnten.
Offline
Wie verträgt sich das denn mit Anwendungen von denen man keinen Sourcecode hat? Typischerweise werden ja Pakete für Debian oder Ubuntu gebaut, die dann auch zufällig unter ArchLinux laufen. Baut ja kaum jemand für ArchLinux seine Software noch mal neu.
Die laufen nicht zufällig auch unter Arch Linux. Binärpakete sind oft statisch gelinkt, da kommt das Problem mit welchselnden Systembibliotheken nicht zum Tragen.
Offline
Die laufen nicht zufällig auch unter Arch Linux. Binärpakete sind oft statisch gelinkt, da kommt das Problem mit welchselnden Systembibliotheken nicht zum Tragen.
Das ist bei mir nur Skype. Der Rest ist dynamisch gelinkt. Also z.B. Google Chrome oder der Zoom.us Client.
Offline
Es betrifft also nur C++ und nicht reine C Programme?
So ist zwar das Thema dieses threads, aber sicherheitshalber nochmal meine Nachfrage (zumal ich bislang davon ausgegangen bin, daß C++ nur eine Art Precompiler für C ist und keinen Einfluß auf den erzeugten Maschinencode bzw. libraries hat) ?
Danke und Gruß, LW
Offline
Ja, reine C-Programme sind nicht betroffen.
Aber C++ ist nicht nur ein Preprozessor. g++ ist ein eigener Compiler.
Offline
zumal ich bislang davon ausgegangen bin, daß C++ nur eine Art Precompiler für C ist und keinen Einfluß auf den erzeugten Maschinencode bzw. libraries hat
Lol, so war das vor zwanzig Jahren.
Lol, so war das vor zwanzig Jahren.
Hehe, drum hab ich's wohl so auch in Erinnerung.
Aber unabhängig davon, C bleibt C - zumindest bei meinen kleineren 'Ein-Mann-Projekten' sowie für embedded systems - da gibt's nicht viel zu vererben
Ist aber ein anderes Thema ...
Offline
Seiten: 1