2015-12-11 2 views
0

при попытке компиляции рубина 2.2.3 на HPUX 11.31 из исходного кода, я получаю от этого команды макияжа:, имеющие проблемы компиляция рубина 2.2.3 на HPUX 11.31

In file included from ./include/ruby/defines.h:31, 
      from ./include/ruby/ruby.h:29, 
      from ./include/ruby.h:33, 
      from main.c:13: 
/usr/include/sys/stat.h: In function 'stat': 
/usr/include/sys/stat.h:126: error: argument 'a' doesn't match prototype 
/usr/include/sys/stat.h:85: error: prototype declaration 
In file included from ./include/ruby/defines.h:68, 
      from ./include/ruby/ruby.h:29, 
      from ./include/ruby.h:33, 
      from main.c:13: 
./include/ruby/missing.h: At top level: 
./include/ruby/missing.h:53: error: redefinition of 'struct timespec' 
*** Error exit code 1 

я использую GCC 4.2 0,3. когда я пытаюсь сконфигурировать здесь вывод:

config.guess already exists 
config.sub already exists 
checking build system type... ia64-hp-hpux11.31 
checking host system type... ia64-hp-hpux11.31 
checking target system type... ia64-hp-hpux11.31 
checking for gcc... gcc 
checking whether the C compiler works... yes 
checking for C compiler default output file name... a.out 
checking for suffix of executables... 
checking whether we are cross compiling... no 
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 ISO C89... none needed 
checking for g++... g++ 
checking whether we are using the GNU C++ compiler... yes 
checking whether g++ accepts -g... yes 
checking how to run the C preprocessor... gcc -E 
checking for grep that handles long lines and -e... /usr/bin/grep 
checking for egrep... /usr/bin/grep -E 
checking whether gcc needs -traditional... no 
checking for ld... ld 
checking whether the linker is GNU ld... no 
checking whether gcc -E accepts -o... yes 
checking for ranlib... ranlib 
checking for ar... ar 
checking for as... as 
checking for objdump... objdump 
checking for objcopy... objcopy 
checking for nm... nm 
checking whether ln -s works... yes 
checking whether make sets $(MAKE)... yes 
checking for a BSD-compatible install... /vci/bin/install -c 
checking for a thread-safe mkdir -p... -d 
use 'mkdir -p' as MKDIR_P 
checking for dtrace... no 
checking for dot... no 
checking for doxygen... no 
checking for pkg-config... pkg-config 
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 minix/config.h usability... no 
checking minix/config.h presence... no 
checking for minix/config.h... no 
checking whether it is safe to define __EXTENSIONS__... yes 
checking for cd using physical directory... cd -P 
checking whether CFLAGS is valid... yes 
checking whether LDFLAGS is valid... yes 
checking whether -Wno-unused-parameter is accepted as CFLAGS... yes 
checking whether -Wno-parentheses is accepted as CFLAGS... yes 
checking whether -Wno-long-long is accepted as CFLAGS... yes 
checking whether -Wno-missing-field-initializers is accepted as CFLAGS... yes 
checking whether -Wunused-variable is accepted as CFLAGS... yes 
checking whether -Wpointer-arith is accepted as CFLAGS... yes 
checking whether -Wwrite-strings is accepted as CFLAGS... yes 
checking whether -Wdeclaration-after-statement is accepted as CFLAGS... yes 
checking whether -Wshorten-64-to-32 is accepted as CFLAGS... no 
checking whether -Wimplicit-function-declaration is accepted as CFLAGS... yes 
checking whether -Wdivision-by-zero is accepted as CFLAGS... no 
checking whether -Wdeprecated-declarations is accepted as CFLAGS... yes 
checking whether -Wno-packed-bitfield-compat is accepted as CFLAGS... no 
checking whether -Wextra-tokens is accepted as CFLAGS... no 
checking whether -Wall -Wextra is accepted as CFLAGS... yes 
checking whether -Qunused-arguments is accepted as CFLAGS... no 
checking whether -D_FORTIFY_SOURCE=2 is accepted as CFLAGS... yes 
checking whether -fstack-protector is accepted as CFLAGS... no 
checking whether -std=iso9899:1999 is accepted as CFLAGS... yes 
checking whether -fno-strict-overflow is accepted as CFLAGS... yes 
checking whether -ggdb3 is accepted as CFLAGS... yes 
checking whether -fvisibility=hidden is accepted as CFLAGS... yes 
checking whether -fno-fast-math is accepted as CFLAGS... yes 
checking for crypt in -lcrypt... no 
checking for dlopen in -ldl... yes 
checking for shl_load in -ldld... yes 
checking for shutdown in -lsocket... no 
checking for dirent.h that defines DIR... no 
checking for sys/ndir.h that defines DIR... no 
checking for sys/dir.h that defines DIR... no 
checking for ndir.h that defines DIR... no 
checking for library containing opendir... none required 
checking for stdbool.h that conforms to C99... yes 
checking for _Bool... yes 
checking for sys/wait.h that is POSIX.1 compatible... yes 
checking limits.h usability... yes 
checking limits.h presence... yes 
checking for limits.h... yes 
checking sys/file.h usability... yes 
checking sys/file.h presence... yes 
checking for sys/file.h... yes 
checking sys/ioctl.h usability... yes 
checking sys/ioctl.h presence... yes 
checking for sys/ioctl.h... yes 
checking sys/syscall.h usability... yes 
checking sys/syscall.h presence... yes 
checking for sys/syscall.h... yes 
checking fcntl.h usability... yes 
checking fcntl.h presence... yes 
checking for fcntl.h... yes 
checking sys/fcntl.h usability... yes 
checking sys/fcntl.h presence... yes 
checking for sys/fcntl.h... yes 
checking sys/param.h usability... yes 
checking sys/param.h presence... yes 
checking for sys/param.h... yes 
checking sys/select.h usability... yes 
checking sys/select.h presence... yes 
checking for sys/select.h... yes 
checking sys/time.h usability... yes 
checking sys/time.h presence... yes 
checking for sys/time.h... yes 
checking sys/times.h usability... yes 
checking sys/times.h presence... yes 
checking for sys/times.h... yes 
checking syscall.h usability... yes 
checking syscall.h presence... yes 
checking for syscall.h... yes 
checking pwd.h usability... yes 
checking pwd.h presence... yes 
checking for pwd.h... yes 
checking grp.h usability... yes 
checking grp.h presence... yes 
checking for grp.h... yes 
checking a.out.h usability... yes 
checking a.out.h presence... yes 
checking for a.out.h... yes 
checking utime.h usability... yes 
checking utime.h presence... yes 
checking for utime.h... yes 
checking direct.h usability... no 
checking direct.h presence... no 
checking for direct.h... no 
checking sys/resource.h usability... yes 
checking sys/resource.h presence... yes 
checking for sys/resource.h... yes 
checking sys/mkdev.h usability... no 
checking sys/mkdev.h presence... no 
checking for sys/mkdev.h... no 
checking sys/utime.h usability... no 
checking sys/utime.h presence... no 
checking for sys/utime.h... no 
checking float.h usability... yes 
checking float.h presence... yes 
checking for float.h... yes 
checking ieeefp.h usability... no 
checking ieeefp.h presence... no 
checking for ieeefp.h... no 
checking ucontext.h usability... yes 
checking ucontext.h presence... yes 
checking for ucontext.h... yes 
checking intrinsics.h usability... no 
checking intrinsics.h presence... no 
checking for intrinsics.h... no 
checking langinfo.h usability... yes 
checking langinfo.h presence... yes 
checking for langinfo.h... yes 
checking locale.h usability... yes 
checking locale.h presence... yes 
checking for locale.h... yes 
checking sys/sendfile.h usability... no 
checking sys/sendfile.h presence... no 
checking for sys/sendfile.h... no 
checking time.h usability... yes 
checking time.h presence... yes 
checking for time.h... yes 
checking net/socket.h usability... no 
checking net/socket.h presence... no 
checking for net/socket.h... no 
checking sys/socket.h usability... yes 
checking sys/socket.h presence... yes 
checking for sys/socket.h... yes 
checking process.h usability... no 
checking process.h presence... no 
checking for process.h... no 
checking sys/prctl.h usability... no 
checking sys/prctl.h presence... no 
checking for sys/prctl.h... no 
checking sys/uio.h usability... yes 
checking sys/uio.h presence... yes 
checking for sys/uio.h... yes 
checking atomic.h usability... no 
checking atomic.h presence... no 
checking for atomic.h... no 
checking malloc.h usability... yes 
checking malloc.h presence... yes 
checking for malloc.h... yes 
checking malloc_np.h usability... no 
checking malloc_np.h presence... no 
checking for malloc_np.h... no 
checking malloc/malloc.h usability... no 
checking malloc/malloc.h presence... no 
checking for malloc/malloc.h... no 
checking setjmpex.h usability... no 
checking setjmpex.h presence... no 
checking for setjmpex.h... no 
checking sys/attr.h usability... no 
checking sys/attr.h presence... no 
checking for sys/attr.h... no 
checking sys/id.h usability... no 
checking sys/id.h presence... no 
checking for sys/id.h... no 
checking gmp.h usability... no 
checking gmp.h presence... no 
checking for gmp.h... no 
checking for special C compiler options needed for large files... no 
checking for _FILE_OFFSET_BITS value needed for large files... 64 
checking whether byte ordering is bigendian... yes 
checking for an ANSI C-conforming const... yes 
checking whether char is unsigned... no 
checking for inline... (cached) no 
checking for working volatile... yes 
checking for typeof syntax and keyword spelling... __typeof__ 
checking for long long... yes 
checking for off_t... yes 
checking char bit... 8 
checking size of int... 4 
checking size of short... 2 
checking size of long... 4 
checking size of long long... 8 
checking size of __int64... 0 
checking size of __int128... 0 
checking size of off_t... 8 
checking size of void*... 4 
checking size of float... 4 
checking size of double... 8 
checking size of time_t... 4 
checking size of clock_t... 4 
checking packed struct attribute... x __attribute__((packed)) 
checking for printf prefix for long long... ll 
checking for pid_t... yes 
checking for convertible type of pid_t... INT 
checking for uid_t... yes 
checking for convertible type of uid_t... INT 
checking for gid_t... yes 
checking for convertible type of gid_t... INT 
checking for time_t... yes 
checking for convertible type of time_t... LONG 
checking for dev_t... yes 
checking for convertible type of dev_t... INT 
checking for mode_t... no 
checking for convertible type of mode_t... LONG 
checking for rlim_t... yes 
checking for convertible type of rlim_t... ULL 
checking for off_t... (cached) yes 
checking for convertible type of off_t... LL 
checking for clockid_t... yes 
checking for convertible type of clockid_t... UINT 
checking for prototypes... yes 
checking token paste string... ansi 
checking stringization... #expr 
checking string literal concatenation... yes 
checking for variable length prototypes and stdarg.h... yes 
checking for variable length macro... yes 
checking for NORETURN function attribute... __attribute__ ((noreturn)) x 
checking for DEPRECATED function attribute... __attribute__ ((deprecated)) x 
checking for NOINLINE function attribute... __attribute__ ((noinline)) x 
checking for stdcall function attribute... x 
checking for cdecl function attribute... x 
checking for fastcall function attribute... x 
checking for FUNC_MINIMIZED function attribute... x 
checking for function alias... alias 
checking for __atomic builtins... no 
checking for __sync builtins... yes 
checking for __builtin_unreachable... no 
checking for exported function attribute... __attribute__ ((visibility("default"))) 
checking for function name string predefined identifier... __func__ 
checking whether sys_nerr is declared... no 
checking whether getenv is declared... yes 
checking for size_t... yes 
checking size of size_t... 4 
checking size of ptrdiff_t... 4 
checking for printf prefix for size_t... z 
checking for printf prefix for ptrdiff_t... t 
checking for struct stat.st_blksize... no 
checking for struct stat.st_blocks... no 
checking for struct stat.st_rdev... no 
checking size of struct stat.st_size... 0 
checking size of struct stat.st_ino... 0 
checking for struct stat.st_atim... no 
checking for struct stat.st_atimespec... no 
checking for struct stat.st_atimensec... no 
checking for struct stat.st_mtim... no 
checking for struct stat.st_mtimespec... no 
checking for struct stat.st_mtimensec... no 
checking for struct stat.st_ctim... no 
checking for struct stat.st_ctimespec... no 
checking for struct stat.st_ctimensec... no 
checking for struct stat.st_birthtimespec... no 
checking for struct timeval... yes 
checking size of struct timeval.tv_sec... SIZEOF_TIME_T 
checking for struct timespec... no 
checking for struct timezone... no 
checking for clockid_t... (cached) yes 
checking for fd_mask... no 
checking for int8_t... yes 
checking size of int8_t... 1 
checking for uint8_t... yes 
checking size of uint8_t... 1 
checking for int16_t... yes 
checking size of int16_t... 2 
checking for uint16_t... yes 
checking size of uint16_t... 2 
checking for int32_t... yes 
checking size of int32_t... 4 
checking for uint32_t... yes 
checking size of uint32_t... 4 
checking for int64_t... yes 
checking size of int64_t... 8 
checking for uint64_t... yes 
checking size of uint64_t... 8 
checking for int128_t... no 
checking for uint128_t... no 
checking for intptr_t... yes 
checking size of intptr_t... 4 
checking for uintptr_t... yes 
checking size of uintptr_t... 4 
checking for ssize_t... yes 
checking size of ssize_t... 4 
checking for stack end address... no 
checking for uid_t in sys/types.h... (cached) yes 
checking type of array argument to getgroups... gid_t 
checking return type of signal handlers... void 
checking for working alloca.h... yes 
checking for alloca... yes 
checking for dynamic size alloca... ok 
checking for working memcmp... yes 
checking for broken erfc of glibc-2.3.6 on IA64... no 
checking for acosh... yes 
checking for cbrt... yes 
checking for crypt... yes 
checking for dup2... yes 
checking for erf... yes 
checking for ffs... yes 
checking for finite... yes 
checking for flock... yes 
checking for hypot... yes 
checking for isinf... no 
checking for isnan... yes 
checking for lgamma_r... yes 
checking for memmove... yes 
checking for nextafter... yes 
checking for setproctitle... no 
checking for strchr... yes 
checking for strerror... yes 
checking for strlcat... no 
checking for strlcpy... no 
checking for strstr... yes 
checking for tgamma... yes 
checking sys/pstat.h usability... yes 
checking sys/pstat.h presence... yes 
checking for sys/pstat.h... yes 
checking for signbit... yes 
checking for pid_t... (cached) yes 
checking vfork.h usability... no 
checking vfork.h presence... no 
checking for vfork.h... no 
checking for fork... yes 
checking for vfork... yes 
checking for working fork... yes 
checking for working vfork... (cached) yes 
checking for __syscall... no 
checking for _longjmp... yes 
checking for _setjmp... yes 
checking for _setjmpex... no 
checking for atan2l... yes 
checking for atan2f... yes 
checking for chroot... yes 
checking for chsize... no 
checking for clock_gettime... yes 
checking for cosh... yes 
checking for daemon... (cached) no 
checking for dirfd... no 
checking for dl_iterate_phdr... no 
checking for dlopen... yes 
checking for dladdr... yes 
checking for dup... yes 
checking for dup3... no 
checking for eaccess... no 
checking for endgrent... yes 
checking for fchmod... yes 
checking for fchown... yes 
checking for fcntl... yes 
checking for fdatasync... yes 
checking for fgetattrlist... no 
checking for fmod... yes 
checking for fsync... yes 
checking for ftruncate... yes 
checking for ftruncate64... yes 
checking for getattrlist... no 
checking for getcwd... yes 
checking for getgidx... no 
checking for getgrnam... yes 
checking for getgrnam_r... yes 
checking for getgroups... yes 
checking for getpgid... yes 
checking for getpgrp... yes 
checking for getpriority... yes 
checking for getpwnam_r... yes 
checking for getresgid... yes 
checking for getresuid... yes 
checking for getrlimit... yes 
checking for getsid... yes 
checking for gettimeofday... yes 
checking for getuidx... no 
checking for gmtime_r... yes 
checking for initgroups... yes 
checking for ioctl... yes 
checking for isfinite... no 
checking for issetugid... no 
checking for killpg... yes 
checking for lchmod... yes 
checking for lchown... yes 
checking for link... yes 
checking for llabs... yes 
checking for lockf... yes 
checking for log2... yes 
checking for lstat... yes 
checking for malloc_usable_size... yes 
checking for malloc_size... no 
checking for mblen... yes 
checking for memalign... yes 
checking for writev... yes 
checking for memrchr... no 
checking for memmem... no 
checking for mktime... yes 
checking for pipe2... no 
checking for poll... yes 
checking for posix_fadvise... yes 
checking for posix_memalign... no 
checking for ppoll... no 
checking for pread... yes 
checking for qsort_r... no 
checking for readlink... yes 
checking for round... yes 
checking for sched_getaffinity... no 
checking for seekdir... yes 
checking for select_large_fdset... no 
checking for sendfile... yes 
checking for setegid... yes 
checking for setenv... yes 
checking for seteuid... yes 
checking for setgid... yes 
checking for setgroups... yes 
checking for setpgid... yes 
checking for setpgrp... yes 
checking for setregid... yes 
checking for setresgid... yes 
checking for setresuid... yes 
checking for setreuid... yes 
checking for setrgid... no 
checking for setrlimit... yes 
checking for setruid... no 
checking for setsid... yes 
checking for setuid... yes 
checking for shutdown... yes 
checking for sigaction... yes 
checking for sigaltstack... yes 
checking for sigprocmask... yes 
checking for sinh... yes 
checking for spawnv... no 
checking for symlink... yes 
checking for syscall... yes 
checking for sysconf... yes 
checking for tanh... yes 
checking for telldir... yes 
checking for timegm... no 
checking for times... yes 
checking for truncate... yes 
checking for truncate64... yes 
checking for unsetenv... yes 
checking for utimensat... no 
checking for utimes... yes 
checking for wait4... yes 
checking for waitpid... yes 
checking if getcwd allocates buffer if NULL is given... no 
checking for __builtin_bswap16... no 
checking for __builtin_bswap32... no 
checking for __builtin_bswap64... no 
checking for __builtin_clz... yes 
checking for __builtin_clzl... yes 
checking for __builtin_clzll... yes 
checking for __builtin_choose_expr... yes 
checking for __builtin_choose_expr_constant_p... no 
checking for __builtin_types_compatible_p... yes 
checking whether atan2 handles Inf as C99... no 
checking for clock_getres... yes 
checking for unsetenv returns a value... yes 
checking for sigsetjmp as a macro or function... no 
checking whether struct tm is in sys/time.h or time.h... time.h 
checking for struct tm.tm_zone... no 
checking whether tzname is declared... no 
checking for tzname... yes 
checking for struct tm.tm_gmtoff... no 
checking for external int daylight... no 
checking for external timezone... long 
checking for external altzone... no 
checking for timezone... yes 
checking whether timezone requires zero arguments... no 
checking for negative time_t for gmtime(3)... yes 
checking for localtime(3) overflow correctly... yes 
checking for __libc_ia64_register_backing_store_base... no 
checking whether right shift preserve sign bit... yes 
checking whether _SC_CLK_TCK is supported... no 
checking stack growing direction on ia64... -1 
checking for pthread_kill in -lthr... no 
checking for pthread_kill in -lpthread... yes 
checking for pthread_np.h... no 
checking whether pthread_t is scalar type... yes 
checking for sched_yield... yes 
checking for pthread_attr_setinheritsched... yes 
checking for pthread_getattr_np... no 
checking for pthread_attr_get_np... no 
checking for pthread_attr_getstack... yes 
checking for pthread_get_stackaddr_np... no 
checking for pthread_get_stacksize_np... no 
checking for thr_stksegment... no 
checking for pthread_stackseg_np... no 
checking for pthread_getthrds_np... no 
checking for pthread_cond_init... yes 
checking for pthread_condattr_setclock... no 
checking for pthread_condattr_init... yes 
checking for pthread_sigmask... yes 
checking for pthread_setname_np... no 
checking for pthread_attr_init... yes 
checking if mcontext_t is a pointer... no 
checking for getcontext... yes 
checking for setcontext... yes 
checking if fork works with pthread... yes 
checking whether ELF binaries are produced... yes 
checking elf.h usability... no 
checking elf.h presence... yes 
configure: WARNING: elf.h: present but cannot be compiled 
configure: WARNING: elf.h:  check for missing prerequisite headers? 
configure: WARNING: elf.h: see the Autoconf documentation 
configure: WARNING: elf.h:  section "Present But Cannot Be Compiled" 
configure: WARNING: elf.h: proceeding with the compiler's result 
checking for elf.h... no 
checking elf_abi.h usability... no 
checking elf_abi.h presence... no 
checking for elf_abi.h... no 
checking whether OS depend dynamic link works... yes 
checking for backtrace... no 
checking valgrind/memcheck.h usability... no 
checking valgrind/memcheck.h presence... no 
checking for valgrind/memcheck.h... no 
checking for strip... strip 
checking whether -fPIE is accepted as CFLAGS... yes 
checking whether -pie is accepted as LDFLAGS... yes 
checking for __builtin_setjmp... yes with cast() 
checking for setjmp type... __builtin_setjmp 
checking for prefix of external symbols... NONE 
checking pthread.h usability... no 
checking pthread.h presence... yes 
configure: WARNING: pthread.h: present but cannot be compiled 
configure: WARNING: pthread.h:  check for missing prerequisite headers? 
configure: WARNING: pthread.h: see the Autoconf documentation 
configure: WARNING: pthread.h:  section "Present But Cannot Be Compiled" 
configure: WARNING: pthread.h: proceeding with the compiler's result 
checking for pthread.h... no 
checking if make is GNU make... no 
checking for safe null command for make... : 
checking for nroff... /usr/bin/nroff 
.ext/include/ia64-hpux11.31/ruby/config.h unchanged 
ruby library version = 2.2.0 
configure: creating ./config.status 
config.status: creating Makefile 
config.status: creating ruby-2.2.pc 
Unknown keyword 'URL' in './ruby.tmp.pc' 

любые идеи о том, как исправить это?

+0

Это C (или C++, я не могу сказать, какой), а не ruby. Пожалуйста, отметьте его правильно. –

+0

Более конкретно, речь идет о компиляции Ruby MRI на HP-UX. Итак, я думаю, что, возможно, «Ruby tag» подходит. Вопрос имеет отношение к Ruby. Просто не с программированием на Ruby. При этом следует добавить и тег «C». В HP-UX, если я правильно помню, компилятор ANSI C был/является дорогостоящим добавлением. Компилятор C, поставляемый с базовыми системами, был вариантом K & R. Какой компилятор вы используете? –

+0

P.S. Какие параметры компилятора вы передаете? –

ответ

1

Глядя на рубина/missing.h мы видим это:

52 #if !defined(HAVE_STRUCT_TIMESPEC) 
53 struct timespec { 
54  time_t tv_sec; /* seconds */ 
54  long tv_nsec; /* nanoseconds */ 
55 }; 
56 #endif 

Так что, если я должен был догадаться, я бы сказал, что HAVE_STRUCT_TIMESPEC константа не инициализируется, когда оно должно быть. Это поражает меня как ошибку конфигурации или отсутствующий параметр компилятора.

Глядя на ваш выход конфигурирования мы видим это:

checking for struct timespec... no 

Тест настроить для этого:

ac_fn_c_check_type "$LINENO" "struct timespec" "ac_cv_type_struct_timespec" "#ifdef HAVE_TIME_H 
#include <time.h> 
#endif 
#ifdef HAVE_SYS_TIME_H 
#include <sys/time.h> 
#endif 
" 
if test "x$ac_cv_type_struct_timespec" = xyes; then : 

cat >>confdefs.h <<_ACEOF 
#define HAVE_STRUCT_TIMESPEC 1 
_ACEOF 

fi 

Ваша проблема заключается в этом коде. Почему программа конфигурации не находит timespec struct в заголовках системы? У вас также возникнут проблемы с HAVE_STRUCT_TIMEZONE, даже если вы перейдете к этой проблеме. Я бы это на разработчиков рубина списке рассылки по адресу: http://ruby-forum.com/ или более срочной помощи пробуйте канал IRC: IRC: //irc.freenode.net/ruby

Это длинный выстрел, но вы могли бы сдуть config.guess и он воссоздан с нуля на configure.

Смежные вопросы