Bug 60103 - Gideon's generated configure script thinks sizeof(size_t) != sizeof(unsigned long)
Summary: Gideon's generated configure script thinks sizeof(size_t) != sizeof(unsigned ...
Status: RESOLVED WORKSFORME
Alias: None
Product: kdevelop
Classification: Applications
Component: general (show other bugs)
Version: 3.0.0a4
Platform: Debian testing Linux
: NOR normal
Target Milestone: ---
Assignee: KDevelop Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-06-20 02:11 UTC by Jason Burrell
Modified: 2004-06-04 02:46 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
GCC 2.95 config.log (88.49 KB, application/x-trash)
2003-06-20 18:00 UTC, Jason Burrell
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Burrell 2003-06-20 02:11:57 UTC
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!
Comment 1 Thiago Macieira 2003-06-20 02:25:21 UTC
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. 
Comment 2 Jason Burrell 2003-06-20 02:40:59 UTC
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. 
Comment 3 Jason Burrell 2003-06-20 18:00:00 UTC
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.)
Comment 4 Thiago Macieira 2003-06-21 00:55:14 UTC
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... 
Comment 5 Jason Burrell 2003-06-21 01:45:35 UTC
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 
 
Comment 6 Amilcar do Carmo Lucas 2003-12-02 21:45:02 UTC
I csnot reproduce it.
Can I close it?
Comment 7 Jens Dagerbo 2004-02-07 09:30:07 UTC
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?

Comment 8 Sascha Cunz 2004-06-04 02:46:16 UTC
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.