-
configure に --with-opt-dir=/opt/local を指定する
-
checking for printf prefix for long long... が、 clang の吐く clang: warning: argument unused during compilation: '-I /opt/local/include' のせいで失敗し、 config.h に PRI_LL_PREFIX の定義が入らない
-
compiling .../ext/-test-/num2int/num2int.c がこけてビルド失敗
-
以下で直るが、clangでサポートされないフラグまで無警告になるのが副作用
Index: configure.in
===================================================================
--- configure.in (revision 44533)
+++ configure.in (working copy)
@@ -746,6 +746,7 @@ if test "$GCC:${warnflags+set}:no" = yes
-Werror=implicit-function-declaration \
-Werror=division-by-zero \
-Werror=deprecated-declarations \
+ -Qunused-arguments \
$extra_warning \
; do
if test "$particular_werror_flags" != yes; then
- 影響範囲を限定するならこうか
Index: configure.in
===================================================================
--- configure.in (revision 45371)
+++ configure.in (working copy)
@@ -779,6 +779,8 @@ if test "$GCC:${warnflags+set}:no" = yes
rb_cv_warnflags="$warnflags"
warnflags=
fi
+RUBY_TRY_CFLAGS(-Qunused-arguments, [RUBY_APPEND_OPTIONS(rb_cv_wsuppress_flags, -Qunused-arguments)])
+
if test "$GCC" = yes; then
# -D_FORTIFY_SOURCE
# When defined _FORTIFY_SOURCE, glibc enables some additional sanity
@@ -1302,7 +1304,8 @@ AC_DEFINE_UNQUOTED(PACKED_STRUCT_UNALIGN
AC_DEFUN([RUBY_CHECK_PRINTF_PREFIX], [
AC_CACHE_CHECK([for printf prefix for $1], [rb_cv_pri_prefix_]AS_TR_SH($1),[
[rb_cv_pri_prefix_]AS_TR_SH($1)=[NONE]
- RUBY_WERROR_FLAG(for pri in $2; do
+ RUBY_WERROR_FLAG(RUBY_APPEND_OPTIONS(CFLAGS, $rb_cv_wsuppress_flags)
+ for pri in $2; do
AC_TRY_COMPILE(
[@%:@include <stdio.h>
@%:@include <stddef.h>