* [musl] [PATCH 1/2] define __STDC_UTF_{16,32}__ macros @ 2021-04-16 0:35 Érico Nogueira 2021-04-16 0:35 ` [musl] [PATCH 2/2] include <stdc-predef.h> in <features.h> Érico Nogueira 0 siblings, 1 reply; 8+ messages in thread From: Érico Nogueira @ 2021-04-16 0:35 UTC (permalink / raw) To: musl; +Cc: Érico Nogueira these macros are used to indicate that the implementation uses, respectively, utf-16 and utf-32 encoding for char16_t and char32_t. --- include/stdc-predef.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/stdc-predef.h b/include/stdc-predef.h index f8cd4b89..af1a2799 100644 --- a/include/stdc-predef.h +++ b/include/stdc-predef.h @@ -7,4 +7,7 @@ #define __STDC_IEC_559__ 1 #endif +#define __STDC_UTF_16__ 1 +#define __STDC_UTF_32__ 1 + #endif -- 2.31.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [musl] [PATCH 2/2] include <stdc-predef.h> in <features.h> 2021-04-16 0:35 [musl] [PATCH 1/2] define __STDC_UTF_{16,32}__ macros Érico Nogueira @ 2021-04-16 0:35 ` Érico Nogueira 2021-04-16 14:26 ` Rich Felker 0 siblings, 1 reply; 8+ messages in thread From: Érico Nogueira @ 2021-04-16 0:35 UTC (permalink / raw) To: musl; +Cc: Érico Nogueira GCC source code does contain a function to pre-include the <stdc-predef.h> header for glibc targets, but even so glibc still includes it in their own <features.h> header. furthermore, even if GCC implemented this for musl targets, it is still necessary for other compilers or previous versions of GCC. --- include/features.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/features.h b/include/features.h index 85cfb72a..f3d53cbe 100644 --- a/include/features.h +++ b/include/features.h @@ -1,6 +1,8 @@ #ifndef _FEATURES_H #define _FEATURES_H +#include <stdc-predef.h> + #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) #define _GNU_SOURCE 1 #endif -- 2.31.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [musl] [PATCH 2/2] include <stdc-predef.h> in <features.h> 2021-04-16 0:35 ` [musl] [PATCH 2/2] include <stdc-predef.h> in <features.h> Érico Nogueira @ 2021-04-16 14:26 ` Rich Felker 2021-04-16 17:57 ` Érico Nogueira 0 siblings, 1 reply; 8+ messages in thread From: Rich Felker @ 2021-04-16 14:26 UTC (permalink / raw) To: Érico Nogueira; +Cc: musl On Thu, Apr 15, 2021 at 09:35:21PM -0300, Érico Nogueira wrote: > GCC source code does contain a function to pre-include the > <stdc-predef.h> header for glibc targets, but even so glibc still > includes it in their own <features.h> header. furthermore, even if GCC > implemented this for musl targets, it is still necessary for other > compilers or previous versions of GCC. > --- > include/features.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/include/features.h b/include/features.h > index 85cfb72a..f3d53cbe 100644 > --- a/include/features.h > +++ b/include/features.h > @@ -1,6 +1,8 @@ > #ifndef _FEATURES_H > #define _FEATURES_H > > +#include <stdc-predef.h> > + > #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) > #define _GNU_SOURCE 1 > #endif > -- > 2.31.1 I've hesitated to do this because features.h is not consistently included from all standard headers (only if it's needed), and the result would be inconsistent exposure of these macros. (Also inconsistent if they're checked before any standard headers are included, which is unfixable.) I think it makes more sense to just add "-include stdc-predef.h" to the compiler specfile or equivalent if it doesn't auto-include it, so that you get behavior that actually matches the spec. Rich ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [musl] [PATCH 2/2] include <stdc-predef.h> in <features.h> 2021-04-16 14:26 ` Rich Felker @ 2021-04-16 17:57 ` Érico Nogueira 2021-04-16 18:51 ` Rich Felker 0 siblings, 1 reply; 8+ messages in thread From: Érico Nogueira @ 2021-04-16 17:57 UTC (permalink / raw) To: Rich Felker; +Cc: musl Em 16/04/2021 11:26, Rich Felker escreveu: > On Thu, Apr 15, 2021 at 09:35:21PM -0300, Érico Nogueira wrote: >> GCC source code does contain a function to pre-include the >> <stdc-predef.h> header for glibc targets, but even so glibc still I seem to have been mistaken about the feature being glibc specific; using echo "" | cc -xc - -E it seems the file does end up being included automatically. However, when using clang instead of gcc, it isn't included automatically. I don't know if this is something that clang ought to fix, is there some sort of standard about <stdc-predef.h>? Michael Forney's cproc compiler doesn't seem to touch it either. >> includes it in their own <features.h> header. furthermore, even if GCC >> implemented this for musl targets, it is still necessary for other >> compilers or previous versions of GCC. >> --- >> include/features.h | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/include/features.h b/include/features.h >> index 85cfb72a..f3d53cbe 100644 >> --- a/include/features.h >> +++ b/include/features.h >> @@ -1,6 +1,8 @@ >> #ifndef _FEATURES_H >> #define _FEATURES_H >> >> +#include <stdc-predef.h> >> + >> #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) >> #define _GNU_SOURCE 1 >> #endif >> -- >> 2.31.1 > > I've hesitated to do this because features.h is not consistently > included from all standard headers (only if it's needed), and the > result would be inconsistent exposure of these macros. (Also > inconsistent if they're checked before any standard headers are > included, which is unfixable.) I think it makes more sense to just add > "-include stdc-predef.h" to the compiler specfile or equivalent if it > doesn't auto-include it, so that you get behavior that actually > matches the spec. Do you know if clang can use the specfile? That would make it worth it adding the entry, since GCC has the expected behavior already. > > Rich > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [musl] [PATCH 2/2] include <stdc-predef.h> in <features.h> 2021-04-16 17:57 ` Érico Nogueira @ 2021-04-16 18:51 ` Rich Felker 2021-04-16 22:12 ` James Y Knight 0 siblings, 1 reply; 8+ messages in thread From: Rich Felker @ 2021-04-16 18:51 UTC (permalink / raw) To: Érico Nogueira; +Cc: musl On Fri, Apr 16, 2021 at 02:57:21PM -0300, Érico Nogueira wrote: > Em 16/04/2021 11:26, Rich Felker escreveu: > >On Thu, Apr 15, 2021 at 09:35:21PM -0300, Érico Nogueira wrote: > >>GCC source code does contain a function to pre-include the > >><stdc-predef.h> header for glibc targets, but even so glibc still > > I seem to have been mistaken about the feature being glibc specific; using > > echo "" | cc -xc - -E > > it seems the file does end up being included automatically. > > However, when using clang instead of gcc, it isn't included > automatically. I don't know if this is something that clang ought to > fix, is there some sort of standard about <stdc-predef.h>? Michael > Forney's cproc compiler doesn't seem to touch it either. It's not a standard, but given that it's established I don't see any reasonable argument for other compilers not to just do the same. You can always fix them manually with CC="clang -include stdc-predef.h" or similar though. > >>includes it in their own <features.h> header. furthermore, even if GCC > >>implemented this for musl targets, it is still necessary for other > >>compilers or previous versions of GCC. > >>--- > >> include/features.h | 2 ++ > >> 1 file changed, 2 insertions(+) > >> > >>diff --git a/include/features.h b/include/features.h > >>index 85cfb72a..f3d53cbe 100644 > >>--- a/include/features.h > >>+++ b/include/features.h > >>@@ -1,6 +1,8 @@ > >> #ifndef _FEATURES_H > >> #define _FEATURES_H > >>+#include <stdc-predef.h> > >>+ > >> #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) > >> #define _GNU_SOURCE 1 > >> #endif > >>-- > >>2.31.1 > > > >I've hesitated to do this because features.h is not consistently > >included from all standard headers (only if it's needed), and the > >result would be inconsistent exposure of these macros. (Also > >inconsistent if they're checked before any standard headers are > >included, which is unfixable.) I think it makes more sense to just add > >"-include stdc-predef.h" to the compiler specfile or equivalent if it > >doesn't auto-include it, so that you get behavior that actually > >matches the spec. > > Do you know if clang can use the specfile? That would make it worth > it adding the entry, since GCC has the expected behavior already. No; specfiles are highly tied to GCC's compiler driver architecture. clang might have some other equivalent mechanism though. Rich ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [musl] [PATCH 2/2] include <stdc-predef.h> in <features.h> 2021-04-16 18:51 ` Rich Felker @ 2021-04-16 22:12 ` James Y Knight 2021-04-17 0:00 ` Rich Felker 0 siblings, 1 reply; 8+ messages in thread From: James Y Knight @ 2021-04-16 22:12 UTC (permalink / raw) To: musl; +Cc: Érico Nogueira [-- Attachment #1: Type: text/plain, Size: 2911 bytes --] Ugh, I thought Clang had added support for this years ago. But it looks like the change (https://reviews.llvm.org/D34158) never actually made it in; it ran into some test failures after being committed and was reverted, and then never reapplied. :( On Fri, Apr 16, 2021 at 2:51 PM Rich Felker <dalias@libc.org> wrote: > On Fri, Apr 16, 2021 at 02:57:21PM -0300, Érico Nogueira wrote: > > Em 16/04/2021 11:26, Rich Felker escreveu: > > >On Thu, Apr 15, 2021 at 09:35:21PM -0300, Érico Nogueira wrote: > > >>GCC source code does contain a function to pre-include the > > >><stdc-predef.h> header for glibc targets, but even so glibc still > > > > I seem to have been mistaken about the feature being glibc specific; > using > > > > echo "" | cc -xc - -E > > > > it seems the file does end up being included automatically. > > > > However, when using clang instead of gcc, it isn't included > > automatically. I don't know if this is something that clang ought to > > fix, is there some sort of standard about <stdc-predef.h>? Michael > > Forney's cproc compiler doesn't seem to touch it either. > > It's not a standard, but given that it's established I don't see any > reasonable argument for other compilers not to just do the same. You > can always fix them manually with CC="clang -include stdc-predef.h" or > similar though. > > > >>includes it in their own <features.h> header. furthermore, even if GCC > > >>implemented this for musl targets, it is still necessary for other > > >>compilers or previous versions of GCC. > > >>--- > > >> include/features.h | 2 ++ > > >> 1 file changed, 2 insertions(+) > > >> > > >>diff --git a/include/features.h b/include/features.h > > >>index 85cfb72a..f3d53cbe 100644 > > >>--- a/include/features.h > > >>+++ b/include/features.h > > >>@@ -1,6 +1,8 @@ > > >> #ifndef _FEATURES_H > > >> #define _FEATURES_H > > >>+#include <stdc-predef.h> > > >>+ > > >> #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) > > >> #define _GNU_SOURCE 1 > > >> #endif > > >>-- > > >>2.31.1 > > > > > >I've hesitated to do this because features.h is not consistently > > >included from all standard headers (only if it's needed), and the > > >result would be inconsistent exposure of these macros. (Also > > >inconsistent if they're checked before any standard headers are > > >included, which is unfixable.) I think it makes more sense to just add > > >"-include stdc-predef.h" to the compiler specfile or equivalent if it > > >doesn't auto-include it, so that you get behavior that actually > > >matches the spec. > > > > Do you know if clang can use the specfile? That would make it worth > > it adding the entry, since GCC has the expected behavior already. > > No; specfiles are highly tied to GCC's compiler driver architecture. > clang might have some other equivalent mechanism though. > > Rich > [-- Attachment #2: Type: text/html, Size: 3813 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [musl] [PATCH 2/2] include <stdc-predef.h> in <features.h> 2021-04-16 22:12 ` James Y Knight @ 2021-04-17 0:00 ` Rich Felker 2021-04-17 1:56 ` James Y Knight 0 siblings, 1 reply; 8+ messages in thread From: Rich Felker @ 2021-04-17 0:00 UTC (permalink / raw) To: James Y Knight; +Cc: musl, Érico Nogueira On Fri, Apr 16, 2021 at 06:12:52PM -0400, James Y Knight wrote: > Ugh, I thought Clang had added support for this years ago. But it looks > like the change (https://reviews.llvm.org/D34158) never actually made it > in; it ran into some test failures after being committed and was > reverted, and then never reapplied. :( The story of LLVM.. Random junk getting committed and kept, actually important and correct changes getting reverted because of bogus tests. Rich > On Fri, Apr 16, 2021 at 2:51 PM Rich Felker <dalias@libc.org> wrote: > > > On Fri, Apr 16, 2021 at 02:57:21PM -0300, Érico Nogueira wrote: > > > Em 16/04/2021 11:26, Rich Felker escreveu: > > > >On Thu, Apr 15, 2021 at 09:35:21PM -0300, Érico Nogueira wrote: > > > >>GCC source code does contain a function to pre-include the > > > >><stdc-predef.h> header for glibc targets, but even so glibc still > > > > > > I seem to have been mistaken about the feature being glibc specific; > > using > > > > > > echo "" | cc -xc - -E > > > > > > it seems the file does end up being included automatically. > > > > > > However, when using clang instead of gcc, it isn't included > > > automatically. I don't know if this is something that clang ought to > > > fix, is there some sort of standard about <stdc-predef.h>? Michael > > > Forney's cproc compiler doesn't seem to touch it either. > > > > It's not a standard, but given that it's established I don't see any > > reasonable argument for other compilers not to just do the same. You > > can always fix them manually with CC="clang -include stdc-predef.h" or > > similar though. > > > > > >>includes it in their own <features.h> header. furthermore, even if GCC > > > >>implemented this for musl targets, it is still necessary for other > > > >>compilers or previous versions of GCC. > > > >>--- > > > >> include/features.h | 2 ++ > > > >> 1 file changed, 2 insertions(+) > > > >> > > > >>diff --git a/include/features.h b/include/features.h > > > >>index 85cfb72a..f3d53cbe 100644 > > > >>--- a/include/features.h > > > >>+++ b/include/features.h > > > >>@@ -1,6 +1,8 @@ > > > >> #ifndef _FEATURES_H > > > >> #define _FEATURES_H > > > >>+#include <stdc-predef.h> > > > >>+ > > > >> #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) > > > >> #define _GNU_SOURCE 1 > > > >> #endif > > > >>-- > > > >>2.31.1 > > > > > > > >I've hesitated to do this because features.h is not consistently > > > >included from all standard headers (only if it's needed), and the > > > >result would be inconsistent exposure of these macros. (Also > > > >inconsistent if they're checked before any standard headers are > > > >included, which is unfixable.) I think it makes more sense to just add > > > >"-include stdc-predef.h" to the compiler specfile or equivalent if it > > > >doesn't auto-include it, so that you get behavior that actually > > > >matches the spec. > > > > > > Do you know if clang can use the specfile? That would make it worth > > > it adding the entry, since GCC has the expected behavior already. > > > > No; specfiles are highly tied to GCC's compiler driver architecture. > > clang might have some other equivalent mechanism though. > > > > Rich > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [musl] [PATCH 2/2] include <stdc-predef.h> in <features.h> 2021-04-17 0:00 ` Rich Felker @ 2021-04-17 1:56 ` James Y Knight 0 siblings, 0 replies; 8+ messages in thread From: James Y Knight @ 2021-04-17 1:56 UTC (permalink / raw) To: Rich Felker; +Cc: musl, Érico Nogueira [-- Attachment #1: Type: text/plain, Size: 3523 bytes --] Super unnecessary snarkiness. On Fri, Apr 16, 2021, 8:00 PM Rich Felker <dalias@libc.org> wrote: > On Fri, Apr 16, 2021 at 06:12:52PM -0400, James Y Knight wrote: > > Ugh, I thought Clang had added support for this years ago. But it looks > > like the change (https://reviews.llvm.org/D34158) never actually made it > > in; it ran into some test failures after being committed and was > > reverted, and then never reapplied. :( > > The story of LLVM.. Random junk getting committed and kept, actually > important and correct changes getting reverted because of bogus tests. > > Rich > > > On Fri, Apr 16, 2021 at 2:51 PM Rich Felker <dalias@libc.org> wrote: > > > > > On Fri, Apr 16, 2021 at 02:57:21PM -0300, Érico Nogueira wrote: > > > > Em 16/04/2021 11:26, Rich Felker escreveu: > > > > >On Thu, Apr 15, 2021 at 09:35:21PM -0300, Érico Nogueira wrote: > > > > >>GCC source code does contain a function to pre-include the > > > > >><stdc-predef.h> header for glibc targets, but even so glibc still > > > > > > > > I seem to have been mistaken about the feature being glibc specific; > > > using > > > > > > > > echo "" | cc -xc - -E > > > > > > > > it seems the file does end up being included automatically. > > > > > > > > However, when using clang instead of gcc, it isn't included > > > > automatically. I don't know if this is something that clang ought to > > > > fix, is there some sort of standard about <stdc-predef.h>? Michael > > > > Forney's cproc compiler doesn't seem to touch it either. > > > > > > It's not a standard, but given that it's established I don't see any > > > reasonable argument for other compilers not to just do the same. You > > > can always fix them manually with CC="clang -include stdc-predef.h" or > > > similar though. > > > > > > > >>includes it in their own <features.h> header. furthermore, even if > GCC > > > > >>implemented this for musl targets, it is still necessary for other > > > > >>compilers or previous versions of GCC. > > > > >>--- > > > > >> include/features.h | 2 ++ > > > > >> 1 file changed, 2 insertions(+) > > > > >> > > > > >>diff --git a/include/features.h b/include/features.h > > > > >>index 85cfb72a..f3d53cbe 100644 > > > > >>--- a/include/features.h > > > > >>+++ b/include/features.h > > > > >>@@ -1,6 +1,8 @@ > > > > >> #ifndef _FEATURES_H > > > > >> #define _FEATURES_H > > > > >>+#include <stdc-predef.h> > > > > >>+ > > > > >> #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) > > > > >> #define _GNU_SOURCE 1 > > > > >> #endif > > > > >>-- > > > > >>2.31.1 > > > > > > > > > >I've hesitated to do this because features.h is not consistently > > > > >included from all standard headers (only if it's needed), and the > > > > >result would be inconsistent exposure of these macros. (Also > > > > >inconsistent if they're checked before any standard headers are > > > > >included, which is unfixable.) I think it makes more sense to just > add > > > > >"-include stdc-predef.h" to the compiler specfile or equivalent if > it > > > > >doesn't auto-include it, so that you get behavior that actually > > > > >matches the spec. > > > > > > > > Do you know if clang can use the specfile? That would make it worth > > > > it adding the entry, since GCC has the expected behavior already. > > > > > > No; specfiles are highly tied to GCC's compiler driver architecture. > > > clang might have some other equivalent mechanism though. > > > > > > Rich > > > > [-- Attachment #2: Type: text/html, Size: 4906 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-04-17 1:56 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-04-16 0:35 [musl] [PATCH 1/2] define __STDC_UTF_{16,32}__ macros Érico Nogueira 2021-04-16 0:35 ` [musl] [PATCH 2/2] include <stdc-predef.h> in <features.h> Érico Nogueira 2021-04-16 14:26 ` Rich Felker 2021-04-16 17:57 ` Érico Nogueira 2021-04-16 18:51 ` Rich Felker 2021-04-16 22:12 ` James Y Knight 2021-04-17 0:00 ` Rich Felker 2021-04-17 1:56 ` James Y Knight
Code repositories for project(s) associated with this public inbox https://git.vuxu.org/mirror/musl/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).