[Patchset] Neutrino-Code für neuere Compiler anpassen

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

[Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von seife »

Hier compiler-warnings-and-64bit-fixes.tar.gz ist ein Patchset aus 10 Patches, die zapit und neutrino dazu bringen
a) auf neueren Compilern zu bauen (getestet mit 4.3.3)
b) auf 64bit-Architekturen zu bauen (getestet auf x86_64)

Die Patches im einzelnen (Danke git-format-patch!):
  • 0001-Add-missing-includes-for-newer-compilers.patch:
    Seit gcc 4 ist der Compiler etwas penibler geworden, z.B. will der g++ mehr Header, die er früher implizit included hatte, jetzt explizit aufgeführt haben.
  • 0002-fix-char-vs-const-char-compiler-warnings.patch:
    Es ist nun nicht mehr zulässig, eine Funktion, die foo(char *) ist mit foo("abc") aufzurufen, "abc" ist const char*
  • 0003-fix-scope-of-variables.patch:
    Der Compiler ist nun penibler, wenn Variablen neudefiniert werden oder wenn mit "case" oder "goto" die Deklaration übersprungen wird
  • 0004-remove-unneeded-extra-qualifications.patch
  • 0005-add-braces-after-empty-if-for-blocks.patch
    "for(i = 0; i < 5; i++);" ist nicht mehr erlaubt (weil es ein Hinweis auf einen Tippfehler ist). Wenn man wirklich eine "leere" for-Schleife machen will, dann muss man "{}" dahinter machen. Dasselbe für "if()", dabei habe ich glatt einen bug im MP2 gefunden ;)
  • 0006--typedef-enum-is-no-longer-allowed.patch
  • 0007-fix-a-neutrino_msg_data_t-vs.-neutrino_msg_t-confusi.patch
    Bugfix, fiel nur nie auf weil beide Typen gleich waren. Bei 64 bit sind sie das nicht mehr.
  • 0008-fix-neutrino_msg_data_t-definition.patch
    neutrino_msg_data_t war als uint definiert. Allerdings werden damit auch pointer auf objekte durch den socket geschoben (doofe idee, aber egal). Ein Pointer ist aber auf 64bit-Maschinen 64 bit lang, uint nur 32 => definiere neutrino_msg_data_t als size_t.
  • 0009-a-pointer-is-not-necessarily-32-bits-long.patch
  • 0010-syntax-tweaks-for-newer-compilers.patch
Mit diesem Patchset kann man zapit und Neutrino auf x86_64 kompilieren (zapit funktioniert sogar). Ein schnelles "make flash-neutrino..." funktionierte auch im CDK noch, aber vor ich die Sachen einchecke würde ich gerne wissen, ob es denn auf der Box auch noch funktioniert ;)

BTW: das war natürlich nicht alles, bei neutrino und Co spuckt der Compiler noch gift und Galle wg. const char* <-> char* etc, aber da neutrino nicht mit "-Werror" gebaut wird wie zapit ist das erstmal nicht sooooo schlimm, das können wir dann später mal aufräumen ;)

P.S. wer ganz viel Spass haben will, sollte mal mit "-Wshadow" kompilieren...
mohousch
Einsteiger
Einsteiger
Beiträge: 362
Registriert: Mittwoch 14. Dezember 2005, 03:25

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von mohousch »

Danke ;)
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von Striper »

seife hat geschrieben:..., dabei habe ich glatt einen bug im MP2 gefunden ;)
Könnten daher die Pufferorgien gekommen sein von denen ich dir berichtet hatte?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von seife »

Nein. Er hätte bei mehr als 32 Tonspuren (oder so) segfaulten können.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von GetAway »

Hier mal eine Rückmeldung. Kurz und knapp.
Make flash-semiclean hat hoffentlich gereicht.
  • Alle Diff's in aktuelles CVS, ohne Probs.
  • Kompiliert durch.
  • Bootet aus Flash.
  • TV schauen kann man auch.
mohousch
Einsteiger
Einsteiger
Beiträge: 362
Registriert: Mittwoch 14. Dezember 2005, 03:25

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von mohousch »

@seife

HW: conexant cx23882:
ts an demuxer ist da wenn ich ihn zu dvr schicke kann ihn schauen aber die av/output geht nicht:
[frontend] uncommitted_switch_mode 0
/tmp/currentservices.xml: No such file or directory
[audio.cpp:setMute:53] ioctl(fd, AUDIO_SET_MUTE, enable): Invalid argument
[video.cpp:setBlank:114] ioctl(fd, VIDEO_SET_BLANK, enable): Invalid argument
# pzapit 1 6
zapped to DUBAI TV
# [audio.cpp:stop:103] ioctl(fd, AUDIO_STOP): Invalid argument
[video.cpp:stop:109] ioctl(fd, VIDEO_STOP): Invalid argument
[video.cpp:setSource:83] ioctl(fd, VIDEO_SELECT_SOURCE, source): Invalid argument
[video.cpp:start:104] ioctl(fd, VIDEO_PLAY): Invalid argument
[audio.cpp:setSource:86] ioctl(fd, AUDIO_SELECT_SOURCE, source): Invalid argument
[audio.cpp:start:98] ioctl(fd, AUDIO_PLAY): Invalid argument
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von rhabarber1848 »

make yadd-neutrino kompiliert auch durch,
getestet in einem leeren Verzeichnis, bootstrap usw.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von seife »

Ich habe es jetzt eingechecked, weil ich mir sehr sicher bin, dass das nichts kaputtmachen kann.

(...famous last words... ;-))

Und dabei habe ich festgestellt, dass "git cvsexportcommit" fast ebenso genial ist wie "git add --interactive" ;)
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von JtG-Riker »

@seife

baust du dann auch nen neuen compiler ein für die Sachen ?

Gruß Riker
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von seife »

Nein, dazu kenne ich mich zuwenig aus (und ob's was bringt weiss ich nicht). Aber man kann es jetzt nativ auf einem PC (z.B.) kompilieren, ohne sich erst einen alten Compiler bauen zu müssen.
mohousch
Einsteiger
Einsteiger
Beiträge: 362
Registriert: Mittwoch 14. Dezember 2005, 03:25

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von mohousch »

@seife:

bei dem vdr-zeug stößt der neuer Compiler auf die Deklaration des "friend class" als Fehler; kannst Du bitte dir das anschauen?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Patchset] Neutrino-Code für neuere Compiler anpassen

Beitrag von seife »

Welches VDR-zeug?