based on r26235 by Yugui. On Solaris 10, low optimization level
may also be needed, e.g. optflags="-xO1" or "-xO0" with Oracle
SolarisStudio 12.3 cc.
* configure.in (--enable-dtrace): new option to enable/disable
DTrace support. By default, trying to enable if dtrace command
is found on the system. It is disabled when cross compiling.
* configure.in (RUBY_DTRACE_POSTPROCESS): new macro. checks whether
the dtrace on the system needs postprocessing with "dtrace -G".
The postprocessing is needed on Solaris 10 and other platforms.
* configure.in (RUBY_DTRACE_BSD_BROKEN): new macro. checks whether
the dtrace supports USDT.
* configure.in (DTRACE): move after RUBY_DTRACE_POSTPROCESS.
* configure.in (LD): On Solaris, /usr/ccs/bin/ld is preferred.
* configure.in, Makefile.in, common.mk (DTRACE_OBJ): new macro for
DTrace probe object generated by postprocessing with "dtrace -G".
* Makefile.in, common.mk (probes.$(OBJEXT)): DTrace probe object
generated by the postprocessing. New file probes.stamp is for
rebuilding related objects that may be modified by "dtrace -G".
* configure.in, Makefile.in, common.mk (DTRACE_GLOMMED_OBJ): new
macro for DTrace static library hacks.
* configure.in, Makefile.in (LIBRUBY_A_OBJS): ditto.
* Makefile.in, common.mk (ruby-glommed.$(OBJEXT)): new target with
rule for DTrace static library hacks.
* common.mk (DTRACE_DEPENDENT_OBJS): objects depended on probes.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (incs): probes.h is a platform dependent file, so it
cannot be a part of prereq target. move it to all-incs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: disable dtrace because it doesn't work on FreeBSD.
* common.mk (clean-local): rm probes.h.
* common.mk (parse.o): depend $(PROBES_H_INCLUDES).
* common.mk (.d.h): moved from Makefile.in and use BASERUBY.
* tool/gen_dummy_probes.rb: reimplemented with ruby because sed is not
available on Windows Microsoft VC++ environment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c (empty_ary_alloc, ary_new): added array create DTrace probe.
* compile.c (rb_insns_name): allowing DTrace probes to access
instruction sequence name.
* Makefile.in: translate probes.d file to appropriate header file.
* common.mk: declare dependencies on the DTrace header.
* configure.in: add a test for existence of DTrace.
* eval.c (setup_exception): add a probe for when an exception is
raised.
* gc.c: Add DTrace probes for mark begin and end, and sweep begin and
end.
* hash.c (empty_hash_alloc): Add a probe for hash allocation.
* insns.def: Add probes for function entry and return.
* internal.h: function declaration for compile.c change.
* load.c (rb_f_load): add probes for `load` entry and exit, require
entry and exit, and wrapping search_required for load path search.
* object.c (rb_obj_alloc): added a probe for general object creation.
* parse.y (yycompile0): added a probe around parse and compile phase.
* string.c (empty_str_alloc, str_new): DTrace probes for string
allocation.
* test/dtrace/*: tests for DTrace probes.
* vm.c (vm_invoke_proc): add probes for function return on exception
raise, hash create, and instruction sequence execution.
* vm_core.h: add probe declarations for function entry and exit.
* vm_dump.c: add probes header file.
* vm_eval.c (vm_call0_cfunc, vm_call0_cfunc_with_frame): add probe on
function entry and return.
* vm_exec.c: expose instruction number to instruction name function.
* vm_insnshelper.c: add function entry and exit probes for cfunc
methods.
* vm_insnhelper.h: vm usage information is always collected, so
uncomment the functions.
12 19:14:50 2012 Akinori MUSHA <knu@iDaemons.org>
* configure.in (isinf, isnan): isinf() and isnan() are macros on
DragonFly which cannot be found by AC_REPLACE_FUNCS(). This
workaround enforces the fact that they exist on DragonFly.
12 15:59:38 2012 Shugo Maeda <shugo@ruby-lang.org>
* vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo),
vm_insnhelper.c (vm_search_method): revert r37616 because it's too
slow. [ruby-dev:46477]
* test/ruby/test_refinement.rb (test_inline_method_cache): skip
the test until the bug is fixed efficiently.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
on Solaris 10. [ruby-dev:46414] [Bug #7287]
* gc.c, signal.c, vm_core.h, common.mk: reflect the rename from atomic.h
to ruby_atomic.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (WPROGRAM): need same dependencies as PROGRAM.
* cygwin/GNUmakefile.in (uncommon.mk): move include position
below WPROGRAM definition to be defined in uncommon.mk.
* ext/extmk.rb (all, static): fix make rubyw.exe failure with make -jN.
If make of ruby.exe and rubyw.exe run in parallel, link dll and link
exe run in parallel, which causes link failure on mingw. To fix this,
we make ruby.exe and rubyw.exe in one make process.
[ruby-core:48007] [Bug #7165]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (RUNRUBY_COMMAND): split from RUNRUBY.
* common.mk (gdb-ruby): use runruby.rb to set up library path.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: revert r36867 partially, to use files in the source
directory when out-of-place build.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: remove VPATH from rules for generated files, because
nmake does not work. [Bug #6956]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/id.h.tmpl, tool/id2token.rb: make id.h independent from
parse.h, and make parse.c dependent on it instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
so need to move denendency rules under the definition of it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ID_H_TARGET): timestamp file makes no senses now. object
files depending on id.h are always updated after parse.y is touched.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in, common.mk (incs): replace real header with the
timestamp file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (test-ruby): include -ext- tests, which check for core
API and behavior.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ID_H_TARGET): make timestamp file of id.h so that the
header will not be remade repetitively.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (runnable): make symbolic links to run in build directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is no longer included from vm.c). I hope this separation reduce
compile time of vm.c.
* internal.h: ditto.
* vm.c, vm_core.h, vm_dump.c, vm_eval.c: ditto.
* vm_eval.c: some functions (callee, etc) moved to vm_backtrace.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (btest, test-sample, test-knownbugs, test-all, test-ruby):
pass common options by TESTOPTS.
* tool/rubytest.rb: pass ARGV from make to sample/test.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (do-install-*): fix dependencies. based on the patch by
nagachika at [ruby-dev:45683]. [Bug #6506]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (LIBRUBY_SO): link EXTSOLIBS too.
* ext/extmk.rb (mf.macro): use EXTSOLIBS instead of SOLIBS to get rid
of discard libraries needed by default. [Bug #6462]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Patch by Google Inc. [ruby-core:45073].
* configure.in (RUBY_NACL): New M4 func to configure variables for
NaCl.
(RUBY_NACL_CHECK_PEPPER_TYPES): New M4 func to check the old names
of Pepper interface types.
(BTESTRUBY): New variable to specify which ruby should be run on
"make btest". NaCl can run the built binary by sel_ldr, but it need
rbconfig.rb. So this variable is distinguished from $MINIRUBY.
* thread_pthread.c: Disabled some features on NaCl.
* io.c: ditto.
* process.c: ditto.
* signal.c: ditto.
* file.c: ditto.
* missing/flock.c: ditto.
* nacl/pepper_main.c: An example implementation of Pepper application
that embeds Ruby.
* nacl/example.html: An example of web page that uses the Pepper
application.
* nacl/nacl-config.rb: Detects variants of NaCl SDK.
* nacl/GNUmakefile.in: Makefile template for NaCl specific build
process.
* nacl/package.rb: script for packaging a NaCl-Ruby embedding
application.
* nacl/reate_nmf.rb: Wrapper script of create_nmf.py
* dln.c (dln_load): Added a hack to call on NaCl.
* util.c (ruby_getcwd): Path to the current directort is not available
on NaCl.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Fixes --with-static-linked-ext.
Patch by Google Inc. [ruby-core:45073].
* Makefile.in (ENCOBJS, EXTOBJS): New variables to specify static
linked libraries. Also reintroduces extinit.o, introduces encinit.o
introduces encinit.o
* common.mk: Builds static libraries rather than shared objects if
specified.
* configure.in (LD): new substitution.
Avoids PIE if s
* enc/depend: Supports static linked libraries
(libencs, libenc, libtrans): New target.
* enc/encinit.c.erb: new template to generate the initialization of
statically linked encodings.
* enc/make_encmake.rb (--module): new flag to specify whether static
or dynamic.
* transcode_data.h (TRANS_INIT): New macro to get rid of the name
collision of encoding initializers and transcoder initializers.
* ext/extmk.rb: Fixes the behavior on $extstatic is true.
* lib/mkmf.rb (clean-static): new target to clean up static linked
libraries.
* ruby.c (process_options): New initializes statically linked
encodings here.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (clean-platform): add new target.
It cleans `win32` directory.
* common.mk (clean): add a dependency for `win32` directory.
* common.mk (distclean): ditto.
* common.mk (distclean-platform): add new target.
It cleans `win32` directory.
* common.mk ($(PLATFORM_D)): add new target to make `win32` directory.
* common.mk (win32/win32.$(OBJEXT)): move win32.o into `win32`
directory.
* common.mk (win32/file.$(OBJEXT)): add new target for win32/file.c.
* configure.in: move win32.o into `win32` directory and add
win32/file.o to MISSING.
* file.c (file_load_ok, rb_file_load_ok): replace static
file_load_ok() with public rb_file_load_ok().
It's to link Windows implementation in win32/file.c.
* file.c (rb_find_file_ext_safe): ditto.
* file.c (rb_find_file_safe): ditto.
* win32/file.c (rb_file_load_ok): new file. Add Windows specific
optimized implementation of rb_file_load_ok(). We created a
separated file to avoid too many #ifdef macro which is unreadable.
* win32/Makefile.sub (PLATFORM_DIR): add a variable for `win32`
directory.
* win32/Makefile.sub (MISSING): move win32.obj into `win32`
directory and add win32/file.obj to MISSING.
* win32/Makefile.sub (MAKEDIRS): replace MINIRUBY with BASERUBY.
It's because miniruby doesn't exist when making `win32` directory.
* win32/Makefile.sub (clean-platform): add new target to clean `win32`
directory.
* win32/Makefile.sub ({$(srcdir)}.c{}.obj): make it not match
win32/file.c to build properly.
* win32/Makefile.sub (win32/win32.$(OBJEXT)): move win32.obj into
`win32` directory.
Patch created with Luis Lavena.
[ruby-core:42480] [Feature #5999]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
broke mswin build, and the changer said no reason about the change.
[ruby-dev:45016] [Bug #5783]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
specific hack from common.mk to Makefile.in (and win32/Makefile.sub).
[Bug #5711]
* lib/mkmf.rb: we can generate Makefile as we like.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to man pages. Fixes#5598.
(do-install-nodoc, do-install-local, do-install-man,
dont-install-nodoc, dont-install-local, dont-install-man):
No longer needs --mantype.
Reported by Rainer Orth <ro AT cebitec.uni-bielefeld.de>,
patch by George Koehler <xkernigh AT netscape.net>.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
--
* common.mk (ECHO1): nmake does not allow parenthesis in make variable
replacement.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (ECHO1): ":" in a make variable replacement cause a syntax
error with /usr/ccs/bin/make on Solaris. Uses $(NULLCMD) instead.
* configure.in (NULLCMD): new check.
* Makefile.in (NULLCMD): Reflects checking in configure.
* win32/Makefile.sub (NULLCMD): new assignment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/update-deps: new file to assist update dependencies in
common.mk.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
TESTRUN_SCRIPT is used by "make run", "make gdb" and so on.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
functions in backtrace. [ruby-dev:42625]
a patch from shinichiro.h <shinichiro.hamaji AT gmail.com>
* addr2line.h: ditto.
* common.mk: add addr2line.$(OBJEXT).
* configure.in: check dl_iterate_phdr.
* vm_dump.c (rb_vm_bugreport): use rb_dump_backtrace_with_lines in
addr2line.c when the binary is ELF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (showconfig): show configure flags, like as
`config.status --config' generated by recent autoconf.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/rbinstall.rb: install pc file only if non-empty.
[ruby-core:32901] #3983
* win32/Makefile.sub (ruby_pc): create pc file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
--
* common.mk (capi): uses a timestamp file to get rid of
generating twice.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
file as stdin, because IronRuby 1.1 still doesn't support it.
So now we can use ir.exe as BASERUBY.
* tool/node_name.rb: read stdin with while gets.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
buffering and prevents wrong reordering between stdout and stderr
even when the output of "make" is redirected.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
from test-rubyspec.
* common.mk (test-rubyspec): moved from Makefile.in.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
command, since it seems to be handled by nmake in special way.
[ruby-dev:41711]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e