This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Default libm mode is XOPEN?


On 7/7/2014 1:19 PM, Corinna Vinschen wrote:
> On Jul  7 11:07, Joel Sherrill wrote:
>> On 7/7/2014 8:26 AM, Corinna Vinschen wrote:
>>> On Jul  3 16:29, Kyrill Tkachov wrote:
>>>> Hi all,
>>>>
>>>> Looking at newlib/libm/common/fdlibm.h I see the lines:
>>>>
>>>> /* REDHAT LOCAL: Default to XOPEN_MODE.  */
>>>> #define _XOPEN_MODE
>>>>
>>>> Building an aarch64-none-elf compiler with newlib, the following test
>>>> program:
>>>> #include <stdio.h>
>>>> #include <math.h>
>>>>
>>>> int
>>>> main (void)
>>>> {
>>>>   printf ("_LIB_VERSION: %d\n", _LIB_VERSION);
>>>>   printf ("_XOPEN_: %d\n", _XOPEN_);
>>>>   return 0;
>>>> }
>>>>
>>>> produces:
>>>> _LIB_VERSION: 1
>>>> _XOPEN_: 1
>>>>
>>>>
>>>> Is this /* REDHAT LOCAL: Default to XOPEN_MODE.  */ really intentional for
>>>> all users of newlib?
>>>> I thought IEEE was supposed to be the default one. Or are targets expected
>>>> to override this?
>>> It might be pretty tricky to track down why this was done.  _XOPEN_MODE
>>> was defined in fdlibm.h since the introduction of the public CVS
>>> repository back in 2000.  The definition doesn't show up in the
>>> ChangeLog at all, so this change dates back to at least 1995.
>>>
>>> OTOH, changing this now would potentially break a lot of targets.
>>> We might have to introduce some workaround if there's an actual need.
>> Although this is not is the oldest version of the file,
>> the official fdlibm source does not include this definition.
>>
>> http://www.netlib.org/fdlibm/fdlibm.h
> Yeah, I was looking for the newlib archives and ChangeLog only.
>
>> [...]
>> I agree with you that 20+ years of being in place, it is
>> scary to change.  But I only see two references to
>> _XOPEN_MODE. Once to define it and another in s_lib_ver.c
>> to set _LIB_VERSION.  I guess the question is whether this is
>> truth or lying about the fdlibm/newlib implementation.
> It's more than that.  _LIB_VERSION is tested a lot throughout the code :(
I will admit to only having spot checked but does this impact
anything other than how various error situations are reported?

Is this something that someone can change at run-time?
If not, a serious concern is whether this is turning on code which
has been unused for years.

I guess I agree in principle that IEEE is preferable but the impact
of the change is unknown.
>
> Corinna
>

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill@OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]