stdio/getline error beim kompilieren auf squeeze

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

stdio/getline error beim kompilieren auf squeeze

Beitrag von startx » 11.11.2009 18:01:02

seit dem upgrade auf squeeze melden verschiedene programme beim kompilieren

Code: Alles auswählen

error: conflicting types for ‘getline’
/usr/include/stdio.h:651: error: previous declaration of ‘getline’ was here
make: ***  Error 1
die gleichen sourcen kompilieren sauber auf lenny. weiss jemand was da los ist? ist das ein bug in libc6-dev in testing?

Benutzeravatar
George Mason
Beiträge: 1175
Registriert: 01.03.2006 22:55:19
Lizenz eigener Beiträge: MIT Lizenz

Re: stdio/getline error beim kompilieren auf squeeze

Beitrag von George Mason » 11.11.2009 18:14:59

Es ist die neue libc6, aber it's notabug:
This has been already fixed in newer kernels.
getline is a standard POSIX 2008 function and we do want POSIX C 2008 stuff by
default. If you don't like it, choose a different namespace or rename your
functions.
und:

http://www.mail-archive.com/debian-bugs ... 94872.html

Lösung:

Öffne /usr/include/stdio.h and ersetze getline mit parseline in Zeile 651:

Code: Alles auswählen

   This function is not part of POSIX and therefore no official
   cancellation point.  But due to similarity with an POSIX interface
   or due to the implementation it is a cancellation point and
   therefore not marked with __THROW.  */
extern _IO_ssize_t parseline (char **__restrict __lineptr,
                            size_t *__restrict __n,
                            FILE *__restrict __stream) __wur;
#endif
P.S. gefunden mit Google. Suchbegriffe: debian error: conflicting types for ‘getline’

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Re: stdio/getline error beim kompilieren auf squeeze

Beitrag von startx » 12.11.2009 10:21:04

danke, allerdings taucht die frage auf ob diese aenderung in stdio.h zu problemen beim kompilieren anderer software fuert? oder ist das unkritisch?

ausserdem ist das meiner meinung nach insofern doch ein bug, als das sich das sich manche source pakete von debian selbst nicht kompilieren lassen, und das sollte doch so eigentlich nicht sein.

Benutzeravatar
George Mason
Beiträge: 1175
Registriert: 01.03.2006 22:55:19
Lizenz eigener Beiträge: MIT Lizenz

Re: stdio/getline error beim kompilieren auf squeeze

Beitrag von George Mason » 12.11.2009 12:15:20

startx hat geschrieben:danke, allerdings taucht die frage auf ob diese aenderung in stdio.h zu problemen beim kompilieren anderer software fuert? oder ist das unkritisch?
Grundsätzlich gilt: mach vorher eine Sicherheitskopie der Datei. Nimm grundsätzlich die Originaldatei und nur bei Problemen mit der Getline-Funktion, nimm die veränderte Version. Nach dem Kompilieren der fehlerhaften Quellpakete, die den Fix brauchen, stellst Du die Originalversion der Datei wieder her.
ausserdem ist das meiner meinung nach insofern doch ein bug, als das sich das sich manche source pakete von debian selbst nicht kompilieren lassen, und das sollte doch so eigentlich nicht sein.
Das müsstest Du mit den Maintainern der libc6 ausmachen. Die freuen sich bestimmt über Deinen Hinweis :) Ich habe den Bug nicht eingebaut. Ich sag Dir nur, wie Du Dein Problem lösen kannst.

Gruß
GM

Antworten