Problem mit den Patches in binutils-cross-arm

  • Nachdem ich mal wieder ein aktuelles Image bauen wollte, habe ich forsch ein "make update" abgesetzt.
    Das hat auch erfolgreich abgeschlossen und ein aktualisiertes SDK gemeldet.
    Das anschliessende "make image" schlaegt aber immer bei der Anwendung der Patches innerhalb von binutils-cross-arm/2.26-r0 auf.
    "make clean" davor aendert auch nichts.
    Ich habe jetzt angefangen, die Patches per Hand einzupflegen, wollte aber mal nachfragen, ob ich etwas falsch gemacht habe oder ob der aktuelle Stand da ein Problem hat?

    DM900 SS, DM8000SSSS
    Kein Support per PN! Nutzt das Forum zum Fragen, dann haben auch andere etwas davon.

  • Wie lautet die Fehlermeldung? So generisch bringt das nichts. Auch mal meine Patchsammlung angeschaut?

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Es sind die Patches, die im Verzeichnis "build/dm900/tmp-glibc/work/x86_64-linux/binutils-cross-arm/2.26-r0/" stehen.
    Die Fangen mit einer vierstelligen Zahl an und sind von 0001 aufsteigend.
    Es wird immer ein Fehler der folgenden Form angezeigt (natuerlich fuer jeden Patch an einer anderen Zeile in der Datei und je nach Anzahl der Hunks in einer Datei auch mehrere):

    Code
    Hunk #1 FAILED at 167 (different line endings).
    1 out of 1 hunk FAILED -- rejects in file opcodes/configure.ac


    Beim "Handpatchen" stellt sich dann immer heraus, dass die Stellen viele Zeilen vom Ort entfernt liegen, der im Patch angegeben ist.
    Sieht also so aus, als waere der Source deutlich juenger als die Patchdateien.
    Entweder hat da gerade jemand etwas aktualisiert und die Patchdateien vergessen, oder ich habe etwas bei mir falsch gemacht.
    Reicht eigentlich das "make update" damit alles auf den aktuellen Stand gebracht wird, oder kann/muss ich da noch mehr machen?

    DM900 SS, DM8000SSSS
    Kein Support per PN! Nutzt das Forum zum Fragen, dann haben auch andere etwas davon.

  • Seltsam finde ich, dass different line endings kommt. Das würde heissen, dass eine Datei z.B. unix- und die andere Windows-Zeilenenden hat. Reine Zeilenverschieber sind eigentlich kein Problem.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Ich habe den Grund gefunden.
    Da ich auch fuer andere Projekte GIT verwende, habe ich wohl irgendwann in der globalen GIT-Config core.autocrlf auf "true" gesetzt.
    Wenn man damit Dateien auscheckt, dann werden die Zeilenenden NICHT angepasst.
    Der Source der Dreamboxen erwartet wohl implizit, dass core.autocrlf auf "input" steht und damit die Zeilenenden auf den OS Standard beim Auschecken gesetzt werden.
    Ich habe mit core.autocrlf=input nochmal geclont und dann geht es problemlos. Ein diff zeigt dann tatsaechlich nur Unterschiede in den Zeilenenden "neuer" Dateien zwischen den beiden Verzeichnissen (alter (aktualisierter) und neuer (frischer) Clone).
    Tricky.

    DM900 SS, DM8000SSSS
    Kein Support per PN! Nutzt das Forum zum Fragen, dann haben auch andere etwas davon.