[#70843] Re: [ruby-cvs:58952] hsbt:r51801 (trunk): * lib/rubygems: Update to RubyGems HEAD(fe61e4c112). — Eric Wong <normalperson@...>
hsbt@ruby-lang.org wrote:
3 messages
2015/09/17
[ruby-core:70707] [Ruby trunk - Bug #11483] internal.h included after math.h in complex.c
From:
Rei.Odaira@...
Date:
2015-09-09 21:36:31 UTC
List:
ruby-core #70707
Issue #11483 has been updated by Rei Odaira. Possible options: 1. Define M_PI and M_PI_2 in complex.c 2. Define _LARGE_FILES not in config.h but in a compiler option 3. Include ruby/config.h before math.h but keep internal.h included after math.h in complex.c 4. Any other options? Option 3 looks reasonable if it is allowed to directly include ruby/config.h. ---------------------------------------- Bug #11483: internal.h included after math.h in complex.c https://bugs.ruby-lang.org/issues/11483#change-54096 * Author: Rei Odaira * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0dev (2015-08-23 trunk 51669) [powerpc-aix7.1.2.0] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- r51313 modified complex.c to include internal.h after math.h, so that ruby/missing.h (included from internal.h) can test whether `M_PI` is defined or not in math.h. Unfortunately, ruby/config.h, which is included from internal.h, defines `_LARGE_FILES`, which must be defined before sys/types.h is included from math.h. Otherwise, in AIX, `off_t` would be incorrectly defined as a 32-bit integer even when large files are used. ~~~diff --- complex.c (revision 51312) +++ complex.c (revision 51313) @@ -5,12 +5,12 @@ which is written in ruby. */ -#include "internal.h" #if defined _MSC_VER /* Microsoft Visual C does not define M_PI and others by default */ # define _USE_MATH_DEFINES 1 #endif #include <math.h> +#include "internal.h" #define NDEBUG #include <assert.h> ~~~ There would be a couple of workarounds to fix this problem, but since I am relatively new to the Ruby core, I am wondering what would be the most acceptable way. -- https://bugs.ruby-lang.org/