Age | Commit message (Collapse) | Author |
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7088
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7088
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/7076
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6927
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6777
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/6482
|
|
The warning against `-undefined dynamic_lookup` is just a warning yet,
and many gems seem to pay no attention to warnings. Until it fails
actually, keep it as a migration path, except for standard extension
libraries and bundled extension gems.
Notes:
Merged: https://github.com/ruby/ruby/pull/6394
Merged-By: nobu <nobu@ruby-lang.org>
|
|
For the macOS -bundle_loader linker option, we need a path to the
Ruby exectuable. $(RUBY) is not necessarily a path since it could
be a command line invocation. That happens during build with
runruby.rb and can happen post installation if the user passes
the --ruby option to a extconf.rb. Use $(bindir) to locate
the executable instead.
Before installation, $(bindir) doesn't exist, so we need to be
able to override $(BUILTRUBY) in such situations so test-spec
and bundled extensions could build. Use a new mkmf global,
$builtruby, to do this; set it in fake.rb and in extmk.rb.
Our build system is quite complex...
Notes:
Merged: https://github.com/ruby/ruby/pull/6193
|
|
ld64 shipped with Xcode 14 emits a warning when using `-undefined
dynamic_lookup`.
```
ld: warning: -undefined dynamic_lookup may not work with chained fixups
```
Actually, `-undefined dynamic_lookup` doesn't work when:
1. Link a *shared library* with the option
2. Link it with a program that uses the chained-fixup introduced from
macOS 12 and iOS 15
because `-undefined dynamic_lookup` uses lazy-bindings and they won't be
bound while dyld fixes-up by traversing chained-fixup info.
However, we build exts as *bundles* and they are loaded only through
`dlopen`, so it's safe to use `-undefined dynamic_lookup` in theory.
So the warning produced by ld64 is false-positive, and it results
failure of option checking in configuration. Therefore, it would be an
option to ignore the warning during our configuration.
On the other hand, `-undefined dynamic_lookup` is already deprecated on
all darwin platforms except for macOS, so it's good time to get rid of
the option. ld64 also provides `-bundle_loader <executable>` option,
which allows to resolve symbols defined in the executable symtab while
linking. It behaves almost the same with `-undefined dynamic_lookup`,
but it makes the following changes:
1. Require that unresolved symbols among input objects must be defined
in the executable.
2. Lazy symbol binding will lookup only the symtab of the bundle loader
executable. (`-undefined dynamic_lookup` lookups all symtab as flat
namespace)
This patch adds `-bundle_loader $(RUBY)` when non-EXTSTATIC
configuration by assuming ruby executable can be linked before building
exts.
See "New Features" subsection under "Linking" section for chained fixup
https://developer.apple.com/documentation/xcode-release-notes/xcode-13-release-notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6193
|
|
Note this change is only for `configure.ac`, not for Windows using
`win32/configure.bat`.
```
$ ./configure --help | grep mkmf
--enable-mkmf-verbose enable verbose in mkmf
```
Run the following command to enable the mkmf verbose mode.
```
$ ./configure --enable-mkmf-verbose
$ grep MKMF_VERBOSE config.status
S["MKMF_VERBOSE"]="1"
```
In this mkmf verbose mode, when compiling a native extension, the
`rake compile` prints the compiling commands such as
"gcc -I. <...> path/to/file" instead of "compiling path/to/file".
```
$ git clone https://github.com/deivid-rodriguez/byebug.git
$ cd byebug
$ bundle install --standalone
$ bundle exec rake compile
...
gcc -I. <...> path/to/file
...
```
Notes:
Merged: https://github.com/ruby/ruby/pull/5879
|
|
Capitalize creates
Notes:
Merged: https://github.com/ruby/ruby/pull/5848
|
|
Because `Dir.[]` returns the sorted results since Ruby 3.0.
Notes:
Merged: https://github.com/ruby/ruby/pull/5832
|
|
This method is at least 7 years old and is widely used in the wild.
Since we need to support it, let's document it to make it discoverable.
Add docs and move it out of the `# :stopdoc:` zone.
Notes:
Merged: https://github.com/ruby/ruby/pull/5760
|
|
Empty class documents are generated even with `:stopdoc:`.
|
|
Enable `-Werror=implicit-function-declaration` by default for
building C extensions for early failures.
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5436
|
|
|
|
So that version dependent pkg-config files can override files in
the default locations.
Notes:
Merged: https://github.com/ruby/ruby/pull/5182
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5182
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/5182
|
|
|
|
This reverts commit 524513be399e81bb170ec88aa0d501f33cbde8c3,
which can return false positive by existing but unusable symbol,
including functions.
|
|
|
|
To check for variables accessible but not declared.
|
|
|
|
|
|
|
|
|
|
|
|
#17761]
When installing an extension library which provides a header, that
header should be installed under site_ruby (or vendor_ruby when
"--vendor" option was given to extconf.rb). However, currently
this file is about to be installed in the core include directory.
Notes:
Merged: https://github.com/ruby/ruby/pull/4339
Merged-By: nobu <nobu@ruby-lang.org>
|
|
|
|
iff means if and only if, but readers without that knowledge might
assume this to be a spelling mistake. To me, this seems like
exclusionary language that is unnecessary. Simply using "if and only if"
instead should suffice.
Notes:
Merged: https://github.com/ruby/ruby/pull/4035
|
|
|
|
Get rid of "present but cannot be compiled" headers, on some
multi-architecture platforms.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4011
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3003
|
|
|
|
|
|
|
|
Look up language module with `MakeMakefile.[]`, insted of a
accessing constant under that module directly, to get rid of
expose the constant to the toplevel inadvertently.
|
|
It is exposed to the topleven namespace via included MakeMakefile.
|
|
|
|
|
|
This was the historical behavior, it was modified unintentionally
by 097c3e9cbbf23718371f08c24b2d2297b039f63f, which started storing
these flags in a different global variable.
Also, include the incflags when logging, and document that the
method modifies $INCFLAGS.
Fixes [Bug #10651]
|
|
[Feature #15665]
|