Version: 3.0.0a4 (using KDE KDE 3.1.2) Installed from: Debian testing/unstable Packages Compiler: GCC 2.95.4 autoconf 2.57, automake 1.7.5 OS: Linux Under Debian sid, Gideon's configure script can't seem to correctly execute sizeof(). The result is a configuration script that won't even execute. The output from the configuration script follows. For what it's worth, Gideon was working prior to the last Debian upgrade. In any case, I don't quite see how the system upgrade screwed it up, so I don't know what additional information to provide. My guess would be that it's something with the parameters to configure, given that other (non-Gideon-generated) packages compile. And yes, it was stupid, but I did write a C program to verify that GCC is correctly reporting sizeof() both size_t and unsigned long as 4 bytes. checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking for -p flag to install... yes checking whether build environment is sane... yes checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking dependency style of gcc... gcc checking how to run the C preprocessor... gcc -E checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking whether g++ supports -Wmissing-format-attribute... yes checking whether g++ supports -Wundef... yes checking whether g++ supports -Wno-long-long... yes checking whether g++ supports -Wnon-virtual-dtor... yes checking whether g++ supports -fno-exceptions... yes checking whether g++ supports -fno-check-new... yes checking whether g++ supports -fno-common... yes checking whether g++ supports -fexceptions... yes checking how to run the C++ preprocessor... g++ -E not using lib directory suffix checking for ld used by GCC... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking for a sed that does not truncate output... checking whether ln -s works... yes checking how to recognise dependant libraries... pass_all checking for egrep... grep -E checking for ANSI C header files... no checking for sys/types.h... no checking for sys/stat.h... no checking for stdlib.h... no checking for string.h... no checking for memory.h... no checking for strings.h... no checking for inttypes.h... no checking for stdint.h... no checking for unistd.h... no checking dlfcn.h usability... no checking dlfcn.h presence... yes configure: WARNING: dlfcn.h: present but cannot be compiled configure: WARNING: dlfcn.h: check for missing prerequisite headers? configure: WARNING: dlfcn.h: proceeding with the preprocessor's result configure: WARNING: ## ------------------------------------ ## configure: WARNING: ## Report this to bug-autoconf@gnu.org. ## configure: WARNING: ## ------------------------------------ ## checking for dlfcn.h... yes checking the maximum length of command line arguments... expr: syntax error checking command to parse /usr/bin/nm -B output from gcc object... failed checking for objdir... .libs checking for ranlib... ranlib checking for strip... strip checking if gcc static flag works... no checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... no checking if gcc supports -c -o file.o... no checking if we can lock with hard links... yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... yes checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking dynamic linker characteristics... GNU/Linux ld.so checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no configure: creating libtool appending configuration tag "CXX" to libtool checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... yes checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking dynamic linker characteristics... GNU/Linux ld.so appending configuration tag "GCJ" to libtool checking if gcj supports -fno-rtti -fno-exceptions... (cached) no checking for gcj option to produce PIC... -fPIC checking if gcj PIC flag -fPIC works... no checking if gcj supports -c -o file.o... no checking whether the gcj linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... yes checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking dynamic linker characteristics... GNU/Linux ld.so checking for msgfmt... /usr/bin/msgfmt checking for gmsgfmt... /usr/bin/msgfmt checking for xgettext... /usr/bin/xgettext checking for strlcat... no checking if strlcat needs custom prototype... yes - in libkdefakes checking for strlcpy... no checking if strlcpy needs custom prototype... yes - in libkdefakes checking for main in -lutil... no checking for main in -lcompat... no checking for crypt in -lcrypt... no checking for crypt in -lc... no configure: WARNING: you have no crypt in either libcrypt or libc. You should install libcrypt from another source or configure with PAM support checking for socklen_t... socklen_t checking for dnet_ntoa in -ldnet... no checking for dnet_ntoa in -ldnet_stub... no checking for inet_ntoa... no checking for inet_ntoa in -lnsl... no checking for connect... no checking for connect in -lsocket... no checking for remove... no checking for remove in -lposix... no checking for shmat... no checking for shmat in -lipc... no checking crt_externs.h usability... no checking crt_externs.h presence... no checking for crt_externs.h... no checking for _NSGetEnviron... no checking for sys/types.h... (cached) no checking for stdint.h... (cached) no checking for poll in -lpoll... no checking CoreAudio/CoreAudio.h usability... no checking CoreAudio/CoreAudio.h presence... no checking for CoreAudio/CoreAudio.h... no checking if res_init needs -lresolv... no checking if res_init is available... no checking for killpg in -lucb... no checking for int... no checking size of int... 0 checking for long... no checking size of long... 0 checking for char *... no checking size of char *... 0 checking for dlopen in -ldl... no checking for shl_unload in -ldld... no checking for size_t... no checking size of size_t... 0 checking for unsigned long... no checking size of unsigned long... 0 checking sizeof size_t == sizeof unsigned long... no configure: error: Apparently on your system our assumption sizeof size_t == sizeof unsigned long does not apply. Please mail kde-devel@kde.org with a description of your system!
Please check your config.log for the real error. It's quite likely a missing library. If you don't know what you're looking for, attach config.log to this bug report. If you do find it, please paste here the gcc error message. It will help us fixing this problem later and it seems to have spiked up recently.
Upon further investigation, if nobody else can reproduce this I'm going to assume the Debian guys hosed autoconf somehow. I just found a less severe but similar error on an old configure script that I know is good.
Created attachment 1854 [details] GCC 2.95 config.log Here's the config.log. Something interesting: Forcing the script to use gcc-3.3 results in successful execution of the script, though there is still some expression error when autoconf is checking the maximum length of command line arguments. I seem to have it fixed now. To fix it on a Debian system running the unstable distribution, simply force the compilation and configuration to use {gcc,g++}-3.3 instead of 2.95. Unfortunately, this means you have to manually add the links in /usr/bin since Debian doesn't do so for gcc-3.3. (This is most likely to save both the Linux kernel guys and the Debian GCC guys headaches. The Linux kernel had some problems with 3.3 a while back and likes 2.95 a whole lot better. This may have changed.)
I'm sorry, I really don't understand what has happened wrong for you. The config.log is missing the error message from the compiler. And the code seems fine for me...
Back around line 2568 of the config.log file, there's this, which says that if sizeof(unsigned long) isn't 0, say it is zero anyway. Where the heck this code comes from, though, is beyond me. When I go look at the config file generated when I use gcc-3.3, I can't find this snippet of code at all. (If you haven't guessed, I know about as much about how autoconf works as I do about the mating habits of the walrus.) int | main () | { | if ((unsigned long *) 0) | return 0; | if (sizeof (unsigned long)) | return 0; | ; | return 0; | } configure:20830: result: no configure:20833: checking size of unsigned long configure:21139: result: 0 configure:21147: checking sizeof size_t == sizeof unsigned long
I csnot reproduce it. Can I close it?
See this thread from kde-devel: http://lists.kde.org/?t=107599133600004&r=1&w=2 It appears there is a build system problem with some gcc versions. I doubt there is much we can do about it from KDevelop. How about closing this one?
This is now the 3rd request to close it, so i'll do :-) As to my knowledge, if sizeof size_t == sizeof unsigned long is not true, there is usually a big flaw in the setup of the box that reports this.