Граф коммитов

377 Коммитов

Автор SHA1 Сообщение Дата
David CARLIER dfe944bfbe haiku configure fix (again). 2021-10-18 17:40:19 +09:00
David CARLIER 1831693c1f haiku build update stack overflow check in libroot (haiku's libc) now 2021-10-17 14:00:59 +09:00
Jeremy Evans 06c3e80611 Do not allow configuration where neither static or shared library is installed
Fixes [Bug #18000]
2021-10-08 14:01:54 -09:00
Nobuyoshi Nakada e0ef4899f3 [Win32] Prefer Cryptography Next Generation API
[BCryptGenRandom] is available since Windows Vista / Windows
Server 2008.

Regarding [CryptGenRandom]:
> This API is deprecated. New and existing software should start
> using Cryptography Next Generation APIs. Microsoft may remove
> this API in future releases.

[BCryptGenRandom]: https://docs.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom
[CryptGenRandom]: https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptgenrandom
2021-10-02 21:22:33 +09:00
Nobuyoshi Nakada 0ad3ed5e0e
Checks for CPU specific header on universal build 2021-10-01 20:30:10 +09:00
Nobuyoshi Nakada ca3cc677b3
Define ACTION-IF-UNIVERSAL of `AC_C_BIGENDIAN` [Bug #18156]
As we do not use config.h.in, just define the helper macro
instead.
2021-10-01 10:56:11 +09:00
Nobuyoshi Nakada 912a8dcfc5
Needs `AC_PROG_CC`
Although `AC_PROG_CC_C99` has been obsolete, `AC_PROG_CC` is not
and the latter is necessary not to make C++ compiler mandatory.
2021-09-30 19:22:08 +09:00
Lars Kanis 576b2e64cd MINGW-UCRT: Set CONFIG['arch'] and RUBY_PLATFORM to "x64-mingw-ucrt"
This allows easy differentiation between ABI incompatible platforms like MSWIN64 and MSVCRT-based MINGW32.
This also implicates a distinct rubygem platform which is also "x64-mingw-ucrt".

Although the term "mingw32" is the OS-part for 64 bit systems as well, the "32" is misleading and confusing for many users.
Therefore the new platform string drops the "32" from the OS part to just "mingw".
This conforms to the common practice of windows platform testing per RUBY_PLATFORM=~/mswin|mingw/ .
2021-09-20 00:15:30 +09:00
xtkoba (Tee KOBAYASHI) 637d7288f3 MINGW: More permissive pattern matching for coroutine
Pattern matching for target_os in configure script should be permissive if we consider suffixing something onto "mingw32".
2021-09-20 00:15:30 +09:00
xtkoba (Tee KOBAYASHI) 8bda512878 MINGW: set rb_cv_msvcrt=ucrt and RT_VER=140 when UCRT is used 2021-09-20 00:15:30 +09:00
DC a8fe7c9e2a coroutine enables assembly version for dragonflybsd. 2021-09-13 08:12:15 +12:00
Nobuyoshi Nakada b76ad15ed0
Remove stale DLEXT2
Actually disabled at 181a3a2af5 in
2004,  it has remained in config.status and been carried over to
rbconfig.rb.
2021-09-10 14:51:56 +09:00
Nobuyoshi Nakada 7487371eeb
Make ruby.pc from make
Expand variables undefined in configure.ac, RUBY_RELEASE_DATE and
so on.
2021-08-29 14:08:53 +09:00
Nobuyoshi Nakada 623736ae7f
Move DEFFILE to EXTDLDFLAGS
So that it is no longer needed in ruby.pc.in.
2021-08-29 13:04:42 +09:00
Nobuyoshi Nakada 80c1faf076
Use C99-defined signbit macro 2021-08-27 12:42:23 +09:00
Nobuyoshi Nakada 04be8e84db
Use C99-defined macros to classify a floating-point number 2021-08-27 12:41:30 +09:00
David Carlier 8d2af51a78 netbsd coroutine uses assembly instead and little build fix. 2021-08-24 10:52:04 +09:00
Nobuyoshi Nakada 5087a6a924
Fix COROUTINE_SRC on emscripten
Select the C source if exists, otherwise the assembler source,
instead of selecting by the coroutine type.
2021-08-16 13:45:30 +09:00
DC f8f6d9895d coroutine use asm version for handful of architectures for freebsd. 2021-08-16 12:06:46 +12:00
Nobuyoshi Nakada 372d94b6ba
Shared libruby also needs MAINLIBS for jemalloc 2021-07-07 23:40:04 +09:00
Nobuyoshi Nakada e8d9539373
Refactor --with-jemalloc option
Find jemalloc header first, then using the found header, try [with
mangle, without mangle] x [no more additional libraries, adding
jemalloc] combination.
2021-07-07 23:40:04 +09:00
卜部昌平 82d425515d comment about the situation [ci skip] 2021-07-07 20:31:20 +09:00
卜部昌平 737e4432b9 configure: add -Wl,--no-as-needed
It is reported that combination of `--enable-shared --with-jemalloc`
breaks on Debian bullseye (testig).  Deeper investigation revealed that
this system's `ld(1)` is patched, to turn `ld --as-needed` on by
default.

This linker flag strips "unnecessary" library dependencies from an
executable.  In case of `ruby(1)` (of `--enable-shared`), because
everything is in `libruby.so`, the binary itself doesn't include any
calls to `malloc(3)` at all.  So in spite of our explicit `-ljemalloc`
flag, it is ignored.  Libc's one is chosen instead.

This is not what we want.  Let's force our `ruby(1)` link what we want.

Fixes https://github.com/ruby/ruby/pull/4627

The author would like to acknowledge
Akihiko Odaki <akihiko.odaki@gmail.com> for their contributions.
2021-07-07 20:31:20 +09:00
Nobuyoshi Nakada 91258ed449
Enable libruby-relative on FreeBSD 2021-07-06 21:26:14 +09:00
Nobuyoshi Nakada 166d148355
Fix check for malloc_conf when no library is required 2021-07-06 21:02:41 +09:00
Nobuyoshi Nakada c5e6fa4853
Moved native coroutine type checking message
Not to be interleaved by fallback checking messages
2021-07-06 21:02:40 +09:00
Samuel Williams 42130a64f0
Replace copy coroutine with pthread implementation. 2021-07-01 11:23:03 +12:00
Nobuyoshi Nakada 627aafac86
Remove also debug symbol directory at clean on macOS 2021-06-24 17:04:42 +09:00
Nobuyoshi Nakada 4b28fea6ee
Run ifchange with shell explicitly, workaround of noexec mount 2021-06-22 09:46:40 +09:00
Nobuyoshi Nakada c2d9967f78 Configure ioctl request argument type [Bug #17759] 2021-06-16 13:17:19 +09:00
卜部昌平 90cad6e147 prefer cc/gcc over clang on solaris
requested by tankf33der at https://bugs.ruby-lang.org/issues/17949#change-92430
2021-06-14 22:37:17 +09:00
Nobuyoshi Nakada 7cf90f99f5
Refix PAGE_SIZE
* honor actually used headers
* include sys/user.h only when `PAGE_SIZE` is not defined
2021-05-14 09:33:20 +09:00
John Hawthorn 0aa4ca1477 Fix compilation with jemalloc on macos
On darwin we avoid including sys/user.h to avoid a conflict. Previously
we still ended up with PAGE_SIZE being defined because the headers for
system malloc define it. However, when compiling with jemalloc nothing
would define PAGE_SIZE.

This commit changes configure.ac so that we never use the PAGE_SIZE
constant on darwin and to always use the sysconf fallback.
2021-05-13 11:14:30 -04:00
Nobuyoshi Nakada 2d67027448 Removed missing/dup2.c
This function should be always available, as POSIX-compliant or
Windows platform are required since 1.9.  Also the code in this
file is MT-unsafe.
2021-05-10 15:59:23 +09:00
Nobuyoshi Nakada a1fdc5f71c
Check only whether PAGE_SIZE is compile-time const 2021-05-06 11:30:37 +09:00
Nobuyoshi Nakada 921d8ac99d
Get rid of including sys/user.h on macOS
LIST_HEAD in ccan/list conflicts with sys/queue.h.

```
./ccan/list/list.h:75:9: warning: 'LIST_HEAD' macro redefined [-Wmacro-redefined]
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/queue.h:465:9: note: previous definition is here
        ^
```
2021-05-06 09:39:47 +09:00
Peter Zhu 23a98237df Fix PAGE_SIZE macro detection in autoconf
The current fix for PAGE_SIZE macro detection in autoconf does not work
correctly. I see the following output with running configure on Linux:

```
checking PAGE_SIZE is defined... no
```

Linux has PAGE_SIZE macro. This is happening because the macro exists in
sys/user.h and not in the malloc headers.
2021-05-05 15:31:30 -04:00
Nobuyoshi Nakada 3d5b6ddff8
Fix compilation on M1 Mac
As PAGE_SIZE may not be a preprocessor constant, dispatch at
runtime in that case.
2021-05-05 23:54:36 +09:00
Yusuke Endoh e71c9ca529 configure.ac: check if __builtin_expect is available or not
include/ruby/internal/has/builtin.h uses HAVE_BUILTIN___BUILTIN_EXPECT
for icc but previously it was not defined.

This is a follow up of 8b32de2ec9 and this
will fix the following failures:

http://rubyci.s3.amazonaws.com/icc-x64/ruby-master/log/20210505T030003Z.fail.html.gz
```
  1) Failure:
TestMkmf::TestConvertible#test_typeof_builtin [/home/chkbuild/chkbuild/tmp/build/20210505T030003Z/ruby/test/mkmf/test_convertible.rb:9]:
convertible_int: checking for convertible type of short... -------------------- short

--------------------

convertible_int: checking for convertible type of int... -------------------- int

--------------------

convertible_int: checking for convertible type of long... -------------------- long

--------------------

convertible_int: checking for convertible type of signed short... -------------------- failed

"icc -std=gnu99 -o conftest -I. -I/home/chkbuild/chkbuild/tmp/build/20210505T030003Z/ruby/.ext/include/x86_64-linux -I/home/chkbuild/chkbuild/tmp/build/20210505T030003Z/ruby/include -I./test    -O3 -ggdb -Wall -Wextra -Wdeprecated-declarations -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-unused-parameter -Wunused-variable -diag-disable=175,188,1684,2259,2312 -Wextra-tokens -Wundef conftest.c  -L. -L/home/chkbuild/chkbuild/tmp/build/20210505T030003Z/ruby -Wl,-rpath,/home/chkbuild/chkbuild/tmp/build/20210505T030003Z/ruby -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic     -Wl,-rpath,/home/chkbuild/chkbuild/tmp/build/20210505T030003Z/lib -L/home/chkbuild/chkbuild/tmp/build/20210505T030003Z/lib -lruby-static -lz -lpthread -lrt -lrt -ldl -lcrypt -lm   -lm   -lc"
In file included from /home/chkbuild/chkbuild/tmp/build/20210505T030003Z/ruby/include/ruby/defines.h(72),
                 from /home/chkbuild/chkbuild/tmp/build/20210505T030003Z/ruby/include/ruby/ruby.h(23),
                 from /home/chkbuild/chkbuild/tmp/build/20210505T030003Z/ruby/include/ruby.h(39),
                 from conftest.c(1):
/home/chkbuild/chkbuild/tmp/build/20210505T030003Z/ruby/include/ruby/backward/2/assume.h(34): warning #193: zero used for undefined preprocessing identifier "HAVE_BUILTIN___BUILTIN_EXPECT"
  #if RBIMPL_HAS_BUILTIN(__builtin_expect)

...
```
2021-05-05 12:58:12 +09:00
Nobuyoshi Nakada 5bde2e61db Workaround for gcc-4 bug
False positive `-Wundef` in `#elif` after `#if defined`.
2021-05-05 10:10:59 +09:00
Benoit Daloze 8b32de2ec9 Add -Werror=undef to default warnflags for core
* See [Feature #17752]
* For external extensions it's transformed to just warn and not error (-Wundef)
  like other other -Werror in warnflags.
2021-05-04 14:56:55 +02:00
Nobuyoshi Nakada 1f56238032
Remove comments in tool/m4 from the generated configure 2021-04-17 19:14:21 +09:00
Nobuyoshi Nakada 17c3014bb7
Prefer positive condition to double negative
Autoconf 2.70 seems to omit the check for the given CC,
`AC_COMPILE_IFELSE` does not know which is the cause of the
failure.
2021-04-17 19:08:53 +09:00
Nobuyoshi Nakada a5688b5ce6
Support non-standard `struct stat` [Bug #17793]
On 32-bit Android:
* `st_dev`/`st_rdev` are not `dev_t`
* `st_mode` is not `mode_t`
2021-04-12 15:32:49 +09:00
Nobuyoshi Nakada 4a6c7f8696 configure: always check for atomic/sync builtins [Bug #17787]
Non-gcc compilers tend to have this intrinsic these days, e.g. xlc
has `__sync` builtins.
2021-04-10 16:05:01 +09:00
Nobuyoshi Nakada 8b7cab70eb configure: try `-fdeclspec` option by linking [Bug #17787]
A workaround for `-f` option of AIX xlc compiler which works only
on linking.
2021-04-10 16:05:01 +09:00
Kazuhiro NISHIYAMA 9713acd731
Fix `coroutine_type` variable name 2021-03-30 20:58:34 +09:00
Samuel Williams b507f65d44 Support for native riscv64 coroutines. 2021-03-30 19:23:17 +13:00
Nobuyoshi Nakada 1f08b0d18d
Removed dln_a_out
a.out format is considered extinct nowadays.
2021-03-24 20:13:55 +09:00
Yusuke Endoh 1c6f5ca4d4 configure.ac: enable FORCE_FILESYSTEM for Emscripten 2021-03-20 03:04:55 +09:00