• Arch Linux
  • PKGBUILD environment, configure Ergebnis unterschiedlich

  • Bearbeitet

Moin allerseits,

ich habe ein git project, welches im Wesentlichen durch die Kommandos

make distclean || true
./symlinks
./configure --prefix=/opt/eli
make

übersetzt wird (symlinks wird von den Sourcen mitgebracht und erzeugt einige symbolische Links). Dieses funktioniert in meinem eigenen Homeverzeichnis (d.h. ohne makepkg) sehr gut. Als Option für den C Compiler wird dort "-O2" generiert (von ./configure) und damit lässt sich das Projekt vollständig übersetzen.

Wenn ich das ganze auf derselben Maschine mit meinem PKGBUILD und makepkg mache (welches jetzt schon ein paar Jahre sehr gut funktioniert hat), dann erzeugt dasselbe configure seit neuestem die Optionen

-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map= /home/tomsam/self_compiled/eli-git/src=/usr/src/debug/eli-git -flto=auto

welches später zu einem Problem mit einem Symbol des Namens __gnu_lto_slim führt.

Ich gehe mal davon aus, dass nunmehr (das System wurde vor 2 Tagen vollständig upgedatet, inklusive neuestem gcc) in der makepkg Buildumgebung irgendetwas fehlt oder hinzugekommen ist, was zu dieser "Defaulteinstellung" führt (Die genannten Optionen kommen anderweitig im gesamten Sourcecode nicht vor).

Hat irgendeiner eine Idee, was das sein könnte?

  • Martin-MS hat auf diesen Beitrag geantwortet.

    tomsam Ich gehe mal davon aus, dass nunmehr (das System wurde vor 2 Tagen vollständig upgedatet, inklusive neuestem gcc) in der makepkg Buildumgebung irgendetwas fehlt oder hinzugekommen ist, was zu dieser "Defaulteinstellung" führt (Die genannten Optionen kommen anderweitig im gesamten Sourcecode nicht vor).

    Die Optionen werden durch/etc/makepkg.conf gesetzt (#-- Compiler and Linker Flags ab Zeile 41) und können durch ~/.makepkg.conf mit eigenen Einstellungen übersteuert werden.

    Versuche mal durch setzen von OPTIONS=(...!lto...) im PKGBUILD die Link-time-Optimierungen auszusetzen, ob das Problem dann immer noch auftritt.

    Ansonsten wäre die Quelle des git-Projekts und des PKGBUILD ganz hilfreich, um das Problem nachstellen zu können.

    • tomsam hat auf diesen Beitrag geantwortet.

      Martin-MS Ja, danke, das Setzen von options=(!lto) hat zum Erfolg geführt, d.h. das Executable wird korrekt erzeugt, wenn auch mit ein paar Meldungen der Form

      libfakeroot internal error: payload not recognized!

      Das PKGBUILD ist nicht auf AUR, weil die Ersteller der Software sich weigern, Probleme zu lösen oder zu beachten, welche zu Referenzen auf $srcdir oder $pkgdir führen. Ich habe da schon mehrmals drauf hingewiesen und Lösungen vorgeschlagen, aber es ist dann eher so, dass mit neueren Updates noch weitere derartige Probleme auftauchen, als das sie gelöst wurden.

      • Martin-MS hat auf diesen Beitrag geantwortet.

        tomsam libfakeroot internal error: payload not recognized!

        Das wird scheinbar nur beim Bauen des Debug-Pakets ausgegeben. Wann du darauf verzichten kannst, könntest du zusätzlich noch OPTIONS=(...!debug...)setzen.

        tomsam Das PKGBUILD ist nicht auf AUR, weil die Ersteller der Software sich weigern, Probleme zu lösen oder zu beachten, welche zu Referenzen auf $srcdir oder $pkgdir führen.

        Du könntest auch selber im AUR ein Projekt mit deinem fehlerkorrigierten PKGBUILD erstellen, wenn sich die Entwickler unkooperativ zeigen und die Quellen öffentlich zugänglich sind. Dann wärst du von den Entwicklern unabhängig und hättest eine breitere Nutzerbasis, die auch evtl. die noch verbliebenen Probleme beim Paketieren lösen könnten.