* [Buildroot] [PATCH 1/3] package/uclibc: Bump to 1.0.48. @ 2024-05-01 9:23 Dmitry Chestnykh 2024-05-01 9:23 ` [Buildroot] [PATCH 2/3] configs/qemu_sparc_ss10_defconfig: Restore Dmitry Chestnykh 2024-05-01 9:23 ` [Buildroot] [PATCH 3/3] package/gcc: Remove unneeded patch Dmitry Chestnykh 0 siblings, 2 replies; 7+ messages in thread From: Dmitry Chestnykh @ 2024-05-01 9:23 UTC (permalink / raw) To: buildroot; +Cc: Dmitry Chestnykh In 1.0.48 release uClibc-ng has provided the fix for SPARC related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98784 Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com> --- package/uclibc/uclibc.hash | 4 ++-- package/uclibc/uclibc.mk | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package/uclibc/uclibc.hash b/package/uclibc/uclibc.hash index a10ceab54c..571bb7333c 100644 --- a/package/uclibc/uclibc.hash +++ b/package/uclibc/uclibc.hash @@ -1,4 +1,4 @@ -# From https://downloads.uclibc-ng.org/releases/1.0.47/uClibc-ng-1.0.47.tar.xz.sha256 -sha256 29a4d684a06da344ee3ee09acc2ca7649d592ae3ff848f698145c46def05efcb uClibc-ng-1.0.47.tar.xz +# From https://downloads.uclibc-ng.org/releases/1.0.47/uClibc-ng-1.0.48.tar.xz.sha256 +sha256 3bf5fc6cc5cbc454b6c478424755c6f71e7c15578a2c966f02606aa5c5596e21 uClibc-ng-1.0.48.tar.xz # Locally calculated sha256 6095e9ffa777dd22839f7801aa845b31c9ed07f3d6bf8a26dc5d2dec8ccc0ef3 COPYING.LIB diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk index a7b18133ff..9593e18d45 100644 --- a/package/uclibc/uclibc.mk +++ b/package/uclibc/uclibc.mk @@ -4,7 +4,7 @@ # ################################################################################ -UCLIBC_VERSION = 1.0.47 +UCLIBC_VERSION = 1.0.48 UCLIBC_SOURCE = uClibc-ng-$(UCLIBC_VERSION).tar.xz UCLIBC_SITE = https://downloads.uclibc-ng.org/releases/$(UCLIBC_VERSION) UCLIBC_LICENSE = LGPL-2.1+ -- 2.44.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/3] configs/qemu_sparc_ss10_defconfig: Restore. 2024-05-01 9:23 [Buildroot] [PATCH 1/3] package/uclibc: Bump to 1.0.48 Dmitry Chestnykh @ 2024-05-01 9:23 ` Dmitry Chestnykh 2024-05-01 12:11 ` Waldemar Brodkorb 2024-05-01 18:11 ` Yann E. MORIN 2024-05-01 9:23 ` [Buildroot] [PATCH 3/3] package/gcc: Remove unneeded patch Dmitry Chestnykh 1 sibling, 2 replies; 7+ messages in thread From: Dmitry Chestnykh @ 2024-05-01 9:23 UTC (permalink / raw) To: buildroot; +Cc: Dmitry Chestnykh With uClibc-ng-1.0.48 we can restore this config because now sparc systems work without reverting GCC commits. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com> --- arch/Config.in | 5 ----- configs/qemu_sparc_ss10_defconfig | 28 ++++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 configs/qemu_sparc_ss10_defconfig diff --git a/arch/Config.in b/arch/Config.in index 9912f9fce6..e7349e83ae 100644 --- a/arch/Config.in +++ b/arch/Config.in @@ -216,11 +216,6 @@ config BR2_sh config BR2_sparc bool "SPARC" select BR2_USE_MMU - # uClibc-ng broken on sparc due to recent gcc changes - # that need to be reverted since gcc 8.4, 9.3 and 10.1. - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98784 - # gcc <= 10.x has been removed from Buildroot. - select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT help SPARC (from Scalable Processor Architecture) is a RISC instruction set architecture (ISA) developed by Sun diff --git a/configs/qemu_sparc_ss10_defconfig b/configs/qemu_sparc_ss10_defconfig new file mode 100644 index 0000000000..a8e3df9180 --- /dev/null +++ b/configs/qemu_sparc_ss10_defconfig @@ -0,0 +1,28 @@ +# Architecture +BR2_sparc=y +BR2_sparc_v8=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" + +# Linux headers same as kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_AS_KERNEL=y + +# Linux kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.8.6" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc-ss10/linux.config" + +# host-qemu for gitlab testing +BR2_PACKAGE_HOST_QEMU=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y -- 2.44.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 2/3] configs/qemu_sparc_ss10_defconfig: Restore. 2024-05-01 9:23 ` [Buildroot] [PATCH 2/3] configs/qemu_sparc_ss10_defconfig: Restore Dmitry Chestnykh @ 2024-05-01 12:11 ` Waldemar Brodkorb 2024-05-01 18:11 ` Yann E. MORIN 1 sibling, 0 replies; 7+ messages in thread From: Waldemar Brodkorb @ 2024-05-01 12:11 UTC (permalink / raw) To: Dmitry Chestnykh; +Cc: buildroot Hi Dmitry, Dmitry Chestnykh wrote, > With uClibc-ng-1.0.48 we can restore this config > because now sparc systems work without reverting GCC commits. > > Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com> Tested-by: Waldemar Brodkorb <wbx@openadk.org> best regards Waldemar _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 2/3] configs/qemu_sparc_ss10_defconfig: Restore. 2024-05-01 9:23 ` [Buildroot] [PATCH 2/3] configs/qemu_sparc_ss10_defconfig: Restore Dmitry Chestnykh 2024-05-01 12:11 ` Waldemar Brodkorb @ 2024-05-01 18:11 ` Yann E. MORIN 1 sibling, 0 replies; 7+ messages in thread From: Yann E. MORIN @ 2024-05-01 18:11 UTC (permalink / raw) To: Dmitry Chestnykh; +Cc: buildroot Dmitry, All, On 2024-05-01 12:23 +0300, Dmitry Chestnykh spake thusly: > With uClibc-ng-1.0.48 we can restore this config > because now sparc systems work without reverting GCC commits. > > Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com> > --- > arch/Config.in | 5 ----- > configs/qemu_sparc_ss10_defconfig | 28 ++++++++++++++++++++++++++++ > 2 files changed, 28 insertions(+), 5 deletions(-) > create mode 100644 configs/qemu_sparc_ss10_defconfig This patch is doing two things: 1. allow building an internal toolchain for sparc; 2. (re)introduce a defconfig. It should be two different patches, in the order above. Regards, Yann E. MORIN. > diff --git a/arch/Config.in b/arch/Config.in > index 9912f9fce6..e7349e83ae 100644 > --- a/arch/Config.in > +++ b/arch/Config.in > @@ -216,11 +216,6 @@ config BR2_sh > config BR2_sparc > bool "SPARC" > select BR2_USE_MMU > - # uClibc-ng broken on sparc due to recent gcc changes > - # that need to be reverted since gcc 8.4, 9.3 and 10.1. > - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98784 > - # gcc <= 10.x has been removed from Buildroot. > - select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT > help > SPARC (from Scalable Processor Architecture) is a RISC > instruction set architecture (ISA) developed by Sun > diff --git a/configs/qemu_sparc_ss10_defconfig b/configs/qemu_sparc_ss10_defconfig > new file mode 100644 > index 0000000000..a8e3df9180 > --- /dev/null > +++ b/configs/qemu_sparc_ss10_defconfig > @@ -0,0 +1,28 @@ > +# Architecture > +BR2_sparc=y > +BR2_sparc_v8=y > + > +# System > +BR2_SYSTEM_DHCP="eth0" > + > +# Filesystem > +BR2_TARGET_ROOTFS_EXT2=y > +# BR2_TARGET_ROOTFS_TAR is not set > + > +# Image > +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" > +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" > + > +# Linux headers same as kernel > +BR2_PACKAGE_HOST_LINUX_HEADERS_AS_KERNEL=y > + > +# Linux kernel > +BR2_LINUX_KERNEL=y > +BR2_LINUX_KERNEL_CUSTOM_VERSION=y > +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.8.6" > +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y > +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc-ss10/linux.config" > + > +# host-qemu for gitlab testing > +BR2_PACKAGE_HOST_QEMU=y > +BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y > -- > 2.44.0 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 3/3] package/gcc: Remove unneeded patch. 2024-05-01 9:23 [Buildroot] [PATCH 1/3] package/uclibc: Bump to 1.0.48 Dmitry Chestnykh 2024-05-01 9:23 ` [Buildroot] [PATCH 2/3] configs/qemu_sparc_ss10_defconfig: Restore Dmitry Chestnykh @ 2024-05-01 9:23 ` Dmitry Chestnykh 2024-05-01 12:12 ` Waldemar Brodkorb 2024-05-01 18:10 ` Yann E. MORIN 1 sibling, 2 replies; 7+ messages in thread From: Dmitry Chestnykh @ 2024-05-01 9:23 UTC (permalink / raw) To: buildroot; +Cc: Dmitry Chestnykh sparc systems work with uClibc-ng-1.0.48. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com> --- ...get-92095-internal-error-with-O1-mcp.patch | 322 ------------------ 1 file changed, 322 deletions(-) delete mode 100644 package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch diff --git a/package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch b/package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch deleted file mode 100644 index ec2bf8835d..0000000000 --- a/package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch +++ /dev/null @@ -1,322 +0,0 @@ -From bb9b71752267444b4360442b89129bfc0ae938d3 Mon Sep 17 00:00:00 2001 -From: Romain Naour <romain.naour@gmail.com> -Date: Wed, 20 Jan 2021 23:06:07 +0100 -Subject: [PATCH] Revert "re PR target/92095 (internal error with -O1 - -mcpu=niagara2 -fPIE)" - -This reverts commit 3fcce773f0f914c0499b130c6e9efa0e45ee54a0. - -Building the Buildroot defconfig qemu_sparc_ss10_defconfig using -gcc 8.4, 9.3 and 10 produce a broken rootfs that trigger illegal -instruction messages. - -gcc 8.3, 9.2 are the latest working gcc version. -git bisect between gcc 8.4 and 8.4 allowed to identify -the commit that introcuce the regression. - -Reverting this patch allowed to produce a working rootfs. - -Signed-off-by: Romain Naour <romain.naour@gmail.com> -Cc: Eric Botcazou <ebotcazou@gcc.gnu.org> ---- - gcc/config/sparc/sparc-protos.h | 1 - - gcc/config/sparc/sparc.c | 121 +++++++----------- - gcc/config/sparc/sparc.md | 5 +- - .../gcc.c-torture/compile/20191108-1.c | 14 -- - gcc/testsuite/gcc.target/sparc/overflow-3.c | 2 +- - gcc/testsuite/gcc.target/sparc/overflow-4.c | 2 +- - gcc/testsuite/gcc.target/sparc/overflow-5.c | 2 +- - 7 files changed, 53 insertions(+), 94 deletions(-) - delete mode 100644 gcc/testsuite/gcc.c-torture/compile/20191108-1.c - -diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h -index b3f73c2f2bf..71a067e871c 100644 ---- a/gcc/config/sparc/sparc-protos.h -+++ b/gcc/config/sparc/sparc-protos.h -@@ -69,7 +69,6 @@ extern void sparc_split_reg_mem (rtx, rtx, machine_mode); - extern void sparc_split_mem_reg (rtx, rtx, machine_mode); - extern int sparc_split_reg_reg_legitimate (rtx, rtx); - extern void sparc_split_reg_reg (rtx, rtx, machine_mode); --extern const char *output_load_pcrel_sym (rtx *); - extern const char *output_ubranch (rtx, rtx_insn *); - extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *); - extern const char *output_return (rtx_insn *); -diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c -index 73032d33596..db1b428db90 100644 ---- a/gcc/config/sparc/sparc.c -+++ b/gcc/config/sparc/sparc.c -@@ -4200,6 +4200,13 @@ eligible_for_sibcall_delay (rtx_insn *trial) - static bool - sparc_cannot_force_const_mem (machine_mode mode, rtx x) - { -+ /* After IRA has run in PIC mode, it is too late to put anything into the -+ constant pool if the PIC register hasn't already been initialized. */ -+ if ((lra_in_progress || reload_in_progress) -+ && flag_pic -+ && !crtl->uses_pic_offset_table) -+ return true; -+ - switch (GET_CODE (x)) - { - case CONST_INT: -@@ -4235,11 +4242,9 @@ sparc_cannot_force_const_mem (machine_mode mode, rtx x) - } - \f - /* Global Offset Table support. */ --static GTY(()) rtx got_symbol_rtx = NULL_RTX; --static GTY(()) rtx got_register_rtx = NULL_RTX; - static GTY(()) rtx got_helper_rtx = NULL_RTX; -- --static GTY(()) bool got_helper_needed = false; -+static GTY(()) rtx got_register_rtx = NULL_RTX; -+static GTY(()) rtx got_symbol_rtx = NULL_RTX; - - /* Return the SYMBOL_REF for the Global Offset Table. */ - -@@ -4252,6 +4257,27 @@ sparc_got (void) - return got_symbol_rtx; - } - -+#ifdef HAVE_GAS_HIDDEN -+# define USE_HIDDEN_LINKONCE 1 -+#else -+# define USE_HIDDEN_LINKONCE 0 -+#endif -+ -+static void -+get_pc_thunk_name (char name[32], unsigned int regno) -+{ -+ const char *reg_name = reg_names[regno]; -+ -+ /* Skip the leading '%' as that cannot be used in a -+ symbol name. */ -+ reg_name += 1; -+ -+ if (USE_HIDDEN_LINKONCE) -+ sprintf (name, "__sparc_get_pc_thunk.%s", reg_name); -+ else -+ ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno); -+} -+ - /* Wrapper around the load_pcrel_sym{si,di} patterns. */ - - static rtx -@@ -4271,78 +4297,30 @@ gen_load_pcrel_sym (rtx op0, rtx op1, rtx op2) - return insn; - } - --/* Output the load_pcrel_sym{si,di} patterns. */ -- --const char * --output_load_pcrel_sym (rtx *operands) --{ -- if (flag_delayed_branch) -- { -- output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands); -- output_asm_insn ("call\t%a2", operands); -- output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands); -- } -- else -- { -- output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands); -- output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands); -- output_asm_insn ("call\t%a2", operands); -- output_asm_insn (" nop", NULL); -- } -- -- if (operands[2] == got_helper_rtx) -- got_helper_needed = true; -- -- return ""; --} -- --#ifdef HAVE_GAS_HIDDEN --# define USE_HIDDEN_LINKONCE 1 --#else --# define USE_HIDDEN_LINKONCE 0 --#endif -- - /* Emit code to load the GOT register. */ - - void - load_got_register (void) - { -- rtx insn; -+ if (!got_register_rtx) -+ got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); - - if (TARGET_VXWORKS_RTP) -- { -- if (!got_register_rtx) -- got_register_rtx = pic_offset_table_rtx; -- -- insn = gen_vxworks_load_got (); -- } -+ emit_insn (gen_vxworks_load_got ()); - else - { -- if (!got_register_rtx) -- got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); -- - /* The GOT symbol is subject to a PC-relative relocation so we need a - helper function to add the PC value and thus get the final value. */ - if (!got_helper_rtx) - { - char name[32]; -- -- /* Skip the leading '%' as that cannot be used in a symbol name. */ -- if (USE_HIDDEN_LINKONCE) -- sprintf (name, "__sparc_get_pc_thunk.%s", -- reg_names[REGNO (got_register_rtx)] + 1); -- else -- ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", -- REGNO (got_register_rtx)); -- -+ get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM); - got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name)); - } - -- insn -- = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx); -+ emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (), -+ got_helper_rtx)); - } -- -- emit_insn (insn); - } - - /* Ensure that we are not using patterns that are not OK with PIC. */ -@@ -5494,7 +5472,7 @@ save_local_or_in_reg_p (unsigned int regno, int leaf_function) - return true; - - /* GOT register (%l7) if needed. */ -- if (got_register_rtx && regno == REGNO (got_register_rtx)) -+ if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx) - return true; - - /* If the function accesses prior frames, the frame pointer and the return -@@ -12475,9 +12453,10 @@ static void - sparc_file_end (void) - { - /* If we need to emit the special GOT helper function, do so now. */ -- if (got_helper_needed) -+ if (got_helper_rtx) - { - const char *name = XSTR (got_helper_rtx, 0); -+ const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM]; - #ifdef DWARF2_UNWIND_INFO - bool do_cfi; - #endif -@@ -12514,22 +12493,17 @@ sparc_file_end (void) - #ifdef DWARF2_UNWIND_INFO - do_cfi = dwarf2out_do_cfi_asm (); - if (do_cfi) -- output_asm_insn (".cfi_startproc", NULL); -+ fprintf (asm_out_file, "\t.cfi_startproc\n"); - #endif - if (flag_delayed_branch) -- { -- output_asm_insn ("jmp\t%%o7+8", NULL); -- output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx); -- } -+ fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n", -+ reg_name, reg_name); - else -- { -- output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx); -- output_asm_insn ("jmp\t%%o7+8", NULL); -- output_asm_insn (" nop", NULL); -- } -+ fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n", -+ reg_name, reg_name); - #ifdef DWARF2_UNWIND_INFO - if (do_cfi) -- output_asm_insn (".cfi_endproc", NULL); -+ fprintf (asm_out_file, "\t.cfi_endproc\n"); - #endif - } - -@@ -13035,10 +13009,7 @@ sparc_init_pic_reg (void) - edge entry_edge; - rtx_insn *seq; - -- /* In PIC mode, we need to always initialize the PIC register if optimization -- is enabled, because we are called from IRA and LRA may later force things -- to the constant pool for optimization purposes. */ -- if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize)) -+ if (!crtl->uses_pic_offset_table) - return; - - start_sequence (); -diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md -index 468e2cc5d3b..25134bd1148 100644 ---- a/gcc/config/sparc/sparc.md -+++ b/gcc/config/sparc/sparc.md -@@ -1601,7 +1601,10 @@ - (clobber (reg:P O7_REG))] - "REGNO (operands[0]) == INTVAL (operands[3])" - { -- return output_load_pcrel_sym (operands); -+ if (flag_delayed_branch) -+ return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0"; -+ else -+ return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop"; - } - [(set (attr "type") (const_string "multi")) - (set (attr "length") -diff --git a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c b/gcc/testsuite/gcc.c-torture/compile/20191108-1.c -deleted file mode 100644 -index 7929751bb06..00000000000 ---- a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c -+++ /dev/null -@@ -1,14 +0,0 @@ --/* PR target/92095 */ --/* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */ -- --typedef union { -- double a; -- int b[2]; --} c; -- --double d(int e) --{ -- c f; -- (&f)->b[0] = 15728640; -- return e ? -(&f)->a : (&f)->a; --} -diff --git a/gcc/testsuite/gcc.target/sparc/overflow-3.c b/gcc/testsuite/gcc.target/sparc/overflow-3.c -index 18253bb6e5e..8cb24f52f7b 100644 ---- a/gcc/testsuite/gcc.target/sparc/overflow-3.c -+++ b/gcc/testsuite/gcc.target/sparc/overflow-3.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O -fno-pie" } */ -+/* { dg-options "-O" } */ - /* { dg-require-effective-target lp64 } */ - - #include <stdbool.h> -diff --git a/gcc/testsuite/gcc.target/sparc/overflow-4.c b/gcc/testsuite/gcc.target/sparc/overflow-4.c -index fb30877efb9..868edea2b9e 100644 ---- a/gcc/testsuite/gcc.target/sparc/overflow-4.c -+++ b/gcc/testsuite/gcc.target/sparc/overflow-4.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O -fno-pie -mno-vis3" } */ -+/* { dg-options "-O -mno-vis3" } */ - /* { dg-require-effective-target lp64 } */ - - #include <stdbool.h> -diff --git a/gcc/testsuite/gcc.target/sparc/overflow-5.c b/gcc/testsuite/gcc.target/sparc/overflow-5.c -index 509d957715d..501ce04f7a1 100644 ---- a/gcc/testsuite/gcc.target/sparc/overflow-5.c -+++ b/gcc/testsuite/gcc.target/sparc/overflow-5.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O -fno-pie -mvis3" } */ -+/* { dg-options "-O -mvis3" } */ - /* { dg-require-effective-target lp64 } */ - - #include <stdbool.h> --- -2.25.4 - -- 2.44.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 3/3] package/gcc: Remove unneeded patch. 2024-05-01 9:23 ` [Buildroot] [PATCH 3/3] package/gcc: Remove unneeded patch Dmitry Chestnykh @ 2024-05-01 12:12 ` Waldemar Brodkorb 2024-05-01 18:10 ` Yann E. MORIN 1 sibling, 0 replies; 7+ messages in thread From: Waldemar Brodkorb @ 2024-05-01 12:12 UTC (permalink / raw) To: Dmitry Chestnykh; +Cc: buildroot Hi Dmitry, Dmitry Chestnykh wrote, > sparc systems work with uClibc-ng-1.0.48. > > Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com> Tested-by: Waldemar Brodkorb <wbx@openadk.org> best regards Waldemar _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 3/3] package/gcc: Remove unneeded patch. 2024-05-01 9:23 ` [Buildroot] [PATCH 3/3] package/gcc: Remove unneeded patch Dmitry Chestnykh 2024-05-01 12:12 ` Waldemar Brodkorb @ 2024-05-01 18:10 ` Yann E. MORIN 1 sibling, 0 replies; 7+ messages in thread From: Yann E. MORIN @ 2024-05-01 18:10 UTC (permalink / raw) To: Dmitry Chestnykh; +Cc: buildroot dmitry, All, On 2024-05-01 12:23 +0300, Dmitry Chestnykh spake thusly: > sparc systems work with uClibc-ng-1.0.48. Right, but... > Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com> > --- > ...get-92095-internal-error-with-O1-mcp.patch | 322 ------------------ > 1 file changed, 322 deletions(-) > delete mode 100644 package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch gcc 8.4.0 is only ever used for PowerPC SPE: package/gcc/Config.in.host 76 config BR2_GCC_VERSION 77 string 78 default "8.4.0" if BR2_GCC_VERSION_POWERPC_SPE So gcc 8.4.0 can't be used for sparc, so any sparc-rleated patch there is totally unused. Which IMHO should be the actual reason for dropping it... Regards, Yann E. MORIN. > diff --git a/package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch b/package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch > deleted file mode 100644 > index ec2bf8835d..0000000000 > --- a/package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch > +++ /dev/null > @@ -1,322 +0,0 @@ > -From bb9b71752267444b4360442b89129bfc0ae938d3 Mon Sep 17 00:00:00 2001 > -From: Romain Naour <romain.naour@gmail.com> > -Date: Wed, 20 Jan 2021 23:06:07 +0100 > -Subject: [PATCH] Revert "re PR target/92095 (internal error with -O1 > - -mcpu=niagara2 -fPIE)" > - > -This reverts commit 3fcce773f0f914c0499b130c6e9efa0e45ee54a0. > - > -Building the Buildroot defconfig qemu_sparc_ss10_defconfig using > -gcc 8.4, 9.3 and 10 produce a broken rootfs that trigger illegal > -instruction messages. > - > -gcc 8.3, 9.2 are the latest working gcc version. > -git bisect between gcc 8.4 and 8.4 allowed to identify > -the commit that introcuce the regression. > - > -Reverting this patch allowed to produce a working rootfs. > - > -Signed-off-by: Romain Naour <romain.naour@gmail.com> > -Cc: Eric Botcazou <ebotcazou@gcc.gnu.org> > ---- > - gcc/config/sparc/sparc-protos.h | 1 - > - gcc/config/sparc/sparc.c | 121 +++++++----------- > - gcc/config/sparc/sparc.md | 5 +- > - .../gcc.c-torture/compile/20191108-1.c | 14 -- > - gcc/testsuite/gcc.target/sparc/overflow-3.c | 2 +- > - gcc/testsuite/gcc.target/sparc/overflow-4.c | 2 +- > - gcc/testsuite/gcc.target/sparc/overflow-5.c | 2 +- > - 7 files changed, 53 insertions(+), 94 deletions(-) > - delete mode 100644 gcc/testsuite/gcc.c-torture/compile/20191108-1.c > - > -diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h > -index b3f73c2f2bf..71a067e871c 100644 > ---- a/gcc/config/sparc/sparc-protos.h > -+++ b/gcc/config/sparc/sparc-protos.h > -@@ -69,7 +69,6 @@ extern void sparc_split_reg_mem (rtx, rtx, machine_mode); > - extern void sparc_split_mem_reg (rtx, rtx, machine_mode); > - extern int sparc_split_reg_reg_legitimate (rtx, rtx); > - extern void sparc_split_reg_reg (rtx, rtx, machine_mode); > --extern const char *output_load_pcrel_sym (rtx *); > - extern const char *output_ubranch (rtx, rtx_insn *); > - extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *); > - extern const char *output_return (rtx_insn *); > -diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c > -index 73032d33596..db1b428db90 100644 > ---- a/gcc/config/sparc/sparc.c > -+++ b/gcc/config/sparc/sparc.c > -@@ -4200,6 +4200,13 @@ eligible_for_sibcall_delay (rtx_insn *trial) > - static bool > - sparc_cannot_force_const_mem (machine_mode mode, rtx x) > - { > -+ /* After IRA has run in PIC mode, it is too late to put anything into the > -+ constant pool if the PIC register hasn't already been initialized. */ > -+ if ((lra_in_progress || reload_in_progress) > -+ && flag_pic > -+ && !crtl->uses_pic_offset_table) > -+ return true; > -+ > - switch (GET_CODE (x)) > - { > - case CONST_INT: > -@@ -4235,11 +4242,9 @@ sparc_cannot_force_const_mem (machine_mode mode, rtx x) > - } > - \f > - /* Global Offset Table support. */ > --static GTY(()) rtx got_symbol_rtx = NULL_RTX; > --static GTY(()) rtx got_register_rtx = NULL_RTX; > - static GTY(()) rtx got_helper_rtx = NULL_RTX; > -- > --static GTY(()) bool got_helper_needed = false; > -+static GTY(()) rtx got_register_rtx = NULL_RTX; > -+static GTY(()) rtx got_symbol_rtx = NULL_RTX; > - > - /* Return the SYMBOL_REF for the Global Offset Table. */ > - > -@@ -4252,6 +4257,27 @@ sparc_got (void) > - return got_symbol_rtx; > - } > - > -+#ifdef HAVE_GAS_HIDDEN > -+# define USE_HIDDEN_LINKONCE 1 > -+#else > -+# define USE_HIDDEN_LINKONCE 0 > -+#endif > -+ > -+static void > -+get_pc_thunk_name (char name[32], unsigned int regno) > -+{ > -+ const char *reg_name = reg_names[regno]; > -+ > -+ /* Skip the leading '%' as that cannot be used in a > -+ symbol name. */ > -+ reg_name += 1; > -+ > -+ if (USE_HIDDEN_LINKONCE) > -+ sprintf (name, "__sparc_get_pc_thunk.%s", reg_name); > -+ else > -+ ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno); > -+} > -+ > - /* Wrapper around the load_pcrel_sym{si,di} patterns. */ > - > - static rtx > -@@ -4271,78 +4297,30 @@ gen_load_pcrel_sym (rtx op0, rtx op1, rtx op2) > - return insn; > - } > - > --/* Output the load_pcrel_sym{si,di} patterns. */ > -- > --const char * > --output_load_pcrel_sym (rtx *operands) > --{ > -- if (flag_delayed_branch) > -- { > -- output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands); > -- output_asm_insn ("call\t%a2", operands); > -- output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands); > -- } > -- else > -- { > -- output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands); > -- output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands); > -- output_asm_insn ("call\t%a2", operands); > -- output_asm_insn (" nop", NULL); > -- } > -- > -- if (operands[2] == got_helper_rtx) > -- got_helper_needed = true; > -- > -- return ""; > --} > -- > --#ifdef HAVE_GAS_HIDDEN > --# define USE_HIDDEN_LINKONCE 1 > --#else > --# define USE_HIDDEN_LINKONCE 0 > --#endif > -- > - /* Emit code to load the GOT register. */ > - > - void > - load_got_register (void) > - { > -- rtx insn; > -+ if (!got_register_rtx) > -+ got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); > - > - if (TARGET_VXWORKS_RTP) > -- { > -- if (!got_register_rtx) > -- got_register_rtx = pic_offset_table_rtx; > -- > -- insn = gen_vxworks_load_got (); > -- } > -+ emit_insn (gen_vxworks_load_got ()); > - else > - { > -- if (!got_register_rtx) > -- got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); > -- > - /* The GOT symbol is subject to a PC-relative relocation so we need a > - helper function to add the PC value and thus get the final value. */ > - if (!got_helper_rtx) > - { > - char name[32]; > -- > -- /* Skip the leading '%' as that cannot be used in a symbol name. */ > -- if (USE_HIDDEN_LINKONCE) > -- sprintf (name, "__sparc_get_pc_thunk.%s", > -- reg_names[REGNO (got_register_rtx)] + 1); > -- else > -- ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", > -- REGNO (got_register_rtx)); > -- > -+ get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM); > - got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name)); > - } > - > -- insn > -- = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx); > -+ emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (), > -+ got_helper_rtx)); > - } > -- > -- emit_insn (insn); > - } > - > - /* Ensure that we are not using patterns that are not OK with PIC. */ > -@@ -5494,7 +5472,7 @@ save_local_or_in_reg_p (unsigned int regno, int leaf_function) > - return true; > - > - /* GOT register (%l7) if needed. */ > -- if (got_register_rtx && regno == REGNO (got_register_rtx)) > -+ if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx) > - return true; > - > - /* If the function accesses prior frames, the frame pointer and the return > -@@ -12475,9 +12453,10 @@ static void > - sparc_file_end (void) > - { > - /* If we need to emit the special GOT helper function, do so now. */ > -- if (got_helper_needed) > -+ if (got_helper_rtx) > - { > - const char *name = XSTR (got_helper_rtx, 0); > -+ const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM]; > - #ifdef DWARF2_UNWIND_INFO > - bool do_cfi; > - #endif > -@@ -12514,22 +12493,17 @@ sparc_file_end (void) > - #ifdef DWARF2_UNWIND_INFO > - do_cfi = dwarf2out_do_cfi_asm (); > - if (do_cfi) > -- output_asm_insn (".cfi_startproc", NULL); > -+ fprintf (asm_out_file, "\t.cfi_startproc\n"); > - #endif > - if (flag_delayed_branch) > -- { > -- output_asm_insn ("jmp\t%%o7+8", NULL); > -- output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx); > -- } > -+ fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n", > -+ reg_name, reg_name); > - else > -- { > -- output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx); > -- output_asm_insn ("jmp\t%%o7+8", NULL); > -- output_asm_insn (" nop", NULL); > -- } > -+ fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n", > -+ reg_name, reg_name); > - #ifdef DWARF2_UNWIND_INFO > - if (do_cfi) > -- output_asm_insn (".cfi_endproc", NULL); > -+ fprintf (asm_out_file, "\t.cfi_endproc\n"); > - #endif > - } > - > -@@ -13035,10 +13009,7 @@ sparc_init_pic_reg (void) > - edge entry_edge; > - rtx_insn *seq; > - > -- /* In PIC mode, we need to always initialize the PIC register if optimization > -- is enabled, because we are called from IRA and LRA may later force things > -- to the constant pool for optimization purposes. */ > -- if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize)) > -+ if (!crtl->uses_pic_offset_table) > - return; > - > - start_sequence (); > -diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md > -index 468e2cc5d3b..25134bd1148 100644 > ---- a/gcc/config/sparc/sparc.md > -+++ b/gcc/config/sparc/sparc.md > -@@ -1601,7 +1601,10 @@ > - (clobber (reg:P O7_REG))] > - "REGNO (operands[0]) == INTVAL (operands[3])" > - { > -- return output_load_pcrel_sym (operands); > -+ if (flag_delayed_branch) > -+ return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0"; > -+ else > -+ return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop"; > - } > - [(set (attr "type") (const_string "multi")) > - (set (attr "length") > -diff --git a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c b/gcc/testsuite/gcc.c-torture/compile/20191108-1.c > -deleted file mode 100644 > -index 7929751bb06..00000000000 > ---- a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c > -+++ /dev/null > -@@ -1,14 +0,0 @@ > --/* PR target/92095 */ > --/* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */ > -- > --typedef union { > -- double a; > -- int b[2]; > --} c; > -- > --double d(int e) > --{ > -- c f; > -- (&f)->b[0] = 15728640; > -- return e ? -(&f)->a : (&f)->a; > --} > -diff --git a/gcc/testsuite/gcc.target/sparc/overflow-3.c b/gcc/testsuite/gcc.target/sparc/overflow-3.c > -index 18253bb6e5e..8cb24f52f7b 100644 > ---- a/gcc/testsuite/gcc.target/sparc/overflow-3.c > -+++ b/gcc/testsuite/gcc.target/sparc/overflow-3.c > -@@ -1,5 +1,5 @@ > - /* { dg-do compile } */ > --/* { dg-options "-O -fno-pie" } */ > -+/* { dg-options "-O" } */ > - /* { dg-require-effective-target lp64 } */ > - > - #include <stdbool.h> > -diff --git a/gcc/testsuite/gcc.target/sparc/overflow-4.c b/gcc/testsuite/gcc.target/sparc/overflow-4.c > -index fb30877efb9..868edea2b9e 100644 > ---- a/gcc/testsuite/gcc.target/sparc/overflow-4.c > -+++ b/gcc/testsuite/gcc.target/sparc/overflow-4.c > -@@ -1,5 +1,5 @@ > - /* { dg-do compile } */ > --/* { dg-options "-O -fno-pie -mno-vis3" } */ > -+/* { dg-options "-O -mno-vis3" } */ > - /* { dg-require-effective-target lp64 } */ > - > - #include <stdbool.h> > -diff --git a/gcc/testsuite/gcc.target/sparc/overflow-5.c b/gcc/testsuite/gcc.target/sparc/overflow-5.c > -index 509d957715d..501ce04f7a1 100644 > ---- a/gcc/testsuite/gcc.target/sparc/overflow-5.c > -+++ b/gcc/testsuite/gcc.target/sparc/overflow-5.c > -@@ -1,5 +1,5 @@ > - /* { dg-do compile } */ > --/* { dg-options "-O -fno-pie -mvis3" } */ > -+/* { dg-options "-O -mvis3" } */ > - /* { dg-require-effective-target lp64 } */ > - > - #include <stdbool.h> > --- > -2.25.4 > - > -- > 2.44.0 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-05-01 18:11 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-05-01 9:23 [Buildroot] [PATCH 1/3] package/uclibc: Bump to 1.0.48 Dmitry Chestnykh 2024-05-01 9:23 ` [Buildroot] [PATCH 2/3] configs/qemu_sparc_ss10_defconfig: Restore Dmitry Chestnykh 2024-05-01 12:11 ` Waldemar Brodkorb 2024-05-01 18:11 ` Yann E. MORIN 2024-05-01 9:23 ` [Buildroot] [PATCH 3/3] package/gcc: Remove unneeded patch Dmitry Chestnykh 2024-05-01 12:12 ` Waldemar Brodkorb 2024-05-01 18:10 ` Yann E. MORIN
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox