compiler Updaten ?

  • Ich habe LinVDR als Basis für meinen Streaming Client mit dxr3 auf einem CF genommen.Für diesen habe ich eine Woody Entwicklungsumgebung erstellt. Ich konnte auch Kernel Dxr3 Treiber und VDR 1.3.25 Übersetzen.


    Doch nun stoße ich bei einigen Plugins auf Problem. Offensichtlich gehen einige von diesen auf denn gcc-2.95.4 zurück.


    Nun habe ich zwar für manche Plugins eine Anpassung an den 2.95 Compiler gefunden, doch so richtig glücklich bin ich damit nicht.


    Momentan habe ich dieses Problem das wohl auch auf den Compiler zurück geht


    Code
    In file included from /usr/local/include/cdio/types.h:104,
                     from /usr/local/include/cdio/cdio.h:46,
                     from /usr/local/include/cdio/cdtext.h:33,
                     from cdda_device.h:13,
                     from cdda_player.h:14,
                     from cdda_menu.h:15,
                     from cdda.c:12:
    /usr/lib/gcc-lib/i386-linux/2.95.4/include/stdbool.h:9: parse error before `false'
    /usr/lib/gcc-lib/i386-linux/2.95.4/include/stdbool.h:11: declaration does not declare anything


    Jetzt frage ich mich was ich beachten muss wenn ich einen anderen Compiler einsetzen will. Reicht es aus einen neuen mit apt-get zu installieren? Ist es unbedingt nötig das alle Komponenten mit dem gleichen Compiler übersetzt worden sind? ich mein einige libs, den Kernel, VDR und alle Plugins könnte ich ja neu übersetzen.


    Edit!!
    Habe gesehen das es wohl mit gcc 3.0.4 get jedoch nicht mit 3.4. Wo die genau grenze ist weis ich noch nicht. Ab irgend einer Version müssen wohl die clibs ausgetauscht werden. Die Frage ist wirt es mit einer 3.0 Version weniger Probleme geben.

  • Zitat

    Original von swer
    ich mein einige libs, den Kernel, VDR und alle Plugins könnte ich ja neu übersetzen.


    Einige Libs langt nich - das steht allerdings auch schon an diversen Ecken in diesem Board .


    Libs und Kernel(-Module) müssen mit der gleichen Compiler Version compiliert sein .
    Wenn du die libc änderst , kannste den großen Rest direkt mit compilieren - da wird nämlich nix mehr funzen .


    HJS

  • Zitat

    Original von hjs


    Libs und Kernel(-Module) müssen mit der gleichen Compiler Version compiliert sein .
    Wenn du die libc änderst , kannste den großen Rest direkt mit compilieren - da wird nämlich nix mehr funzen .


    HJS


    wenn ich es richtig verstanden habe, könnte Software (also auch VDR + Plugins) aber durchaus mit einer höheren Compilerversion compiliert werden, solange nur libs und Kernel mit der gleichen Version kompiliert wurden.


    Kann man auch einzelne Plugins mit einer höheren compilerversion compilieren, oder wenn dann vdr + plugiuns komplett?


    Wäre schön, wenn diejenigen, die erfolgreich für Linvdr kompilieren, ihre Lösungen hier mal mitteilen. (welche Anpassungen helfen bei welchem Plugin, damit es unter 2.95 kompiliert, bzw. für welche Plugins braucht man welchen neueren Compiler.


    Muss ja nicht sein, dass jeder das Rad neu erfindet und am Ende lauter unterschiedlich verpanschte Linvdr-Patches herumlaufen.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    2 Mal editiert, zuletzt von Dr. Seltsam ()

  • hi,


    nimm diesen hier, deb http://debian.ethz.ch/pub/debian-backports woody/backports gcc-3.3 in deine sources.list


    läuft bei mir tadellos, fast alle plugins werden übersetzt!


    ich habe damit das xine-plugin unter linvdr0.7 am laufen.


    du musst allerdings vdr und alle deine plugins damit übersetzen .


    mfg


    jobit :]

    OpenElec auf raspberry pi / Cubieboard2
    Fernbedienungen: Handy, Fhem

  • hjs Hast recht das darüber schon öfters gesprochen wurde. War mir aber nicht ganz klar. Und wollte auf Nunmahlsicher gehen.
    Und mit "Einige libs" meinte ich eher so was wie aalib libmad und Co.


    Mus mir das ganze e noch einmal überlegen, da ich fast alles übersetzt bekommen habe. Außerdem kann ich ja Audio CDs auch mit cdfs und dem mp3 Plugin hören muss deswegen ja nicht unbedingt das cdda Plugin zum Laufen bringen.


    @ jobit Ich hoffe du hattest nicht extra wegen Xine einen anderen Compiler genommen. Mit Xine und dem Xine-Plugin hatte ich nämlich gar keine Probleme.

  • Servus,


    da hier immer wieder mal Fragen zu unterschiedlichen Compiler-Versionen auftauchen: Prinzipiell könnt ihr jedes Programm mit einer anderen GCC-Version compilieren, am Ende funktionieren trotzdem alle Binaries.


    Wichtig ist nur, dass jedes Programm für sich mit dem gleichen Compiler übersetzt wurde. So muss die Compiler-Version vom Kernel und seinen Modulen möglichst überein stimmen, sonst kann das Probleme bis hin zum Kernel-Ups führen. Auch bei VDR müssen das Binary und alle Plugins mit dem gleichen Compiler übersetzt sein. Für echte Bibliotheken (/lib/*.so) spielt die Compiler-Version keine wirklich große Rolle.


    Der Hintergrund, warum man auf die Compiler-Version achten sollte, sind die Änderungen und Verbesserungen im GCC. Ändert sich nur die Sub-Minor-Nummer, ist es relativ wahrscheinlich, dass der neue Compiler den Code fast identisch übersetzt wie der bisherige Compiler. Bei anderen Minor-Versionen kommt es aber durchaus zu Interpretationsunterschieden, das beste Beispiel sind nötige Änderungen in den Quellen um das ganze überhaupt mit neueren Compilern übersetzen zu können. Wenn man jetzt Object-Files mit unterschiedlichen Compiler-Versionen hergestellt hat, passen sie aufgrund der Änderungen im Compiler einfach nicht mehr zusammen. Deshalb sollte man bei jeder neuen Compiler-Version erst ein "make clean" über die Sourcen schicken, bevor man sie neu compiliert.


    Viele Grüße, Mirko

  • Hallo Mirko,
    danke für die Erläuterung.
    Manchmal möchte man sich ja vielleicht nur ein einzelnes Plugin dazukompilieren, so dass es zu den vielen Plugins von 0.7 passt. Oder ein zusätzliches Kernelmodul (z.B. dxr3), ohne den kompletten Original-Kernel 2.6.9 auszutauschen.
    Habt Ihr denn Eure "plain-vanilla-0.7" komplett mit 2.95.4 übersetzt, oder evtl. auch schon einen neueren Compiler (sei es nun für Kernel+Module oder vdr+plugins) genommen?


    Gruß
    Dr. Seltsam

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • ich lass nicht locker :D


    ... und möchte die Frage auch an MarcTwain richten, zu dessen Patches ich beim Selbstkompilieren unbedingt kompatibel bleiben möchte :)


    Gruß
    Dr. Seltsam

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • mit etwas glück bekommen wir ja bei linvdr0.8 auch eine aktuelle gcc und libc version.
    Dann haben wir dieses Problem vielleicht erstmal nicht mehr.


    Es nervt nur etwas das der Stoneage gcc die neuen Sachen oft nicht mehr mag.


    Ist nicht sogar schon die gcc 4.0 Version raus gekommen?
    Bin aber dafür das wir bei der 3er Reihe bleiben.

  • Zitat

    Original von Dr. Seltsam
    ich lass nicht locker :D


    ... und möchte die Frage auch an MarcTwain richten, zu dessen Patches ich beim Selbstkompilieren unbedingt kompatibel bleiben möchte :)


    MarcTwain hat diese Frage in diesem Portal schon mal beantwortet - seine Patches sind alle mit 2.95... erstellt ...

    Gruß


    sdu

    *******************************************************************
    gen2vdr 2.0
    TT1.3, Skystar 2.6c, activy300, STBs AVBoard
    *******************************************************************

  • Servus,


    Zitat


    Habt Ihr denn Eure "plain-vanilla-0.7" komplett mit 2.95.4 übersetzt, oder evtl. auch schon einen neueren Compiler (sei es nun für Kernel+Module oder vdr+plugins) genommen?


    Das ist alles mit GCC 2.95.4 übersetzt.


    Zitat

    mit etwas glück bekommen wir ja bei linvdr0.8 auch eine aktuelle gcc und libc version.


    Jepp, sieht so aus. Außerdem wird die 0.8 wohl wieder kleiner als die 0.7, wir wollen bei der Gelegenheit gleich mal "ausmisten" und den ganzen unnützen Krempel rauswerfen, den eh keiner braucht. Dass Distributionen immer so aufgeplustert sein müssen... :D


    Viele Grüße, Mirko

  • cooper


    Was verstehst Du denn z.B. unter "unnützen Krempel"?

    HD DVB-C System / Ubuntu 14.04 x64 / Kernel 3.13.0-48 x64; VDR 2.2.x; VDRadmin 3.6.10 / ACPI Wakeup

    SoftHD-Device GIT / Vdpau / Nvidia 337.25

    ASUS AT5IONT-I; Atom D525; 4GB; Nvidia GT218; 1x DD Cine C/T v6; 1x DD DuoFlex C/T v2; (20~40 Watt)

  • Och, so diverse Programme, die man nur manchmal braucht. ethtool ist eins der schlechteren Beispiele, weil dafür wird's wahrscheinlich zu häufig eingesetzt. Wir werden halt mit dem roten Stift durch die Verzeichnisse wandern und nochmal gucken, ob wir die jeweiligen Dateien nun wirklich im Basis-System brauchen oder nicht.


    Ich denke da lassen sich ein paar KB zusätzlich sparen. Wenn wir Glück haben, wird wie bei der 0.7 im Vergleich zur 0.6 die Funktionalität größer bei kleinerem Image. Vielleicht sollten wir ja mal die Null-Kompression einführen :D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!