Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Dmitry Chestnykh <dm.chestnykh@gmail.com>
Cc: buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 3/3] package/gcc: Remove unneeded patch.
Date: Wed, 1 May 2024 20:10:30 +0200	[thread overview]
Message-ID: <ZjKFlhNML-qNmMxb@landeda> (raw)
In-Reply-To: <20240501092328.323236-3-dm.chestnykh@gmail.com>

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

      parent reply	other threads:[~2024-05-01 18:10 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZjKFlhNML-qNmMxb@landeda \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@buildroot.org \
    --cc=dm.chestnykh@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox