mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
time: only use packed struct on x86*
* configure.in: define PACKED_STRUCT_UNALIGNED for x86* * timev.h (struct vtm): use PACKED_STRUCT_UNALIGNED * time.c (struct time_object): ditto [Bug #9558] non-x86 cannot safely access unaligned addresses git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
fa7b849f94
commit
131e4bec04
4 changed files with 13 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
|||
Mon Feb 24 20:05:41 2014 Eric Wong <e@80x24.org>
|
||||
|
||||
* configure.in: define PACKED_STRUCT_UNALIGNED for x86*
|
||||
* timev.h (struct vtm): use PACKED_STRUCT_UNALIGNED
|
||||
* time.c (struct time_object): ditto
|
||||
[Bug #9558] non-x86 cannot safely access unaligned addresses
|
||||
|
||||
Mon Feb 24 18:10:02 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
|
||||
|
||||
* test/fiddle/test_function.rb: remove unused variables.
|
||||
|
|
|
@ -1277,8 +1277,12 @@ AC_CACHE_CHECK(packed struct attribute, rb_cv_packed_struct,
|
|||
[rb_cv_packed_struct=yes], [rb_cv_packed_struct=no])])
|
||||
if test "$rb_cv_packed_struct" = yes; then
|
||||
AC_DEFINE_UNQUOTED(PACKED_STRUCT, __attribute__((packed)))
|
||||
AS_CASE(["$target_cpu"],
|
||||
[x86*|x?86], [AC_DEFINE_UNQUOTED(PACKED_STRUCT_UNALIGNED, PACKED_STRUCT)],
|
||||
[AC_DEFINE_UNQUOTED(PACKED_STRUCT_UNALIGNED,)])
|
||||
else
|
||||
AC_DEFINE_UNQUOTED(PACKED_STRUCT,)
|
||||
AC_DEFINE_UNQUOTED(PACKED_STRUCT_UNALIGNED,)
|
||||
fi
|
||||
|
||||
AC_DEFUN([RUBY_CHECK_PRINTF_PREFIX], [
|
||||
|
|
2
time.c
2
time.c
|
@ -1745,7 +1745,7 @@ struct time_object {
|
|||
struct vtm vtm;
|
||||
uint8_t gmt:3; /* 0:utc 1:localtime 2:fixoff 3:init */
|
||||
uint8_t tm_got:1;
|
||||
} PACKED_STRUCT;
|
||||
} PACKED_STRUCT_UNALIGNED;
|
||||
|
||||
#define GetTimeval(obj, tobj) ((tobj) = get_timeval(obj))
|
||||
#define GetNewTimeval(obj, tobj) ((tobj) = get_new_timeval(obj))
|
||||
|
|
2
timev.h
2
timev.h
|
@ -14,7 +14,7 @@ struct vtm {
|
|||
uint8_t sec:6; /* 0..60 */
|
||||
uint8_t wday:3; /* 0:Sunday, 1:Monday, ..., 6:Saturday 7:init */
|
||||
uint8_t isdst:2; /* 0:StandardTime 1:DayLightSavingTime 3:init */
|
||||
} PACKED_STRUCT;
|
||||
} PACKED_STRUCT_UNALIGNED;
|
||||
|
||||
#define TIME_SCALE 1000000000
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue