./configure bricht mit "error: conflicting types for 'size_t'" ab
Hallo Liste,
ich habe ein Problem mit der Kompilation eines Programms
tilp (Details folgen). Auf der opensuse Liste hat man mir
geraten, hier vorzusprechen. Ich habe die programmers-de
Liste abonniert, bin aber kein Programmierer, kompiliere
aber gerne dann und wann, wenn's nötig ist, selbst.
Details:
Mein System: Opensuse 10.3 mit allen Updates
darunter:
zlib-1.2.3-75
zlib-devel-1.2.3-75
zlib-devel-32bit-1.2.3-75
zlib-32bit-1.2.3-7
gcc-4.2-24
libgcc42-32bit-4.2.1_20070724-17
gcc42-gij-4.2.1_20070724-26
libgcc42-4.2.1_20070724-17
gcc-gij-4.2-24
gcc42-32bit-4.2.1_20070724-17
gcc42-4.2.1_20070724-17
glibc-locale-32bit-2.6.1-18.2
glibc-2.6.1-18.2
glibc-devel-2.6.1-18.2
glibc-devel-32bit-2.6.1-18.2
glibc-32bit-2.6.1-18.2
glibc-locale-2.6.1-18.2
glibc-i18ndata-2.6.1-18.2
und diese Pakete, von denen tilp anhängig ist:
libticonv-1.0.5-1
libticalcs2-1.0.8-1
libticables2-1.1.0-1
libtifiles2-1.0.8-1
Das Paket, dessen Kompilation scheitert, heisst tilp und ist
ebenso wie die vier vorgenannten (zusammengefasst "tilibs")
hier herunterzuladen:
http://www.ticalc.org/pub/unix/
Nun zum Problem:
./configure von tilp stoppt mit der Fehlermeldung
checking for libz... configure: error: not found. Check your
installation and look into config.log
Die hoffentlich für das Problem relevanten Details aus dem
log sind hier [1]. Ich vermute, es hängt mit sich
widersprechenden Definitionen von size_t zusammen, die im
log zuerst wohl aus iconv ausgelesen werden, und dann am
Schluss, als libz überprüft wird. (Im übrigen zeigt die
config.log noch an anderen Stellen die
Fehlermeldung "error: conflicting types for 'size_t'" an.
Nur bei libz führt sie zum Abbruch.)
Die Datei iconv.h kommt aus dem Paket libticonv. Ich hänge
sie mal komplett unter [2] an.
Danke für jeden Kommentar!
Guido
[1] === Auszug aus dem config.log ===
configure:25171: checking for iconv
configure:25203: gcc -o conftest -g -O2 conftest.c >&5
configure:25209: $? = 0
configure:25279: result: yes
configure:25302: checking for iconv declaration
configure:25341: gcc -c -g -O2 conftest.c >&5
configure:25347: $? = 0
configure:25366: result:
extern size_t iconv (iconv_t cd, char * *inbuf,
size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
[...]
configure:36091: checking for libz
configure:36130: gcc -o
conftest -g -O2 -D__LINUX__ -I. -D_REENTRANT
conftest.c -L/usr/lib64 -lz >&5
In file included from /usr/include/zconf.h:289,
from /usr/include/zlib.h:34,
from conftest.c:119:
/usr/include/unistd.h:245: error: conflicting types
for 'size_t'
/usr/lib64/gcc/x86_64-suse-linux/4.2.1/include/stddef.h:214:
error: previous declaration of 'size_t' was here
[2] === ticonv.h komplett ===
/* Hey EMACS -*- linux-c -*- */
/* $Id: ticonv.h 3785 2007-09-19 11:51:51Z roms $ */
/* libTICONV - charset library, a part of the TiLP project
* Copyright (C) 1999-2006 Romain Lievin and Kevin Kofler
*
* This program is free software; you can redistribute it
and/or modify
* it under the terms of the GNU General Public License as
published by
* the Free Software Foundation; either version 2 of the
License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be
useful,
* but WITHOUT ANY WARRANTY; without even the implied
warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General
Public License
* along with this program; if not, write to the Free
Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA.
*/
#ifndef __TICONV_H__
#define __TICONV_H__
#ifdef HAVE_CONFIG_H
# include
Tut mir leid, ich fürchte, ich habe als letzten Anhang die falsche Datei zitiert. Statt ticonv.h muss es wohl iconv.h sein. Ich ersetze also: Am Montag, 22. Oktober 2007 15:48:19 schrieb Guido Pinkernell:
Hallo Liste,
ich habe ein Problem mit der Kompilation eines Programms tilp (Details folgen). Auf der opensuse Liste hat man mir geraten, hier vorzusprechen. Ich habe die programmers-de Liste abonniert, bin aber kein Programmierer, kompiliere aber gerne dann und wann, wenn's nötig ist, selbst. Details:
Mein System: Opensuse 10.3 mit allen Updates darunter:
zlib-1.2.3-75 zlib-devel-1.2.3-75 zlib-devel-32bit-1.2.3-75 zlib-32bit-1.2.3-7
gcc-4.2-24 libgcc42-32bit-4.2.1_20070724-17 gcc42-gij-4.2.1_20070724-26 libgcc42-4.2.1_20070724-17 gcc-gij-4.2-24 gcc42-32bit-4.2.1_20070724-17 gcc42-4.2.1_20070724-17
glibc-locale-32bit-2.6.1-18.2 glibc-2.6.1-18.2 glibc-devel-2.6.1-18.2 glibc-devel-32bit-2.6.1-18.2 glibc-32bit-2.6.1-18.2 glibc-locale-2.6.1-18.2 glibc-i18ndata-2.6.1-18.2
und diese Pakete, von denen tilp anhängig ist:
libticonv-1.0.5-1 libticalcs2-1.0.8-1 libticables2-1.1.0-1 libtifiles2-1.0.8-1
Das Paket, dessen Kompilation scheitert, heisst tilp und ist ebenso wie die vier vorgenannten (zusammengefasst "tilibs") hier herunterzuladen:
http://www.ticalc.org/pub/unix/
Nun zum Problem:
./configure von tilp stoppt mit der Fehlermeldung
checking for libz... configure: error: not found. Check your installation and look into config.log
Die hoffentlich für das Problem relevanten Details aus dem log sind hier [1]. Ich vermute, es hängt mit sich widersprechenden Definitionen von size_t zusammen, die im log zuerst wohl aus iconv ausgelesen werden, und dann am Schluss, als libz überprüft wird. (Im übrigen zeigt die config.log noch an anderen Stellen die Fehlermeldung "error: conflicting types for 'size_t'" an. Nur bei libz führt sie zum Abbruch.)
Die Datei iconv.h kommt aus dem Paket libticonv. Ich hänge sie mal komplett unter [2] an.
Danke für jeden Kommentar!
Guido
[1] === Auszug aus dem config.log ===
configure:25171: checking for iconv configure:25203: gcc -o conftest -g -O2 conftest.c >&5 configure:25209: $? = 0 configure:25279: result: yes configure:25302: checking for iconv declaration configure:25341: gcc -c -g -O2 conftest.c >&5 configure:25347: $? = 0 configure:25366: result: extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
[...]
configure:36091: checking for libz configure:36130: gcc -o conftest -g -O2 -D__LINUX__ -I. -D_REENTRANT conftest.c -L/usr/lib64 -lz >&5 In file included from /usr/include/zconf.h:289, from /usr/include/zlib.h:34, from conftest.c:119: /usr/include/unistd.h:245: error: conflicting types for 'size_t' /usr/lib64/gcc/x86_64-suse-linux/4.2.1/include/stddef.h:2 14: error: previous declaration of 'size_t' was here
[2] === iconv.h komplett ===
/* Copyright (C) 1997, 1998, 1999, 2000, 2003 Free Software
Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute
it and/or
modify it under the terms of the GNU Lesser General
Public
License as published by the Free Software Foundation;
either
version 2.1 of the License, or (at your option) any later
version.
The GNU C Library is distributed in the hope that it will
be useful,
but WITHOUT ANY WARRANTY; without even the implied
warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General
Public
License along with the GNU C Library; if not, write to
the Free
Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA
02111-1307 USA. */
#ifndef _ICONV_H
#define _ICONV_H 1
#include
On Mon, 22 Oct 2007 15:48:19 +0200, Guido Pinkernell wrote:
[1]. Ich vermute, es hängt mit sich widersprechenden Definitionen von size_t zusammen, die im log zuerst wohl aus iconv ausgelesen werden, und dann am Schluss, als libz überprüft wird. (Im übrigen zeigt die config.log noch an anderen Stellen die Fehlermeldung "error: conflicting types for 'size_t'" an. Nur bei libz führt sie zum Abbruch.)
Deine Schlussfolgerungen sind falsch. ticonv.h lädt stddef.h, um die Definition von size_t zu bekommen. Nun scheint diese Definition nicht mit dem übereinzustimmen, was in unistd.h steht. iconv spielt hier überhaupt keine Rolle, das ist ein komplett anderer Test in configure. Also mal zu den Headern Zeile 245 aus /usr/include/unistd.h von glibc-devel aus 10.3 (keine Updates) enthält bei mir: #if defined __USE_BSD || defined __USE_XOPEN # ifndef __socklen_t_defined typedef __socklen_t socklen_t; # define __socklen_t_defined # endif #endif Und das hat mit size_t nun ganz und gar nichts zu tun. Also poste doch bitte mal (mit ein wenig Kontext), was bei Dir and den Stellen in /usr/include/unistd.h und /usr/lib64/gcc/x86_64-suse-linux/4.2.1/include/stddef.h steht. Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Danke für die Rückmeldung. Um es vorweg zu nehmen: Auch unistd.h liest die (widersprechende) stddef.h aus. Details inline: Am Montag, 22. Oktober 2007 21:08:26 schrieb Philipp Thomas:
On Mon, 22 Oct 2007 15:48:19 +0200, Guido Pinkernell wrote:
[1]. Ich vermute, es hängt mit sich widersprechenden Definitionen von size_t zusammen, die im log zuerst wohl aus iconv ausgelesen werden, und dann am Schluss, als libz überprüft wird. (Im übrigen zeigt die config.log noch an anderen Stellen die Fehlermeldung "error: conflicting types for 'size_t'" an. Nur bei libz führt sie zum Abbruch.)
Deine Schlussfolgerungen sind falsch. ticonv.h lädt stddef.h, um die Definition von size_t zu bekommen. Nun scheint diese Definition nicht mit dem übereinzustimmen, was in unistd.h steht.
[...]
Zeile 245 aus /usr/include/unistd.h von glibc-devel aus 10.3 (keine Updates) enthält bei mir:
#if defined __USE_BSD || defined __USE_XOPEN # ifndef __socklen_t_defined typedef __socklen_t socklen_t; # define __socklen_t_defined # endif #endif
Bei mir steht dasselbe - siehe unten.
Also poste doch bitte mal (mit ein wenig Kontext), was bei Dir and den Stellen in /usr/include/unistd.h und /usr/lib64/gcc/x86_64-suse-linux/4.2.1/include/stddef.h steht.
Ich zitiere noch einmal der Nachvollziehbarkeit halber die
entsprechenden Passagen aus der config.log und dann die
Passagen der dort angesprochen Dateien:
=== config.log ===
configure:36130: gcc -o
conftest -g -O2 -D__LINUX__ -I. -D_REENTRANT
conftest.c -L/usr/lib64 -lz >&5
In file included from /usr/include/zconf.h:289,
from /usr/include/zlib.h:34,
from conftest.c:119:
/usr/include/unistd.h:245: error: conflicting types
for 'size_t'
/usr/lib64/gcc/x86_64-suse-linux/4.2.1/include/stddef.h:214:
error: previous declaration of 'size_t' was here
=== unistd.h = Zeilen 195 - 248 ===
=== man beachte Zeile 198 ===
#define __need_size_t
#define __need_NULL
#include
On Mon, 22 Oct 2007 21:29:15 +0200, Guido Pinkernell wrote:
Danke für die Rückmeldung. Um es vorweg zu nehmen: Auch unistd.h liest die (widersprechende) stddef.h aus. Details
Ja, schliesslich ist stddef.h die von ISO C99 Standard festgelgte Datei für diese Dinge. Der XOPEN Standard legt noch ein paar weitere Dinge fest, die dort definiert werden sollen, daher der Test. So hilft das Ganze aber doch nicht weiter. Ich bin gerade dabei, aus den Bibliotheken RPMs zu stricken. Da wird mir dann sicherlich auch klarer, wo der Fehler liegt. Das Endergegnis wird man dann aus dem Buildservice (repository home:psmt) herunterladen können. Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
* Philipp Thomas (philipp.thomas@t-link.de) [20071023 00:18]:
So hilft das Ganze aber doch nicht weiter. Ich bin gerade dabei, aus den Bibliotheken RPMs zu stricken. Da wird mir dann sicherlich auch klarer, wo der Fehler liegt.
Der Fehler muss bei Dir liegen, hier baut alles wie es soll. Da sind zwar ein paar Bugs in dem Ganzen, aber Dein Fehler tritt nicht auf. Irgendwo scheinst Du Dir eine Datei einzuhandeln, die die in dieser Version auf einer sauberen 10.3 nicht existiert.
Das Endergegnis wird man dann aus dem Buildservice (repository home:psmt) herunterladen können.
Und da swolltest Du jetzt die Bibliotheken und das Programm herbekommen können. Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Am Dienstag, 23. Oktober 2007 19:17:45 schrieb Philipp Thomas:
* Philipp Thomas (philipp.thomas@t-link.de) [20071023 00:18]:
So hilft das Ganze aber doch nicht weiter. Ich bin gerade dabei, aus den Bibliotheken RPMs zu stricken. Da wird mir dann sicherlich auch klarer, wo der Fehler liegt.
Der Fehler muss bei Dir liegen, hier baut alles wie es soll. Da sind zwar ein paar Bugs in dem Ganzen, aber Dein Fehler tritt nicht auf. Irgendwo scheinst Du Dir eine Datei einzuhandeln, die die in dieser Version auf einer sauberen 10.3 nicht existiert.
Mein Fehler, Philipp, tut mir leid: Es geht um die tarballs tilibs2.tar.gz und tilp2.tar.gz auf http://www.ticalc.org/pub/unix/ Dabei kompilieren die Pakete libticonv, libticalcs, libticables und libtifiles aus tilibs2 ohne Probleme. Das geschilderte Problem taucht auf, wenn man das Paket gfm aus tilibs2 kompiliert bzw. tilp2 aus dem zweitgenannten tarball.
Das Endergegnis wird man dann aus dem Buildservice (repository home:psmt) herunterladen können.
Und da swolltest Du jetzt die Bibliotheken und das Programm herbekommen können.
Ich finde dort im Augenblick nur die libticables3... (die Nummerierung der Pakete ist reichlich inkonsequent - nicht irritieren lassen: libticables2 aus dem oben genannten tarball tilibs2.tar.gz ist neuer als das libticables3 aus tilibs.tar.gz. Danke für deinen Einsatz! Guido --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
On Tue, 23 Oct 2007 21:36:38 +0200, Guido Pinkernell wrote:
Mein Fehler, Philipp, tut mir leid: Es geht um die tarballs tilibs2.tar.gz und tilp2.tar.gz auf http://www.ticalc.org/pub/unix/
OK, ich schau mir das nähster Tage mal an.
Ich finde dort im Augenblick nur die libticables3...
Muss mal schauen, was da schief geht ...
Die Nummerierung der Pakete ist reichlich inkonsequent
Naja, den Namen habe ich vergeben, er entspricht der neuen SUSE/Novell Namenskonvention, also Bibliotheksname plus Bibliotheksversion.
Danke für deinen Einsatz!
Keine Ursache. Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
OK, ich schau mir das nähster Tage mal an.
Habe ich, und habe auch ohne grosse Probleme alles gebaut. Ich habe vergessen, libticalcs2 auf den Buildservice hochzuladen (Name des Pakets ist libticalcs2-6, entsprechend der neuen Namensregeln für Bibliothekspakete), was ich heute nachholen werde. Dann sollte nach einer gewissen Zeit alles zur Verfügung stehen.
Muss mal schauen, was da schief geht ...
Nichts ging wirklich schief, allerdings rufe ich bei allen Paketen 'autoreconf -fi' auf, erzwinge also das Neubauen von configure und Makefile.in. Für tilp2 ignoriere ich die in acinclude.m4 vorhandenen KDE Autoconf-Funktionen (durch löschen der Datei). Alles in allem war das Ganze vergleichsweise schmerzlos und ohne die von Dir beschriebenen Probleme. Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Am Samstag, 27. Oktober 2007 08:04:14 schrieb Philipp Thomas:
OK, ich schau mir das nähster Tage mal an.
Habe ich, und habe auch ohne grosse Probleme alles gebaut.
Danke!
Muss mal schauen, was da schief geht ...
Nichts ging wirklich schief, allerdings rufe ich bei allen Paketen 'autoreconf -fi' auf, erzwinge also das Neubauen von configure und Makefile.in. Für tilp2 ignoriere ich die in acinclude.m4 vorhandenen KDE Autoconf-Funktionen (durch löschen der Datei). Alles in allem war das Ganze vergleichsweise schmerzlos und ohne die von Dir beschriebenen Probleme.
Ich habe es selbst mal mit der von Dir beschriebenen Methode versucht: autoreconf -fi. Es gab diverse Fehler, die zum Abbruch führten, denen ich bei Gelegenheit mal auf den Grund gehen will. Jetzt aber nicht. Jetzt muss erstmal das Programm laufen. Ich danke dir für die rpms (libticalc ist noch nicht da, was du ja noch hochladen willst. Ebenso finde ich tilp2 noch nicht. Ich warte gerne). Guido --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Am Samstag, 27. Oktober 2007 20:15:14 schrieb Guido Pinkernell:
Am Samstag, 27. Oktober 2007 08:04:14 schrieb Philipp
Thomas:
OK, ich schau mir das nähster Tage mal an.
Habe ich, und habe auch ohne grosse Probleme alles gebaut.
Jetzt sind alle rpms aus dem tilibs2-Paket in Deinem Build-Service repository zu finden und auch tilp2. Danke nochmals. Guido --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
* Guido Pinkernell (guido.pinkernell@gmx.de) [20071031 12:05]:
Danke nochmals.
Funktionierts denn auch? Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Am Donnerstag, 8. November 2007 19:01:12 schrieb Philipp Thomas:
* Guido Pinkernell (guido.pinkernell@gmx.de) [20071031 12:05]:
Danke nochmals.
Funktionierts denn auch?
Ja. Ich habe allerdings Deine Tilibs (libticalc etc) durch selbst kompilierte ersetzt, und zwar aus verschiedenen Gründen. Ein Grund war, dass das tilp2 rpm von Dir eine fehlerhafte GUI hatte: Einige Icons fehlten. Das lag aber nicht an den Tilibs, wie ich ursprünglich annahm, sondern daran, dass offenbar diese Icons in der 1.08 Distribution von tilp nicht mehr enthalten sind, vermutlich infolge eines Versehens auf Seiten der Entwickler. Ich habe deshalb die betreffenden Icons aus einer alten Distribution genommen und als *.png an die passende Stelle (../pixmaps) kopiert. Ansonsten alles bestens. Danke nochmals. Guido --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
participants (3)
-
Guido Pinkernell
-
Philipp Thomas
-
Philipp Thomas