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
@ -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))
|
||||
|
Loading…
x
Reference in New Issue
Block a user