ruby-changes:27203
From: knu <ko1@a...>
Date: Fri, 15 Feb 2013 22:27:42 +0900 (JST)
Subject: [ruby-changes:27203] knu:r39255 (trunk): Fix CFLAGS and CXXFLAGS in RbConfig::CONFIG on FreeBSD and NetBSD/amd64.
knu 2013-02-15 22:25:28 +0900 (Fri, 15 Feb 2013) New Revision: 39255 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=39255 Log: Fix CFLAGS and CXXFLAGS in RbConfig::CONFIG on FreeBSD and NetBSD/amd64. * configure.in: Fix a bug introduced in r38342 that the cflagspat substitution is messed up by the way CFLAGS and optflags are modified, which affected FreeBSD and NetBSD/amd64 when configured to use libexecinfo. This bug resulted in CFLAGS and CXXFLAGS in RbConfig::CONFIG having warnflags expanded in them, forcing third-party C/C++ extensions to follow what warnflags demands, like ANSI/ISO-C90 conformance. ref [Bug #7101] Modified files: trunk/ChangeLog trunk/configure.in Index: configure.in =================================================================== --- configure.in (revision 39254) +++ configure.in (revision 39255) @@ -2421,8 +2421,15 @@ AS_CASE(["$target_cpu-$target_os"], https://github.com/ruby/ruby/blob/trunk/configure.in#L2421 execinfo_frame_pointer=no RUBY_TRY_CFLAGS(-fno-omit-frame-pointer, [execinfo_frame_pointer=yes]) if test "x$execinfo_frame_pointer" = xyes; then - optflags="${optflags+$optflags }-fno-omit-frame-pointer" - CFLAGS="$CFLAGS -fno-omit-frame-pointer" + # optflags must be manipulated very carefully. For the + # later cflagspat/cxxflagspat substitution to work, CFLAGS + # and CXXFLAGS must start exactly with the value of + # optflags. + CFLAGS="${CFLAGS# }"; CFLAGS="${CFLAGS#"$optflags "}" + CXXFLAGS="${CXXFLAGS# }"; CXXFLAGS="${CXXFLAGS#"$optflags "}" + RUBY_APPEND_OPTION(optflags, -fno-omit-frame-pointer) + CFLAGS=" $optflags $CFLAGS" + CXXFLAGS=" $optflags $CXXFLAGS" fi fi]) AC_CHECK_FUNCS(backtrace) Index: ChangeLog =================================================================== --- ChangeLog (revision 39254) +++ ChangeLog (revision 39255) @@ -1,3 +1,13 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Fri Feb 15 22:21:37 2013 Akinori MUSHA <knu@i...> + + * configure.in: Fix a bug introduced in r38342 that the cflagspat + substitution is messed up by the way CFLAGS and optflags are + modified, which affected FreeBSD and NetBSD/amd64 when + configured to use libexecinfo. This bug resulted in CFLAGS and + CXXFLAGS in RbConfig::CONFIG having warnflags expanded in them, + forcing third-party C/C++ extensions to follow what warnflags + demands, like ANSI/ISO-C90 conformance. ref [Bug #7101] + Fri Feb 15 20:29:11 2013 Tanaka Akira <akr@f...> * ext/socket/sockport.h (SET_SIN_LEN): defined for strict-aliasing -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/