reiser4progs 运行 ./configure 时 遇到 libaal version 1.0.5 = No 后, 停止了运行。
此时我从网上下载了很多libaal 源码测试, 均通不过。 此时用 ldconfig 查看, 好像libaal 也对。
哪问题到底出在哪里呢? 我甚至阅读了些configue 的一些代码, 一头雾水, 不过也猜到可能不是libaal 本身问题,而是其它环境问题。
后来实验及参考资料发现,安装其它三个文件, 具体哪个未进一步确认。 下面贴上具体操作过程及结果。
由此说明, 有时候,错误报的不一定很准确。 造成误报的原因是因为多种原因都可能引起这个结果。
很心酸啊,花了一整天时间,有了这点收获。来之不易。
[root@hjj /usr/src/linux/fs/reiser4/reiser4progs-1.0.5]# ./configure --prefix=/opt/reiser4progs --with-libaal=/opt/libaal checking build system type... x86_64-unknown-linux checking host system type... x86_64-unknown-linux checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... 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 gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking dependency style of gcc... gcc3 checking for uuid_generate in -luuid... no configure: WARNING: libuuid could not be found which is required for the --with-uuid checking for readline in -lreadline... no configure: WARNING: GNU Readline could not be found which is required for the --with-readline checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ANSI C... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for ranlib... ranlib checking for gawk... (cached) gawk checking for a sed that does not truncate output... /bin/sed checking for egrep... grep -E 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 how to recognise dependent libraries... pass_all checking for ANSI C header files... yes 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 dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes 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 how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for epcf90... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for gfortran... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... (cached) ranlib checking for strip... strip checking if gcc static flag works... yes checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) 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 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 for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) 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 -m elf_x86_64) 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 appending configuration tag "F77" to libtool checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking for ANSI C header files... (cached) yes checking printf.h usability... yes checking printf.h presence... yes checking for printf.h... yes checking errno.h usability... yes checking errno.h presence... yes checking for errno.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking mntent.h usability... yes checking mntent.h presence... yes checking for mntent.h... yes checking for stdint.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/mount.h usability... yes checking sys/mount.h presence... yes checking for sys/mount.h... yes checking sys/vfs.h usability... yes checking sys/vfs.h presence... yes checking for sys/vfs.h... yes checking for unistd.h... (cached) yes checking whether byte ordering is bigendian... no checking for an ANSI C-conforming const... yes checking for inline... inline checking for size_t... yes checking for struct stat.st_rdev... yes checking whether gcc needs -traditional... no checking whether lstat dereferences a symlink specified with a trailing slash... yes checking whether stat accepts an empty string... no checking for register_printf_function... yes checking for statfs... yes checking for getmntent... yes checking for hasmntopt... yes checking for memset... yes checking for strerror... yes checking for strtol... yes checking for time... yes checking for uname... yes checking for sysconf... yes checking whether -falign-loops works... yes checking whether -Wuninitialized works... yes checking whether -Wno-unused-parameter works... yes checking whether -Wredundant-decls works... yes checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking for _LARGE_FILES value needed for large files... no configure: WARNING: Can't detect right _FILE_OFFSET_BITS. Will be forced to 64bit. checking for off_t... yes checking size of off_t... 8 checking for aal_device_open in -laal... yes checking aal/libaal.h usability... yes checking aal/libaal.h presence... yes checking for aal/libaal.h... yes checking for libaal version = 1.0.5... no 至此,程序出现错误后,停止, 但是我确认 libaal 1.0.5 肯定是装上了。 已经下过很到代码及各种方式实验了。 后来发现,是缺少其他环境造成误报 libaal 库 哎! 对configure 定机制还是不太熟 [root@hjj /usr/src/linux/fs/reiser4/reiser4progs-1.0.5]# yum install readline-devel [root@hjj /usr/src/linux/fs/reiser4/reiser4progs-1.0.5]# yum install libuuid-devel //[root@hjj /usr/src/linux/fs/reiser4/reiser4progs-1.0.5]# yum search glibc [root@hjj /usr/src/linux/fs/reiser4/reiser4progs-1.0.5]# yum install glibc-static.x86_64 [root@hjj /usr/src/linux/fs/reiser4/reiser4progs-1.0.5]# ./configure --prefix=/opt/reiser4prog --with-libaal=/opt/libaal/ checking build system type... x86_64-unknown-linux checking host system type... x86_64-unknown-linux checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... 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 gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking dependency style of gcc... gcc3 checking for uuid_generate in -luuid... yes checking for readline in -lreadline... yes checking for library containing tgetent... -lncurses checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ANSI C... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for ranlib... ranlib checking for gawk... (cached) gawk checking for a sed that does not truncate output... /bin/sed checking for egrep... grep -E 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 how to recognise dependent libraries... pass_all checking for ANSI C header files... yes 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 dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes 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 how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for epcf90... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for gfortran... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... (cached) ranlib checking for strip... strip checking if gcc static flag works... yes checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) 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 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 for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) 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 -m elf_x86_64) 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 appending configuration tag "F77" to libtool checking uuid/uuid.h usability... yes checking uuid/uuid.h presence... yes checking for uuid/uuid.h... yes checking readline/readline.h usability... yes checking readline/readline.h presence... yes checking for readline/readline.h... yes checking readline/history.h usability... yes checking readline/history.h presence... yes checking for readline/history.h... yes checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking for ANSI C header files... (cached) yes checking printf.h usability... yes checking printf.h presence... yes checking for printf.h... yes checking errno.h usability... yes checking errno.h presence... yes checking for errno.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking mntent.h usability... yes checking mntent.h presence... yes checking for mntent.h... yes checking for stdint.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/mount.h usability... yes checking sys/mount.h presence... yes checking for sys/mount.h... yes checking sys/vfs.h usability... yes checking sys/vfs.h presence... yes checking for sys/vfs.h... yes checking for unistd.h... (cached) yes checking whether byte ordering is bigendian... no checking for rl_completion_matches... yes checking for an ANSI C-conforming const... yes checking for inline... inline checking for size_t... yes checking for struct stat.st_rdev... yes checking whether gcc needs -traditional... no checking whether lstat dereferences a symlink specified with a trailing slash... yes checking whether stat accepts an empty string... no checking for register_printf_function... yes checking for statfs... yes checking for getmntent... yes checking for hasmntopt... yes checking for memset... yes checking for strerror... yes checking for strtol... yes checking for time... yes checking for uname... yes checking for sysconf... yes checking whether -falign-loops works... yes checking whether -Wuninitialized works... yes checking whether -Wno-unused-parameter works... yes checking whether -Wredundant-decls works... yes checking whether -Wredundant-decls works with readline.h... yes checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking for _LARGE_FILES value needed for large files... no configure: WARNING: Can't detect right _FILE_OFFSET_BITS. Will be forced to 64bit. checking for off_t... yes checking size of off_t... 8 checking for aal_device_open in -laal... yes checking aal/libaal.h usability... yes checking aal/libaal.h presence... yes checking for aal/libaal.h... yes checking for libaal version = 1.0.5... yes checking for aal_device_open in -laal-minimal... yes checking for aal/libaal.h... (cached) yes checking for libaal-minimal version = 1.0.5... yes configure: creating ./config.status config.status: creating Makefile config.status: creating include/Makefile config.status: creating include/aux/Makefile config.status: creating include/misc/Makefile config.status: creating include/reiser4/Makefile config.status: creating include/repair/Makefile config.status: creating libmisc/Makefile config.status: creating libaux/Makefile config.status: creating libreiser4/Makefile config.status: creating librepair/Makefile config.status: creating plugin/Makefile config.status: creating plugin/format/Makefile config.status: creating plugin/format/format40/Makefile config.status: creating plugin/alloc/Makefile config.status: creating plugin/alloc/alloc40/Makefile config.status: creating plugin/journal/Makefile config.status: creating plugin/journal/journal40/Makefile config.status: creating plugin/oid/Makefile config.status: creating plugin/oid/oid40/Makefile config.status: creating plugin/node/Makefile config.status: creating plugin/node/node40/Makefile config.status: creating plugin/key/Makefile config.status: creating plugin/key/key_common/Makefile config.status: creating plugin/key/key_short/Makefile config.status: creating plugin/key/key_large/Makefile config.status: creating plugin/item/Makefile config.status: creating plugin/item/body40/Makefile config.status: creating plugin/item/nodeptr40/Makefile config.status: creating plugin/item/stat40/Makefile config.status: creating plugin/item/cde40/Makefile config.status: creating plugin/item/tail40/Makefile config.status: creating plugin/item/plain40/Makefile config.status: creating plugin/item/ctail40/Makefile config.status: creating plugin/item/extent40/Makefile config.status: creating plugin/item/bbox40/Makefile config.status: creating plugin/object/Makefile config.status: creating plugin/object/obj40/Makefile config.status: creating plugin/object/dir40/Makefile config.status: creating plugin/object/reg40/Makefile config.status: creating plugin/object/sym40/Makefile config.status: creating plugin/object/spl40/Makefile config.status: creating plugin/policy/Makefile config.status: creating plugin/policy/tails/Makefile config.status: creating plugin/policy/extents/Makefile config.status: creating plugin/policy/smart/Makefile config.status: creating plugin/hash/Makefile config.status: creating plugin/hash/r5_hash/Makefile config.status: creating plugin/hash/tea_hash/Makefile config.status: creating plugin/hash/deg_hash/Makefile config.status: creating plugin/hash/rupasov_hash/Makefile config.status: creating plugin/hash/fnv1_hash/Makefile config.status: creating plugin/fibre/Makefile config.status: creating plugin/fibre/lexic_fibre/Makefile config.status: creating plugin/fibre/dot_o_fibre/Makefile config.status: creating plugin/fibre/ext_1_fibre/Makefile config.status: creating plugin/fibre/ext_3_fibre/Makefile config.status: creating plugin/sdext/Makefile config.status: creating plugin/sdext/sdext_unix/Makefile config.status: creating plugin/sdext/sdext_lw/Makefile config.status: creating plugin/sdext/sdext_lt/Makefile config.status: creating plugin/sdext/sdext_symlink/Makefile config.status: creating plugin/sdext/sdext_flags/Makefile config.status: creating plugin/sdext/sdext_plug/Makefile config.status: creating progs/Makefile config.status: creating progs/mkfs/Makefile config.status: creating progs/fsck/Makefile config.status: creating progs/debugfs/Makefile config.status: creating progs/measurefs/Makefile config.status: creating demos/Makefile config.status: creating doc/Makefile config.status: creating reiser4progs.spec config.status: creating config.h config.status: executing depfiles commands Type 'make' to compile reiser4progs and 'make install' to install it. [root@hjj /usr/src/linux/fs/reiser4/reiser4progs-1.0.5]#