From: "kosaki (Motohiro KOSAKI)" Date: 2013-04-01T07:36:52+09:00 Subject: [ruby-dev:47207] [ruby-trunk - Bug #8192] [OSX] Build failure by trunk Issue #8192 has been updated by kosaki (Motohiro KOSAKI). このチケットから r40027 が何故必要なのか読み取れないので、誰か解説してもらえませんか ---------------------------------------- Bug #8192: [OSX] Build failure by trunk https://bugs.ruby-lang.org/issues/8192#change-38066 Author: ayumin (Ayumu AIZAWA) Status: Closed Priority: Normal Assignee: nobu (Nobuyoshi Nakada) Category: build Target version: current: 2.1.0 ruby -v: trunk 以下のとおり、clangでtrunkをビルドしようとすると失敗します。 CrashReportは添付します。 $ uname -a Darwin Ayumu-no-MacBook-Air.local 12.3.0 Darwin Kernel Version 12.3.0: Sun Jan 6 22:37:10 PST 2013; root:xnu-2050.22.13~1/RELEASE_X86_64 x86_64 $ /usr/local/bin/autoconf --version autoconf (GNU Autoconf) 2.69 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+/Autoconf: GNU GPL version 3 or later , This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by David J. MacKenzie and Akim Demaille. $ /usr/local/bin/autoconf $ which clang /usr/bin/clang $ /usr/bin/clang --version Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn) Target: x86_64-apple-darwin12.3.0 Thread model: posix $ CC=/usr/bin/clang --with-readline-dir=usr/local/Cellar/readline/6.2.4 --with-gdbm-dir=/usr/local/Cellar/gdbm/1.10 --with-openssl-dir=/usr/local/Cellar/openssl/1.0.1c --with-libyaml-dir=/usr/local/Cellar/libyaml/0.1.4 -bash: --with-readline-dir=usr/local/Cellar/readline/6.2.4: No such file or directory $ CC=/usr/bin/clang ./configure --prefix=/Users/ayumin/temp/ruby --with-readline-dir=usr/local/Cellar/readline/6.2.4 --with-gdbm-dir=/usr/local/Cellar/gdbm/1.10 --with-openssl-dir=/usr/local/Cellar/openssl/1.0.1c --with-libyaml-dir=/usr/local/Cellar/libyaml/0.1.4 checking build system type... x86_64-apple-darwin12.3.0 checking host system type... x86_64-apple-darwin12.3.0 checking target system type... x86_64-apple-darwin12.3.0 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 /usr/bin/clang accepts -g... yes checking for /usr/bin/clang option to accept ISO C89... none needed checking whether we are using the GNU C++ compiler... yes checking whether clang++ accepts -g... yes checking how to run the C preprocessor... /usr/bin/clang -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking whether /usr/bin/clang needs -traditional... no checking for ld... ld checking whether the linker is GNU ld... no checking whether /usr/bin/clang -E accepts -o... yes checking for real target cpu... x86_64 checking for ranlib... ranlib checking for ar... ar checking for as... as checking for objdump... no checking for gobjdump... no checking for objcopy... no checking for gobjcopy... no checking for nm... nm checking whether ln -s works... yes checking whether make sets $(MAKE)... yes checking for a BSD-compatible install... /usr/bin/install -c checking for a thread-safe mkdir -p... -d use 'mkdir -p' as MKDIR_P checking for dtrace... dtrace 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 -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 -Werror=pointer-arith is accepted as CFLAGS... yes checking whether -Werror=write-strings is accepted as CFLAGS... yes checking whether -Werror=declaration-after-statement is accepted as CFLAGS... yes checking whether -Werror=shorten-64-to-32 is accepted as CFLAGS... yes checking whether -Werror=implicit-function-declaration is accepted as CFLAGS... yes checking whether -Wall -Wextra is accepted as CFLAGS... yes checking whether -ggdb3 is accepted as CFLAGS... yes checking whether -D_FORTIFY_SOURCE=2 is accepted as CFLAGS... yes checking whether -fstack-protector is accepted as CFLAGS... yes checking whether -fstack-protector is accepted as LDFLAGS... yes checking whether -fno-strict-overflow is accepted as CFLAGS... yes checking whether -fvisibility=hidden is accepted as CFLAGS... yes checking whether -fno-fast-math is accepted as CFLAGS... no checking whether Mac OS X 10.5 or later... yes checking for broken crypt with 8bit chars... no checking for codesign... codesign checking for crt_externs.h... yes checking for dirent.h that defines DIR... yes 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/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 sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking syscall.h usability... no checking syscall.h presence... no checking for syscall.h... no 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... no checking a.out.h presence... no checking for a.out.h... no 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 for ucontext.h... (cached) no 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 for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking whether byte ordering is bigendian... no checking for an ANSI C-conforming const... yes checking whether char is unsigned... no checking for inline... inline checking for working volatile... yes 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... 8 checking size of long long... 8 checking size of __int64... 0 checking size of off_t... 8 checking size of void*... 8 checking size of float... 4 checking size of double... 8 checking size of time_t... 8 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... UINT checking for gid_t... yes checking for convertible type of gid_t... UINT 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... yes checking for convertible type of mode_t... UINT checking for rlim_t... yes checking for convertible type of rlim_t... ULL 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... __attribute__ ((stdcall)) x checking for cdecl function attribute... __attribute__ ((cdecl)) x checking for fastcall function attribute... __attribute__ ((fastcall)) x checking for function alias... no checking for atomic builtins... yes checking for __builtin_unreachable... yes checking for exported function attribute... __attribute__ ((visibility("default"))) checking for function name string predefined identifier... __func__ checking whether sys_nerr is declared... yes checking for crypt in -lcrypt... (cached) no checking for dlopen in -ldl... yes checking for shl_load in -ldld... no checking for socketpair in -lsocket... no checking for clock_gettime in -lrt... no checking for size_t... yes checking size of size_t... 8 checking size of ptrdiff_t... 8 checking for printf prefix for size_t... z checking for printf prefix for ptrdiff_t... t checking for struct stat.st_blksize... yes checking for struct stat.st_blocks... yes checking for struct stat.st_rdev... yes checking size of struct stat.st_size... SIZEOF_LONG checking size of struct stat.st_blocks... SIZEOF_LONG checking for struct stat.st_atim... no checking for struct stat.st_atimespec... yes checking for struct stat.st_atimensec... no checking for struct stat.st_mtim... no checking for struct stat.st_mtimespec... yes checking for struct stat.st_mtimensec... no checking for struct stat.st_ctim... no checking for struct stat.st_ctimespec... yes checking for struct stat.st_ctimensec... no checking for struct timeval... yes checking size of struct timeval.tv_sec... SIZEOF_TIME_T checking for struct timespec... yes checking for struct timezone... yes checking for clockid_t... no checking for fd_mask... yes 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... 8 checking for uintptr_t... yes checking size of uintptr_t... 8 checking for ssize_t... yes checking size of ssize_t... 8 checking for stack end address... no checking for uid_t in sys/types.h... (cached) yes checking type of array argument to getgroups... (cached) 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 dup2... yes checking for memmove... yes checking for strerror... yes checking for strchr... yes checking for strstr... yes checking for crypt... yes checking for flock... yes checking for isnan... yes checking for finite... yes checking for isinf... yes checking for hypot... yes checking for acosh... yes checking for erf... yes checking for tgamma... yes checking for lgamma_r... yes checking for cbrt... yes checking for strlcpy... yes checking for strlcat... yes checking for ffs... yes checking for setproctitle... no checking for signbit... yes checking for fmod... yes checking for killpg... yes checking for wait4... yes checking for waitpid... yes checking for fork... yes checking for spawnv... no checking for syscall... yes checking for __syscall... yes checking for chroot... yes checking for getcwd... yes checking for eaccess... no checking for truncate... yes checking for ftruncate... yes checking for ftello... yes checking for chsize... no checking for times... yes checking for utimes... yes checking for utimensat... no checking for fcntl... yes checking for lockf... yes checking for lstat... yes checking for truncate64... no checking for ftruncate64... no checking for ftello64... no checking for fseeko... yes checking for fseeko64... no checking for link... yes checking for symlink... yes checking for readlink... yes checking for readdir_r... yes checking for fsync... yes checking for fdatasync... (cached) no checking for fchown... yes checking for posix_fadvise... no checking for setitimer... yes checking for setruid... yes checking for seteuid... yes checking for setreuid... yes checking for setresuid... no checking for socketpair... yes checking for setrgid... yes checking for setegid... yes checking for setregid... yes checking for setresgid... no checking for issetugid... yes checking for pause... yes checking for lchown... yes checking for lchmod... yes checking for getpgrp... yes checking for setpgrp... yes checking for getpgid... yes checking for setpgid... yes checking for initgroups... yes checking for getgroups... yes checking for setgroups... yes checking for getpriority... yes checking for getrlimit... yes checking for setrlimit... yes checking for sysconf... yes checking for close... yes checking for getpwnam_r... yes checking for getgrnam_r... yes checking for dlopen... yes checking for sigprocmask... yes checking for sigaction... yes checking for sigsetjmp... yes checking for _setjmp... yes checking for _longjmp... yes checking for getsid... yes checking for setsid... yes checking for telldir... yes checking for seekdir... yes checking for fchmod... yes checking for cosh... yes checking for sinh... yes checking for tanh... yes checking for log2... yes checking for round... yes checking for llabs... yes checking for setuid... yes checking for setgid... yes checking for daemon... (cached) no checking for select_large_fdset... no checking for setenv... yes checking for unsetenv... yes checking for mktime... yes checking for timegm... yes checking for gmtime_r... yes checking for clock_gettime... no checking for gettimeofday... yes checking for poll... yes checking for ppoll... no checking for pread... yes checking for sendfile... yes checking for shutdown... yes checking for sigaltstack... yes checking for dl_iterate_phdr... no checking for dup... yes checking for dup3... no checking for pipe2... no checking for posix_memalign... yes checking for memalign... no checking for ioctl... yes checking for unsetenv returns a value... yes checking for __builtin_setjmp... no checking for setjmp type... _setjmp checking whether struct tm is in sys/time.h or time.h... time.h checking for struct tm.tm_zone... yes checking for struct tm.tm_gmtoff... yes checking for external int daylight... yes checking for external timezone... long checking for external altzone... no checking for timezone... yes checking whether timezone requires zero arguments... yes checking for negative time_t for gmtime(3)... yes checking for localtime(3) overflow correctly... yes checking whether right shift preserve sign bit... yes checking read count field in FILE structures... _r checking read buffer ptr field in FILE structures... _p checking size of struct stat.st_ino... SIZEOF_LONG checking whether struct dirent.d_name is too small... no checking whether _SC_CLK_TCK is supported... yes checking stack growing direction on x86_64... -1 checking for pthread_kill in -lthr... no checking for pthread_kill in -lpthread... yes checking for pthread_np.h... no 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... yes checking for pthread_get_stacksize_np... yes 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_attr_init... yes checking if fork works with pthread... yes checking whether ELF binaries are produced... no checking whether OS depend dynamic link works... yes checking execinfo.h usability... yes checking execinfo.h presence... yes checking for execinfo.h... yes checking for backtrace in -lexecinfo... no checking for backtrace... yes checking for broken backtrace... yes 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... no checking whether -Wl,-pie is accepted as LDFLAGS... yes checking whether dtrace USDT is available... yes checking whether dtrace USDT is available... (cached) yes checking whether dtrace needs post processing... no checking for prefix of external symbols... _ checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking if make is GNU make... yes checking for memmem... yes checking for broken memmem... yes checking for nroff... /usr/bin/nroff .ext/include/x86_64-darwin12.3.0/ruby/config.h updated verconf.h updated ruby library version = 2.1.0 configure: creating ./config.status config.status: creating GNUmakefile config.status: creating Makefile config.status: creating ruby-2.1.pc $ make CC = /usr/bin/clang LD = ld LDSHARED = /usr/bin/clang -dynamic -bundle CFLAGS = -O3 -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32 -Werror=implicit-function-declaration -pipe XCFLAGS = -include ruby/config.h -include ruby/missing.h -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -fPIE CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -I. -I.ext/include/x86_64-darwin12.3.0 -I./include -I. DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -fstack-protector -Wl,-u,_objc_msgSend -Wl,-pie SOLIBS = Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn) Target: x86_64-apple-darwin12.3.0 Thread model: posix compiling main.c compiling dmydln.c compiling dmyencoding.c compiling version.c compiling dmyversion.c generating miniprelude.c compiling miniprelude.c translating probes probes.d . ./vm_opts.h compiling array.c compiling bignum.c compiling class.c compiling compar.c compiling complex.c compiling dir.c compiling dln_find.c compiling enum.c compiling enumerator.c generating known_errors.inc known_errors.inc updated compiling error.c compiling eval.c compiling load.c compiling proc.c compiling file.c compiling gc.c compiling hash.c compiling inits.c compiling io.c compiling marshal.c compiling math.c compiling node.c compiling numeric.c compiling object.c compiling pack.c generating parse.c copying lex.c compiling parse.c compiling process.c compiling random.c compiling range.c compiling rational.c compiling re.c compiling regcomp.c compiling regenc.c compiling regerror.c compiling regexec.c compiling regparse.c compiling regsyntax.c compiling ruby.c compiling safe.c compiling signal.c compiling sprintf.c compiling st.c compiling strftime.c compiling string.c compiling struct.c compiling time.c compiling transcode.c compiling util.c compiling variable.c generating insns.inc generating insns_info.inc generating optinsn.inc generating optunifs.inc generating opt_sc.inc compiling compile.c compiling debug.c generating node_name.inc compiling iseq.c generating vmtc.inc generating vm.inc compiling vm.c compiling vm_dump.c compiling vm_backtrace.c compiling vm_trace.c compiling thread.c compiling cont.c compiling ./enc/ascii.c compiling ./enc/us_ascii.c compiling ./enc/unicode.c compiling ./enc/utf_8.c generating newline.c ... converter for universal_newline converter for crlf_newline converter for cr_newline done. (0.07user 0.01system 0.01elapsed) compiling newline.c compiling ./missing/setproctitle.c compiling dmyext.c linking miniruby :1: [BUG] Segmentation fault ruby 2.1.0dev (2013-03-31) [x86_64-darwin12.3.0] -- Crash Report log information -------------------------------------------- See Crash Report log file under the one of following: * ~/Library/Logs/CrashReporter * /Library/Logs/CrashReporter * ~/Library/Logs/DiagnosticReports * /Library/Logs/DiagnosticReports the more detail of. -- Control frame information ----------------------------------------------- c:0002 p:0002 s:0004 e:000003 TOP :1 [FINISH] c:0001 p:0000 s:0002 E:000ca8 TOP [FINISH] :1:in `' -- C level backtrace information ------------------------------------------- 0 miniruby 0x000000010089e2c4 rb_vm_bugreport + 148 1 miniruby 0x000000010076c930 report_bug + 288 2 miniruby 0x000000010076c804 rb_bug + 180 3 miniruby 0x0000000100826b0f sigsegv + 79 4 libsystem_c.dylib 0x00007fff8f32c94a _sigtramp + 26 5 miniruby 0x000000010088303c vm_exec_core + 2460 6 ??? 0x0000000100000000 0x0 + 4294967296 -- Other runtime information ----------------------------------------------- * Loaded script: ./miniruby * Loaded features: 0 enumerator.so [NOTE] You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html make: *** [.rbconfig.time] Abort trap: 6 $ -- http://bugs.ruby-lang.org/