Skip to content

Commit

Permalink
Merge pull request #3712 from citrus-it/gcc14
Browse files Browse the repository at this point in the history
gcc10/14: add support for kernel %j and %z
  • Loading branch information
oetiker authored Oct 17, 2024
2 parents 2c832a7 + e1efae6 commit a857296
Show file tree
Hide file tree
Showing 11 changed files with 135 additions and 45 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
From 640cc111a1e8f2ea03f773ccf4619b66dddbb5e4 Mon Sep 17 00:00:00 2001
From: Andy Fiddaman <illumos@fiddaman.net>
Date: Tue, 15 Oct 2024 15:31:19 +0000
Subject: 16768 kernel printf should know about %j and %z size
specifiers

---
gcc/config/sol2-c.c | 9 +++++----
gcc/testsuite/gcc.dg/format/cmn-err-1.c | 4 ++++
2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/gcc/config/sol2-c.c b/gcc/config/sol2-c.c
index 5419e0436944..037baa604131 100644
--- a/gcc/config/sol2-c.c
+++ b/gcc/config/sol2-c.c
@@ -37,6 +37,8 @@ static const format_length_info cmn_err_length_specs[] =
{
{ "h", FMT_LEN_h, STD_C89, "hh", FMT_LEN_hh, STD_C99, 0 },
{ "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C89, 0 },
+ { "j", FMT_LEN_j, STD_C99, NO_FMT, 0 },
+ { "z", FMT_LEN_z, STD_C99, NO_FMT, 0 },
{ NO_FMT, NO_FMT, 0 }
};

@@ -63,10 +65,9 @@ static const format_char_info bitfield_string_type =
static const format_char_info cmn_err_char_table[] =
{
/* none hh h l ll L z t j H D DD */
- /* C89 conversion specifiers. */
- { "dD", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
- { "oOxX",0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
- { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
+ { "dD", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, BADLEN, T99_SST, BADLEN, T99_IM , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
+ { "oOxX",0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, T99_ST, BADLEN, T99_UIM, BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
+ { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, T99_ST, BADLEN, T99_UIM, BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
{ "c", 0, STD_C89, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-w", "", NULL },
{ "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-w", "c", NULL },
{ "s", 1, STD_C89, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp", "cR", NULL },
diff --git a/gcc/testsuite/gcc.dg/format/cmn-err-1.c b/gcc/testsuite/gcc.dg/format/cmn-err-1.c
index f6833c1723ad..cbb4a1f927c3 100644
--- a/gcc/testsuite/gcc.dg/format/cmn-err-1.c
+++ b/gcc/testsuite/gcc.dg/format/cmn-err-1.c
@@ -19,6 +19,8 @@ int main()
llong ll = 3;
char hh = 4;
short h = 5;
+ size_t z = 6;
+ uintmax_t j = 7;

cmn_err_func (0, "%s", string);
cmn_err_func (0, "%d %D %o %O %x %X %u", i, i, i, i, i, i, i);
@@ -28,6 +30,8 @@ int main()
cmn_err_func (0, "%hd %hD %ho %hO %hx %hX %hu", h, h, h, h, h, h, h);
cmn_err_func (0, "%hhd %hhD %hho %hhO %hhx %hhX %hhu",
hh, hh, hh, hh, hh, hh, hh);
+ cmn_err_func (0, "%jd %jD %jo %jO %jx %jX %ju", j, j, j, j, j, j, j);
+ cmn_err_func (0, "%zd %zD %zo %zO %zx %zX %zu", z, z, z, z, z, z, z);
cmn_err_func (0, "%b %s", i, "\01Foo", string);
cmn_err_func (0, "%p", string);
cmn_err_func (0, "%16b", i, "\01Foo");
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
From 28faf43be064f62ab42667a25bd626ba6f123d6a Mon Sep 17 00:00:00 2001
From 0573580c97961bf1dbfcce097e55c1e842c3f65d Mon Sep 17 00:00:00 2001
From: Andy Fiddaman <omnios@citrus-it.co.uk>
Date: Thu, 9 May 2019 13:43:30 +0000
Subject: OOCE: Adjust default library paths for OmniOS
Expand Down
3 changes: 2 additions & 1 deletion build/gcc10/patches/series
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,5 @@
0035-Add-__illumos__-preprocessor-definition.patch
0036-libstdc-must-use-thread-local-errno.patch
0037-cmn_err-supports-h-and-hh.patch
0038-OOCE-Adjust-default-library-paths-for-OmniOS.patch
0038-16768-kernel-printf-should-know-about-j-and-z-size-s.patch
0039-OOCE-Adjust-default-library-paths-for-OmniOS.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 149234da943fc19aae4c28ee4ef929e415343e6a Mon Sep 17 00:00:00 2001
From 53556e7d196e6324ea8d25a8c8b52658bc5a691f Mon Sep 17 00:00:00 2001
From: Andy Fiddaman <omnios@citrus-it.co.uk>
Date: Wed, 28 Apr 2021 11:40:25 +0000
Subject: Add __illumos__ preprocessor definition
Subject: 13726 distinguish ourselves with a macro (__illumos__)

---
gcc/config/sol2.h | 1 +
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
From 15c372f78138a2c573e9ed1b412195bac48757bf Mon Sep 17 00:00:00 2001
From 09e1d8748f9321bae39811e0f51683d330098cf0 Mon Sep 17 00:00:00 2001
From: Andy Fiddaman <omnios@citrus-it.co.uk>
Date: Tue, 31 Aug 2021 21:40:48 +0000
Subject: libstdc++ must use thread-local errno
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
From c648d8a007254714bf296644703023690d426398 Mon Sep 17 00:00:00 2001
From 64ba9e2b65c4de514f95c469691d7fcdae171b1a Mon Sep 17 00:00:00 2001
From: Andy Fiddaman <illumos@fiddaman.net>
Date: Wed, 26 Oct 2022 12:53:51 +0000
Subject: Add -fforce-omit-frame-pointer
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 95bbe92ec602cf1ddf3b8a81b0ce39157c4d6777 Mon Sep 17 00:00:00 2001
From df48b42d5a11a1af660c0dec1c1171bb13b3e571 Mon Sep 17 00:00:00 2001
From: Andy Fiddaman <illumos@fiddaman.net>
Date: Mon, 28 Nov 2022 11:52:58 +0000
Subject: cmn_err() supports 'h' and 'hh'
Subject: cmn_err() supports 'h' and 'hh' (6333936)

---
gcc/config/sol2-c.cc | 21 ++++++++++++---------
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
From c774b68ffb026af9bbc0222c34158ff4eb72c5be Mon Sep 17 00:00:00 2001
From: Andy Fiddaman <illumos@fiddaman.net>
Date: Tue, 15 Oct 2024 15:31:19 +0000
Subject: 16768 kernel printf should know about %j and %z size
specifiers

---
gcc/config/sol2-c.cc | 9 +++++----
gcc/testsuite/gcc.dg/format/cmn-err-1.c | 4 ++++
2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/gcc/config/sol2-c.cc b/gcc/config/sol2-c.cc
index c84c1369b891..9fa31b96ddc8 100644
--- a/gcc/config/sol2-c.cc
+++ b/gcc/config/sol2-c.cc
@@ -37,6 +37,8 @@ static const format_length_info cmn_err_length_specs[] =
{
{ "h", FMT_LEN_h, STD_C89, "hh", FMT_LEN_hh, STD_C99, 0 },
{ "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C89, 0 },
+ { "j", FMT_LEN_j, STD_C99, NO_FMT, 0 },
+ { "z", FMT_LEN_z, STD_C99, NO_FMT, 0 },
{ NO_FMT, NO_FMT, 0 }
};

@@ -63,10 +65,9 @@ static const format_char_info bitfield_string_type =
static const format_char_info cmn_err_char_table[] =
{
/* none hh h l ll L z t j H D DD */
- /* C89 conversion specifiers. */
- { "dD", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
- { "oOxX",0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
- { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
+ { "dD", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, BADLEN, T99_SST, BADLEN, T99_IM , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
+ { "oOxX",0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, T99_ST, BADLEN, T99_UIM, BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
+ { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, T99_ST, BADLEN, T99_UIM, BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL },
{ "c", 0, STD_C89, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-w", "", NULL },
{ "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-w", "c", NULL },
{ "s", 1, STD_C89, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp", "cR", NULL },
diff --git a/gcc/testsuite/gcc.dg/format/cmn-err-1.c b/gcc/testsuite/gcc.dg/format/cmn-err-1.c
index f6833c1723ad..cbb4a1f927c3 100644
--- a/gcc/testsuite/gcc.dg/format/cmn-err-1.c
+++ b/gcc/testsuite/gcc.dg/format/cmn-err-1.c
@@ -19,6 +19,8 @@ int main()
llong ll = 3;
char hh = 4;
short h = 5;
+ size_t z = 6;
+ uintmax_t j = 7;

cmn_err_func (0, "%s", string);
cmn_err_func (0, "%d %D %o %O %x %X %u", i, i, i, i, i, i, i);
@@ -28,6 +30,8 @@ int main()
cmn_err_func (0, "%hd %hD %ho %hO %hx %hX %hu", h, h, h, h, h, h, h);
cmn_err_func (0, "%hhd %hhD %hho %hhO %hhx %hhX %hhu",
hh, hh, hh, hh, hh, hh, hh);
+ cmn_err_func (0, "%jd %jD %jo %jO %jx %jX %ju", j, j, j, j, j, j, j);
+ cmn_err_func (0, "%zd %zD %zo %zO %zx %zX %zu", z, z, z, z, z, z, z);
cmn_err_func (0, "%b %s", i, "\01Foo", string);
cmn_err_func (0, "%p", string);
cmn_err_func (0, "%16b", i, "\01Foo");
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
From 453fa50bdbdc572e6df845cfbe3d6a2891a86ddd Mon Sep 17 00:00:00 2001
From c286aab28d54e70040091e71adc48d29714e7e5f Mon Sep 17 00:00:00 2001
From: Andy Fiddaman <omnios@citrus-it.co.uk>
Date: Thu, 9 May 2019 13:43:30 +0000
Subject: OOCE: Adjust default library paths for OmniOS
Expand Down
10 changes: 5 additions & 5 deletions build/gcc14/patches/series
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
0028-Convert-unsupported-use-of-msave-args-to-a-warning.patch
0029-Use-the-illumos-libc-SSP-implementation-for-fstack-p.patch
0030-13185-zassert-deflib-does-not-work-for-64-bit-object.patch
0031-Fix-cp-module.cc-build-use-posix_madvise.patch
0032-Add-__illumos__-preprocessor-definition.patch
0033-libstdc-must-use-thread-local-errno.patch
0034-Add-fforce-omit-frame-pointer.patch
0035-cmn_err-supports-h-and-hh.patch
0031-13726-distinguish-ourselves-with-a-macro-__illumos__.patch
0032-libstdc-must-use-thread-local-errno.patch
0033-Add-fforce-omit-frame-pointer.patch
0034-cmn_err-supports-h-and-hh-6333936.patch
0035-16768-kernel-printf-should-know-about-j-and-z-size-s.patch
0036-OOCE-Adjust-default-library-paths-for-OmniOS.patch

0 comments on commit a857296

Please sign in to comment.