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: Importing inttypes methods from FreeBSD


So, instead of xlocale_private.h, can we use reent.h for thread local
locale information ?  Previously i had ported the code from mingw-w64,
and it was working. Can we use that ported code here ?

Thanks & Regards,
Aditya Upadhyay



On Wed, Jul 12, 2017 at 10:30 AM, Aditya Upadhyay <aadit0402@gmail.com> wrote:
> Can i port these methods from mingw-w64 libraries ?.
> Previousl i had ported these methods for rtems and it was working well.
>
> On Tue, Jul 11, 2017 at 2:36 PM, Corinna Vinschen <vinschen@redhat.com> wrote:
>> On Jul 11 08:58, Aditya Upadhyay wrote:
>>> Hello Developers,
>>>
>>> I have ported these inttypes methods from FreeBSD. I am requesting you
>>> to please review the same and suggest me changes.
>>
> I am sorry for a big gap. I was not feeling well and .
>
> I had  ported these inttypes methods from mingw-w64 libraries
> previously. it was working well for rtems and Testsuite for these
> methods, psxinttypes01 was also working.But after suggestion, i have
> ported these methods from FreeBSD. I have used xlocale_private.h which
> is differently implemented in newlib already. Corinna suggested me to
> use reent.h.
>
>
>
>> Nope, sorry, patch 3 is no-go.  Adding the infrastructure from
>> xlocale_private.h is not the right thing to do.  You're adding a
>> completely new way of doing stuff, which is differently implemented
>> in newlib already.  The thread-local stuff is in the reent struct,
>> which also points to thread local locale info.  States for
>> multibyte/wide char conversion are already kept in reent.  Use those.
>> If something's missing, add it there.
>>
>>> diff --git a/newlib/libc/stdlib/Makefile.am b/newlib/libc/stdlib/Makefile.am
>>> index ebae00a..bf44953 100644
>>> --- a/newlib/libc/stdlib/Makefile.am
>>> +++ b/newlib/libc/stdlib/Makefile.am
>>> @@ -33,6 +33,7 @@ GENERAL_SOURCES = \
>>>       getenv.c        \
>>>       getenv_r.c      \
>>>       itoa.c          \
>>> +        imaxabs.c       \
>>
>> tab, not spaces
>>
>>>       labs.c          \
>>>       ldiv.c          \
>>>       ldtoa.c         \
>>> [...]
>>> From: Aditya Upadhyay <aadit0402@gmail.com>
>>> Date: Mon, 10 Jul 2017 18:41:38 +0530
>>> Subject: [PATCH 2/4] Importing imaxdiv inttypes method from FreeBSD.
>>>
>>> ---
>>>  newlib/libc/stdlib/Makefile.am |  1 +
>>>  newlib/libc/stdlib/imaxdiv.c   | 44 ++++++++++++++++++++++++++++++++++++++++++
>>>  2 files changed, 45 insertions(+)
>>>  create mode 100644 newlib/libc/stdlib/imaxdiv.c
>>>
>>> diff --git a/newlib/libc/stdlib/Makefile.am b/newlib/libc/stdlib/Makefile.am
>>> index bf44953..5a50c3a 100644
>>> --- a/newlib/libc/stdlib/Makefile.am
>>> +++ b/newlib/libc/stdlib/Makefile.am
>>> @@ -34,6 +34,7 @@ GENERAL_SOURCES = \
>>>       getenv_r.c      \
>>>       itoa.c          \
>>>          imaxabs.c       \
>>> +        imaxdiv.c       \
>>
>> Same here
>>
>>>       labs.c          \
>>>       ldiv.c          \
>>>       ldtoa.c         \
>>
>>> From 1e914a2098de912d3d0e8c2fb350dd4f9f9b5435 Mon Sep 17 00:00:00 2001
>>> From: Aditya Upadhyay <aadit0402@gmail.com>
>>> Date: Tue, 11 Jul 2017 08:32:42 +0530
>>> Subject: [PATCH 4/4] Importing strtoimax inttypes methods from FreeBSD.
>>>
>>> ---
>>>  newlib/libc/locale/Makefile.am | 2 +-
>>>  newlib/libc/stdlib/Makefile.am | 1 +
>>>  newlib/libc/stdlib/strtoimax.c | 0
>>>  3 files changed, 2 insertions(+), 1 deletion(-)
>>>  create mode 100644 newlib/libc/stdlib/strtoimax.c
>>>
>>> diff --git a/newlib/libc/locale/Makefile.am b/newlib/libc/locale/Makefile.am
>>> index 7312654..5f00d72 100644
>>> --- a/newlib/libc/locale/Makefile.am
>>> +++ b/newlib/libc/locale/Makefile.am
>>> @@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = cygnus
>>>
>>>  INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
>>>
>>> -GENERAL_SOURCES = setlocale.h locale.c localeconv.c
>>> +GENERAL_SOURCES = setlocale.h locale.c localeconv.c xlocale_private.h
>>>
>>>  ## The following interfaces are EL/IX level 2
>>>  if ELIX_LEVEL_1
>>> diff --git a/newlib/libc/stdlib/Makefile.am b/newlib/libc/stdlib/Makefile.am
>>> index 5a50c3a..0f05154 100644
>>> --- a/newlib/libc/stdlib/Makefile.am
>>> +++ b/newlib/libc/stdlib/Makefile.am
>>> @@ -59,6 +59,7 @@ GENERAL_SOURCES = \
>>>       sb_charsets.c   \
>>>       strtod.c        \
>>>       strtodg.c       \
>>> +        strtoimax.c     \
>>
>> Same here
>>
>>>       strtol.c        \
>>>       strtorx.c       \
>>>       strtoul.c       \
>>> diff --git a/newlib/libc/stdlib/strtoimax.c b/newlib/libc/stdlib/strtoimax.c
>>> new file mode 100644
>>> index 0000000..e69de29
>>
>> The function is missing.  If it uses the new code from xlocale_private.h,
>> you'll have to reevaluate.
>>
>>
>> Corinna
>>
>> --
>> Corinna Vinschen
>> Cygwin Maintainer
>> Red Hat


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