This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
RE: selective linking of floating point support for *printf / *scanf
- From: "Thomas Preud'homme" <thomas dot preudhomme at arm dot com>
- To: "'Grissiom'" <chaos dot proton at gmail dot com>, "Eric Blake" <eblake at redhat dot com>
- Cc: "Joern Rennecke" <joern dot rennecke at embecosm dot com>, "GCC" <gcc at gcc dot gnu dot org>, "Joerg Wunsch" <joerg_wunsch at uriah dot heep dot sax dot de>, <avr-libc-dev at nongnu dot org>, "Andrew Burgess" <andrew dot burgess at embecosm dot com>, <newlib at sourceware dot org>
- Date: Sat, 30 Aug 2014 12:26:51 +0800
- Subject: RE: selective linking of floating point support for *printf / *scanf
- Authentication-results: sourceware.org; auth=none
- References: <CAMqJFCpWKXVmmc-YLKf9XO6H8C_YnTEcgzkJAidE21MirJbi-w at mail dot gmail dot com> <001401cfc0f9$bdc5cbc0$39516340$ at arm dot com> <CAMqJFCrEOgavwvW25vO=S-+0TZ_xOnDa0Ex-Ff4XG329K5WE9g at mail dot gmail dot com> <001901cfc1c4$d0678630$71369290$ at arm dot com> <CAMqJFCoFC8sVRQB3+v4dzSVc5LLs9cycjm621FmM34gGHRWFng at mail dot gmail dot com> <000001cfc1e3$7f1a22f0$7d4e68d0$ at arm dot com> <CAMqJFCo1EA8TLVsv=r7gW-udiH6pqBKVuQUvHeGcFDqrnMo_EQ at mail dot gmail dot com> <000101cfc281$3a3008f0$ae901ad0$ at arm dot com> <CAMqJFCrrj1_VHmz7G-VgDpLNGjsTtdjPLqbCRY1oVxeO-BESHw at mail dot gmail dot com> <000201cfc34f$1ceadb20$56c09160$ at arm dot com> <54007E28 dot 6090106 at redhat dot com> <CALC6sNDiJ+EOjTasMj2YCQmq10mVQrZKKsaUurhjQe=Zbn435g at mail dot gmail dot com>
> From: Grissiom [mailto:chaos.proton@gmail.com]
> Sent: Friday, August 29, 2014 11:51 PM
>
> Yes, it does. The namespace reserved for the implementation is _[_A-Z].
> The namespace _[a-z] is still available for the user. Which means the
> user can declare their own _printf_float, and WE (as the implementation)
> MUST NOT INTERFERE with it. Since WE are the implementation, we should
> use the namespace reserved for us, namely __printf_float.
Mmmh indeed. I checked C99 and section 7.1.3 paragraph 1 third clause states:
"All identifiers that begin with an underscore and either an uppercase letter or
another underscore are always reserved for any use."
Next clause express how single underscore not followed by a capital letter is
reserved:
"All identifiers that begin with an underscore are always reserved for use as identifiers
with file scope in both the ordinary and tag name spaces."
Since here we are talking about linkage, _printf_float is not safe according to the
standard.
Sigh.
Ok I need to think about it. Thank you all for pointing out the problem with the
current scheme.
Best regards,
Thomas