ruby-changes:51229
From: Hi <ko1@a...>
Date: Tue, 15 May 2018 19:15:15 +0900 (JST)
Subject: [ruby-changes:51229] Re: normal:r63435 (trunk): vm_core.h (rb_execution_context_t): interrupt_mask size to match interrupt_flag
Hi normal.
I got following error with r63435.
```
make: Entering directory '/Users/hsbt/Documents/
github.com/ruby/ruby/.x86_64-darwin'
BASERUBY = /Users/hsbt/.rbenv/shims/ruby --disable=gems
CC = clang
LD = ld
LDSHARED = clang -dynamic -bundle
CFLAGS = -O3 -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses
-Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare
-Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign
-Wunused-variable -Werror=implicit-int -Werror=pointer-arith
-Werror=write-strings -Werror=declaration-after-statement
-Werror=shorten-64-to-32 -Werror=implicit-function-declaration
-Werror=division-by-zero -Werror=deprecated-declarations
-Wno-overlength-strings -Wmissing-noreturn -Werror=extra-tokens -pipe
XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow
-DRUBY_DEVEL=1 -fvisibility=hidden -DRUBY_EXPORT -fPIE
-DCANONICALIZATION_FOR_MATHN
CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT
-D_REENTRANT -I. -I.ext/include/x86_64-darwin17 -I../include -I..
-I../enc/unicode/10.0.0
DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress
-fstack-protector -Wl,-pie -framework Foundation
SOLIBS = -lpthread -lgmp -ldl -lobjc
LANG =
LC_ALL =
LC_CTYPE = UTF-8
Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.6.0
Thread model: posix
InstalledDir:
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
compiling ../signal.c
generating prelude.c
../signal.c:1035:26: error: implicit conversion loses integer precision:
'volatile unsigned long' to 'rb_atomic_t' (aka 'unsigned int')
[-Werror,-Wshorten-64-to-32]
ec->interrupt_mask = old_interrupt_mask;
~ ^~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [Makefile:394: signal.o] Error 1
make: *** Waiting for unfinished jobs....
prelude.c unchanged
make: Leaving directory '/Users/hsbt/Documents/
github.com/ruby/ruby/.x86_64-darwin'
```
Please confirm it.
On Tue, May 15, 2018 at 7:11 PM <normal@r...> wrote:
> normal 2018-05-15 19:11:32 +0900 (Tue, 15 May 2018)
> New Revision: 63435
https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=63435
> Log:
> vm_core.h (rb_execution_context_t): interrupt_mask size to match
interrupt_flag
> rb_atomic_t is 32-bit on 64-bit platforms (including the popular
> x86-64 Linux), so save 4 bytes on this structure. This doesn't
> result in any final size reduction due to padding, yet, but
> future changes are possible to shrink rb_execution_context_t
> Modified files:
> trunk/vm_core.h
--
SHIBATA Hiroshi hsbt@r...
http://www.hsbt.org/
Index: vm_core.h
===================================================================
--- vm_core.h (revision 63434)
+++ vm_core.h (revision 63435)
@@ -787,7 +787,7 @@ typedef struct rb_execution_context_stru https://github.com/ruby/ruby/blob/trunk/vm_core.h#L787
/* interrupt flags */
rb_atomic_t interrupt_flag;
- unsigned long interrupt_mask;
+ rb_atomic_t interrupt_mask; /* size should match flag */
rb_fiber_t *fiber_ptr;
struct rb_thread_struct *thread_ptr;
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/