|  | 
 
| 系统描述: gentoo 2004.3 stage1安装 gcc-3.4.3.20050110 nptlonly
 
 问题简单描述:
 scim跟firefox有冲突,后安装gcc3.3.4,编译scim出错。
 
 详细信息:
 我安装了scim、scim-chinese,运行firefox1.0(用的是编译好的二进制包安装的)提示如下:
 [code:1]SCIM: im_module_init
 *** glibc detected *** free(): invalid pointer: 0x08b082d8 ***[/code:1]
 跟着就没反应了。
 scim在其他程序中都很正常,例如gnome-terminal、gedit。
 
 不知道是否是编译器的问题??
 于是我安装gcc-3.3.4-r1
 装完后,运行:
 [code:1]gcc-config i686-pc-linux-gnu-3.3.4
 source /etc/profile
 emerge scim[/code:1]
 结果是:
 [code:1]Calculating dependencies ...done!
 >>> emerge (1 of 1) app-i18n/scim-1.0.1-r1 to /
 >>> md5 src_uri ;-) scim-1.0.1.tar.gz
 >>> Unpacking source...
 >>> Unpacking scim-1.0.1.tar.gz to /var/tmp/portage/scim-1.0.1-r1/work
 * Applying scim-0.6.1-gtk2immodule.patch ...                             [ ok ]>>> Source unpacked.
 * Patching ${S}/ltmain.sh ...
 *   Applying portage-1.4.1.patch ...
 *   Applying max_cmd_len-1.5.0.patch ...
 *   Applying sed-1.4.3.patch ...
 *   Applying fix-relink-1.4.0.patch ...
 * Applying uClibc/libtool patches ...
 QA Notice: USE Flag 'doc' not in IUSE for app-i18n/scim-1.0.1-r1
 ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-gtk-doc
 configure: WARNING: If you wanted to set the --build type, don't use --host.
 If a cross compiler is detected then cross compile mode will be used.
 checking for a BSD-compatible install... /bin/install -c
 checking whether build environment is sane... yes
 checking for gawk... gawk
 checking whether make sets $(MAKE)... yes
 checking for i686-pc-linux-gnu-strip... i686-pc-linux-gnu-strip
 checking for msgfmt... /usr/bin/msgfmt
 checking for gmsgfmt... /usr/bin/gmsgfmt
 checking for xgettext... /usr/bin/xgettext
 checking for msgmerge... /usr/bin/msgmerge
 checking for style of include used by make... GNU
 checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc
 checking for C compiler default output file name... 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 i686-pc-linux-gnu-gcc accepts -g... yes
 checking for i686-pc-linux-gnu-gcc option to accept ANSI C... none needed
 checking dependency style of i686-pc-linux-gnu-gcc... gcc3
 checking build system type... i686-pc-linux
 checking host system type... i686-pc-linux-gnu
 checking for i686-pc-linux-gnu-ranlib... i686-pc-linux-gnu-ranlib
 checking for library containing strerror... none required
 checking how to run the C preprocessor... i686-pc-linux-gnu-gcc -E
 checking for egrep... grep -E
 checking for ANSI C header files... yes
 checking for an ANSI C-conforming const... yes
 checking for inline... inline
 checking for sys/types.h... yes
 checking for sys/stat.h... yes
 checking for stdlib.h... yes
 checking for string.h... yes
 checking for memory.h... yes
 checking for strings.h... yes
 checking for inttypes.h... yes
 checking for stdint.h... yes
 checking for unistd.h... yes
 checking for off_t... yes
 checking for size_t... yes
 checking for working alloca.h... yes
 checking for alloca... yes
 checking for stdlib.h... (cached) yes
 checking for unistd.h... (cached) yes
 checking for getpagesize... yes
 checking for working mmap... yes
 checking whether we are using the GNU C Library 2.1 or newer... yes
 checking whether integer division by zero raises SIGFPE... yes
 checking for inttypes.h... yes
 checking for stdint.h... yes
 checking for unsigned long long... yes
 checking for inttypes.h... yes
 checking whether the inttypes.h PRIxNN macros are broken... no
 checking for ld used by GCC... /usr/i686-pc-linux-gnu/bin/ld
 checking if the linker (/usr/i686-pc-linux-gnu/bin/ld) is GNU ld... yes
 checking for shared library run path origin... done
 checking argz.h usability... yes
 checking argz.h presence... yes
 checking for argz.h... yes
 checking limits.h usability... yes
 checking limits.h presence... yes
 checking for limits.h... yes
 checking locale.h usability... yes
 checking locale.h presence... yes
 checking for locale.h... yes
 checking nl_types.h usability... yes
 checking nl_types.h presence... yes
 checking for nl_types.h... yes
 checking malloc.h usability... yes
 checking malloc.h presence... yes
 checking for malloc.h... yes
 checking stddef.h usability... yes
 checking stddef.h presence... yes
 checking for stddef.h... yes
 checking for stdlib.h... (cached) yes
 checking for string.h... (cached) yes
 checking for unistd.h... (cached) yes
 checking sys/param.h usability... yes
 checking sys/param.h presence... yes
 checking for sys/param.h... yes
 checking for feof_unlocked... yes
 checking for fgets_unlocked... yes
 checking for getc_unlocked... yes
 checking for getcwd... yes
 checking for getegid... yes
 checking for geteuid... yes
 checking for getgid... yes
 checking for getuid... yes
 checking for mempcpy... yes
 checking for munmap... yes
 checking for putenv... yes
 checking for setenv... yes
 checking for setlocale... yes
 checking for stpcpy... yes
 checking for strcasecmp... yes
 checking for strdup... yes
 checking for strtoul... yes
 checking for tsearch... yes
 checking for __argz_count... yes
 checking for __argz_stringify... yes
 checking for __argz_next... yes
 checking for iconv... yes
 checking for iconv declaration...
 extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
 checking for nl_langinfo and CODESET... yes
 checking for LC_MESSAGES... yes
 checking for bison... bison
 checking version of bison... 2.0, ok
 checking whether NLS is requested... yes
 checking whether included gettext is requested... no
 checking for GNU gettext in libc... yes
 checking for a sed that does not truncate output... /bin/sed
 checking for ld used by i686-pc-linux-gnu-gcc... /usr/i686-pc-linux-gnu/bin/ld
 checking if the linker (/usr/i686-pc-linux-gnu/bin/ld) is GNU ld... yes
 checking for /usr/i686-pc-linux-gnu/bin/ld option to reload object files... -r
 checking for BSD-compatible nm... /usr/bin/i686-pc-linux-gnu-nm -B
 checking whether ln -s works... yes
 checking how to recognise dependent libraries... pass_all
 checking dlfcn.h usability... yes
 checking dlfcn.h presence... yes
 checking for dlfcn.h... yes
 checking for i686-pc-linux-gnu-g++... i686-pc-linux-gnu-g++
 checking whether we are using the GNU C++ compiler... no
 checking whether i686-pc-linux-gnu-g++ accepts -g... yes
 checking dependency style of i686-pc-linux-gnu-g++... gcc3
 checking how to run the C++ preprocessor... i686-pc-linux-gnu-g++ -E
 checking for i686-pc-linux-gnu-g77... i686-pc-linux-gnu-g77
 checking whether we are using the GNU Fortran 77 compiler... yes
 checking whether i686-pc-linux-gnu-g77 accepts -g... yes
 checking the maximum length of command line arguments... 32768
 checking command to parse /usr/bin/i686-pc-linux-gnu-nm -B output from i686-pc-linux-gnu-gcc object... ok
 checking for objdir... .libs
 checking for i686-pc-linux-gnu-ar... i686-pc-linux-gnu-ar
 checking for i686-pc-linux-gnu-ranlib... (cached) i686-pc-linux-gnu-ranlib
 checking for i686-pc-linux-gnu-strip... (cached) i686-pc-linux-gnu-strip
 checking if i686-pc-linux-gnu-gcc static flag  works... yes
 checking if i686-pc-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no
 checking for i686-pc-linux-gnu-gcc option to produce PIC... -fPIC
 checking if i686-pc-linux-gnu-gcc PIC flag -fPIC works... yes
 checking if i686-pc-linux-gnu-gcc supports -c -o file.o... yes
 checking whether the i686-pc-linux-gnu-gcc linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
 checking whether -lc should be explicitly linked in... no
 checking dynamic linker characteristics... GNU/Linux ld.so
 checking how to hardcode library paths into programs... immediate
 checking whether stripping libraries is possible... yes
 checking for shl_load... no
 checking for shl_load in -ldld... no
 checking for dlopen... no
 checking for dlopen in -ldl... yes
 checking whether a program can dlopen itself... yes
 checking whether a statically linked program can dlopen itself... yes
 checking if libtool supports shared libraries... yes
 checking whether to build shared libraries... yes
 checking whether to build static libraries... yes
 configure: creating libtool
 appending configuration tag "CXX" to libtool
 checking whether the i686-pc-linux-gnu-g++ linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
 libtool.m4: error: problem compiling CXX test program
 checking for i686-pc-linux-gnu-g++ option to produce PIC...
 checking if i686-pc-linux-gnu-g++ supports -c -o file.o... no
 checking whether the i686-pc-linux-gnu-g++ linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
 checking dynamic linker characteristics... GNU/Linux ld.so
 checking how to hardcode library paths into programs... immediate
 checking whether stripping libraries is possible... yes
 checking for shl_load... (cached) no
 checking for shl_load in -ldld... (cached) no
 checking for dlopen... (cached) no
 checking for dlopen in -ldl... (cached) yes
 checking whether a program can dlopen itself... (cached) yes
 checking whether a statically linked program can dlopen itself... (cached) yes
 appending configuration tag "F77" to libtool
 checking if libtool supports shared libraries... yes
 checking whether to build shared libraries... yes
 checking whether to build static libraries... yes
 checking for i686-pc-linux-gnu-g77 option to produce PIC... -fPIC
 checking if i686-pc-linux-gnu-g77 PIC flag -fPIC works... yes
 checking if i686-pc-linux-gnu-g77 supports -c -o file.o... yes
 checking whether the i686-pc-linux-gnu-g77 linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
 checking dynamic linker characteristics... GNU/Linux ld.so
 checking how to hardcode library paths into programs... immediate
 checking whether stripping libraries is possible... yes
 checking for dirent.h that defines DIR... yes
 checking for library containing opendir... none required
 checking which extension is used for loadable modules... .so
 checking which variable specifies run-time library path... LD_LIBRARY_PATH
 checking for the default library search path... /lib /usr/lib # ld.so.conf autogenerated by env-update; make all changes to
 # contents of /etc/env.d directory
 /usr/local/lib
 /usr/i686-pc-linux-gnu/lib
 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4
 /usr/lib/gcc/i686-pc-linux-gnu/3.4.3
 /usr/lib/opengl/xorg-x11/lib
 /usr/qt/3/lib
 /usr/kde/3.3/lib
 /usr/lib/nspr
 /usr/lib/nss
 /usr/lib/libstdc++-v3/
 checking for objdir... .libs
 checking whether libtool supports -dlopen/-dlpreopen... yes
 checking for shl_load... (cached) no
 checking for shl_load in -ldld... (cached) no
 checking for dlopen in -ldl... (cached) yes
 checking for dlerror... yes
 checking for _ prefix in compiled symbols... no
 checking whether deplibs are loaded by dlopen... yes
 checking for argz.h... (cached) yes
 checking for error_t... yes
 checking for argz_append... yes
 checking for argz_create_sep... yes
 checking for argz_insert... yes
 checking for argz_next... yes
 checking for argz_stringify... yes
 checking assert.h usability... yes
 checking assert.h presence... yes
 checking for assert.h... yes
 checking ctype.h usability... yes
 checking ctype.h presence... yes
 checking for ctype.h... yes
 checking errno.h usability... yes
 checking errno.h presence... yes
 checking for errno.h... yes
 checking for malloc.h... (cached) yes
 checking for memory.h... (cached) yes
 checking for stdlib.h... (cached) yes
 checking stdio.h usability... yes
 checking stdio.h presence... yes
 checking for stdio.h... yes
 checking for unistd.h... (cached) yes
 checking dl.h usability... no
 checking dl.h presence... no
 checking for dl.h... no
 checking sys/dl.h usability... no
 checking sys/dl.h presence... no
 checking for sys/dl.h... no
 checking dld.h usability... no
 checking dld.h presence... no
 checking for dld.h... no
 checking mach-o/dyld.h usability... no
 checking mach-o/dyld.h presence... no
 checking for mach-o/dyld.h... no
 checking for string.h... (cached) yes
 checking for strchr... yes
 checking for strrchr... yes
 checking for memcpy... yes
 checking for memmove... yes
 checking for strcmp... yes
 checking for closedir... yes
 checking for opendir... yes
 checking for readdir... yes
 checking for i686-pc-linux-gnu-g++... (cached) i686-pc-linux-gnu-g++
 checking whether we are using the GNU C++ compiler... (cached) no
 checking whether i686-pc-linux-gnu-g++ accepts -g... (cached) yes
 checking dependency style of i686-pc-linux-gnu-g++... (cached) gcc3
 checking for i686-pc-linux-gnu-gcc... (cached) i686-pc-linux-gnu-gcc
 checking whether we are using the GNU C compiler... (cached) yes
 checking whether i686-pc-linux-gnu-gcc accepts -g... (cached) yes
 checking for i686-pc-linux-gnu-gcc option to accept ANSI C... (cached) none needed
 checking dependency style of i686-pc-linux-gnu-gcc... (cached) gcc3
 checking for doxygen... no
 checking for dot... NO
 checking for dot... no
 checking for perl... /usr/bin/perl
 checking for gconftool-2... /usr/bin/gconftool-2
 checking for xsltproc... /usr/bin/xsltproc
 checking for /usr/share/sgml/docbook/xsl-stylesheets/html/tldp-html.xsl... no
 checking for /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl... no
 checking for /usr/share/xml/docbook/stylesheet/nwalsh/current/html/docbook.xsl... no
 checking for intltool >= 0.22... 0.26 found
 checking for perl... /usr/bin/perl
 checking for ANSI C header files... (cached) yes
 checking whether time.h and sys/time.h may both be included... no
 checking langinfo.h usability... no
 checking langinfo.h presence... yes
 configure: WARNING: langinfo.h: present but cannot be compiled
 configure: WARNING: langinfo.h:     check for missing prerequisite headers?
 configure: WARNING: langinfo.h: see the Autoconf documentation
 configure: WARNING: langinfo.h:     section "Present But Cannot Be Compiled"
 configure: WARNING: langinfo.h: proceeding with the preprocessor's result
 configure: WARNING: langinfo.h: in the future, the compiler will take precedenceconfigure: WARNING:     ## ------------------------------------ ##
 configure: WARNING:     ## Report this to [email protected] ##
 configure: WARNING:     ## ------------------------------------ ##
 checking for langinfo.h... yes
 checking libintl.h usability... no
 checking libintl.h presence... yes
 configure: WARNING: libintl.h: present but cannot be compiled
 configure: WARNING: libintl.h:     check for missing prerequisite headers?
 configure: WARNING: libintl.h: see the Autoconf documentation
 configure: WARNING: libintl.h:     section "Present But Cannot Be Compiled"
 configure: WARNING: libintl.h: proceeding with the preprocessor's result
 configure: WARNING: libintl.h: in the future, the compiler will take precedence
 configure: WARNING:     ## ------------------------------------ ##
 configure: WARNING:     ## Report this to [email protected] ##
 configure: WARNING:     ## ------------------------------------ ##
 checking for libintl.h... yes
 checking for string.h... (cached) yes
 checking dirent.h usability... no
 checking dirent.h presence... yes
 configure: WARNING: dirent.h: present but cannot be compiled
 configure: WARNING: dirent.h:     check for missing prerequisite headers?
 configure: WARNING: dirent.h: see the Autoconf documentation
 configure: WARNING: dirent.h:     section "Present But Cannot Be Compiled"
 configure: WARNING: dirent.h: proceeding with the preprocessor's result
 configure: WARNING: dirent.h: in the future, the compiler will take precedence
 configure: WARNING:     ## ------------------------------------ ##
 configure: WARNING:     ## Report this to [email protected] ##
 configure: WARNING:     ## ------------------------------------ ##
 checking for dirent.h... yes
 checking for an ANSI C-conforming const... (cached) yes
 checking for inline... (cached) inline
 checking for size_t... (cached) yes
 checking for char... no
 checking size of char... 0
 checking for unsigned short int... no
 checking size of unsigned short int... 0
 checking for unsigned int... no
 checking size of unsigned int... 0
 checking for unsigned long int... no
 checking size of unsigned long int... 0
 checking for unsigned long long int... no
 checking size of unsigned long long int... 0
 checking for stdint.h... (cached) yes
 configure: error:
 *** SCIM requires
 ***      sizeof (unsigned short int)  == 2
 ***      sizeof (char)                == 1
 *** You might want to consider using the GNU C compiler.
 
 
 !!! Please attach the config.log to your bug report:
 !!! /var/tmp/portage/scim-1.0.1-r1/work/scim-1.0.1/config.log
 
 !!! ERROR: app-i18n/scim-1.0.1-r1 failed.
 !!! Function econf, Line 483, Exitcode 0
 !!! econf failed
 !!! If you need support, post the topmost build error, NOT this status message.[/code:1]
 我对gcc实在不了解,不知道能否安装两个gcc。
 我对比了两个gcc,发现
 [code:1]checking langinfo.h usability... no
 checking langinfo.h presence... yes
 checking libintl.h usability... no
 checking libintl.h presence... yes
 checking dirent.h usability... no
 checking dirent.h presence... yes[/code:1]
 上面那些在gcc 3.4.3中是全部都是 yes的。不过这些都是导致warning的,导致ERROR的是:
 [code:1]checking size of char... 0
 checking for unsigned short int... no
 checking size of unsigned short int... 0
 checking for unsigned int... no
 checking size of unsigned int... 0
 checking for unsigned long int... no
 checking size of unsigned long int... 0
 checking for unsigned long long int... no
 checking size of unsigned long long int... 0[/code:1]
 这是怎么回事???
 | 
 |