public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt
@ 2023-11-13  5:05 YunQiang Su
  2023-11-13  5:05 ` [PATCH v5 1/4] Gold: Add targ_extra_little_endian to configure.ac YunQiang Su
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: YunQiang Su @ 2023-11-13  5:05 UTC (permalink / raw)
  To: nickc; +Cc: binutils, YunQiang Su

YunQiang Su (4):
  Gold: Add targ_extra_little_endian to configure.ac
  Gold/MIPS: Drop mips*le/mips*el* triple pattern
  Gold/MIPS: Add targ_extra_size=64 for mips32 triples
  Gold/MIPS: Add mips64*/mips64*el triple support

 gold/configure     |  8 ++++++++
 gold/configure.ac  |  8 ++++++++
 gold/configure.tgt | 22 ++++++++++++++++++++--
 3 files changed, 36 insertions(+), 2 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v5 1/4] Gold: Add targ_extra_little_endian to configure.ac
  2023-11-13  5:05 [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt YunQiang Su
@ 2023-11-13  5:05 ` YunQiang Su
  2023-11-13  5:05 ` [PATCH v5 2/4] Gold/MIPS: Drop mips*le/mips*el* triple pattern YunQiang Su
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: YunQiang Su @ 2023-11-13  5:05 UTC (permalink / raw)
  To: nickc; +Cc: binutils, YunQiang Su

This option will be used by architectures which is big endian
by default, while little-endian support is also needed.

Mips(eb) ports are the examples.
---
 gold/configure     | 8 ++++++++
 gold/configure.ac  | 8 ++++++++
 gold/configure.tgt | 2 +-
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/gold/configure b/gold/configure
index 5c6fe2a5607..ccb1f2269b2 100755
--- a/gold/configure
+++ b/gold/configure
@@ -5266,6 +5266,10 @@ for targ in $target $canon_targets; do
 	      -o "$targ_extra_big_endian" = "true"; then
 	      targ_32_big=yes
 	  fi
+	  if test "$targ_little_endian" = "true" \
+	      -o "$targ_extra_little_endian" = "true"; then
+	      targ_32_little=yes
+	  fi
 	  if test "$targ_big_endian" = "false" \
 	      -o "$targ_extra_big_endian" = "false"; then
 	      targ_32_little=yes
@@ -5276,6 +5280,10 @@ for targ in $target $canon_targets; do
 	      -o "$targ_extra_big_endian" = "true"; then
 	      targ_64_big=yes
 	  fi
+	  if test "$targ_little_endian" = "true" \
+	      -o "$targ_extra_little_endian" = "true"; then
+	      targ_64_little=yes
+	  fi
 	  if test "$targ_big_endian" = "false" \
 	      -o "$targ_extra_big_endian" = "false"; then
 	      targ_64_little=yes
diff --git a/gold/configure.ac b/gold/configure.ac
index cafd3503b3b..e04e4086140 100644
--- a/gold/configure.ac
+++ b/gold/configure.ac
@@ -193,6 +193,10 @@ for targ in $target $canon_targets; do
 	      -o "$targ_extra_big_endian" = "true"; then
 	      targ_32_big=yes
 	  fi
+	  if test "$targ_little_endian" = "true" \
+	      -o "$targ_extra_little_endian" = "true"; then
+	      targ_32_little=yes
+	  fi
 	  if test "$targ_big_endian" = "false" \
 	      -o "$targ_extra_big_endian" = "false"; then
 	      targ_32_little=yes
@@ -203,6 +207,10 @@ for targ in $target $canon_targets; do
 	      -o "$targ_extra_big_endian" = "true"; then
 	      targ_64_big=yes
 	  fi
+	  if test "$targ_little_endian" = "true" \
+	      -o "$targ_extra_little_endian" = "true"; then
+	      targ_64_little=yes
+	  fi
 	  if test "$targ_big_endian" = "false" \
 	      -o "$targ_extra_big_endian" = "false"; then
 	      targ_64_little=yes
diff --git a/gold/configure.tgt b/gold/configure.tgt
index 751c8fd06c6..996bc901d1d 100644
--- a/gold/configure.tgt
+++ b/gold/configure.tgt
@@ -165,7 +165,7 @@ mips*-*-*)
  targ_machine=EM_MIPS
  targ_size=32
  targ_big_endian=true
- targ_extra_big_endian=false
+ targ_extra_little_endian=true
  ;;
 s390-*-*)
  targ_obj=s390
-- 
2.39.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v5 2/4] Gold/MIPS: Drop mips*le/mips*el* triple pattern
  2023-11-13  5:05 [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt YunQiang Su
  2023-11-13  5:05 ` [PATCH v5 1/4] Gold: Add targ_extra_little_endian to configure.ac YunQiang Su
@ 2023-11-13  5:05 ` YunQiang Su
  2023-11-13  5:05 ` [PATCH v5 3/4] Gold/MIPS: Add targ_extra_size=64 for mips32 triples YunQiang Su
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: YunQiang Su @ 2023-11-13  5:05 UTC (permalink / raw)
  To: nickc; +Cc: binutils, YunQiang Su

Only mips*el triples are supported by binutils.  The mips*le
or mips*el* may cause some problem with other components of
binutils, since they will consider them as big endian.
---
 gold/configure.tgt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gold/configure.tgt b/gold/configure.tgt
index 996bc901d1d..8f0f21bdc03 100644
--- a/gold/configure.tgt
+++ b/gold/configure.tgt
@@ -153,7 +153,7 @@ aarch64*-*)
  targ_big_endian=false
  targ_extra_big_endian=true
  ;;
-mips*el*-*-*|mips*le*-*-*)
+mips*el-*-*)
  targ_obj=mips
  targ_machine=EM_MIPS
  targ_size=32
-- 
2.39.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v5 3/4] Gold/MIPS: Add targ_extra_size=64 for mips32 triples
  2023-11-13  5:05 [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt YunQiang Su
  2023-11-13  5:05 ` [PATCH v5 1/4] Gold: Add targ_extra_little_endian to configure.ac YunQiang Su
  2023-11-13  5:05 ` [PATCH v5 2/4] Gold/MIPS: Drop mips*le/mips*el* triple pattern YunQiang Su
@ 2023-11-13  5:05 ` YunQiang Su
  2023-11-17 14:35   ` Nick Clifton
  2023-11-13  5:05 ` [PATCH v5 4/4] Gold/MIPS: Add mips64*/mips64*el triple support YunQiang Su
  2023-11-13  5:11 ` [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt YunQiang Su
  4 siblings, 1 reply; 9+ messages in thread
From: YunQiang Su @ 2023-11-13  5:05 UTC (permalink / raw)
  To: nickc; +Cc: binutils, YunQiang Su

So we can enable 64bit ELF support for MIPS32 toolchain.

This patch can fix build failure with configure:
   --target=mips-linux-gnu \
   --enable-targets=mips64-linux-gnuabi64,mips64-linux-gnuabin32
The error message is like:
   undefined reference to `gold::Output_data_reloc_base<9, true, 32, false>::
   ...
---
 gold/configure.tgt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gold/configure.tgt b/gold/configure.tgt
index 8f0f21bdc03..4b16634ff4e 100644
--- a/gold/configure.tgt
+++ b/gold/configure.tgt
@@ -157,6 +157,7 @@ mips*el-*-*)
  targ_obj=mips
  targ_machine=EM_MIPS
  targ_size=32
+ targ_extra_size=64
  targ_big_endian=false
  targ_extra_big_endian=true
  ;;
@@ -164,6 +165,7 @@ mips*-*-*)
  targ_obj=mips
  targ_machine=EM_MIPS
  targ_size=32
+ targ_extra_size=64
  targ_big_endian=true
  targ_extra_little_endian=true
  ;;
-- 
2.39.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v5 4/4] Gold/MIPS: Add mips64*/mips64*el triple support
  2023-11-13  5:05 [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt YunQiang Su
                   ` (2 preceding siblings ...)
  2023-11-13  5:05 ` [PATCH v5 3/4] Gold/MIPS: Add targ_extra_size=64 for mips32 triples YunQiang Su
@ 2023-11-13  5:05 ` YunQiang Su
  2023-11-13  5:11 ` [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt YunQiang Su
  4 siblings, 0 replies; 9+ messages in thread
From: YunQiang Su @ 2023-11-13  5:05 UTC (permalink / raw)
  To: nickc; +Cc: binutils, YunQiang Su

Use targ_size=64 and targ_extra_size=32
---
 gold/configure.tgt | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/gold/configure.tgt b/gold/configure.tgt
index 4b16634ff4e..e2e131bbd84 100644
--- a/gold/configure.tgt
+++ b/gold/configure.tgt
@@ -153,6 +153,14 @@ aarch64*-*)
  targ_big_endian=false
  targ_extra_big_endian=true
  ;;
+mips64*el-*-*)
+ targ_obj=mips
+ targ_machine=EM_MIPS
+ targ_size=64
+ targ_extra_size=32
+ targ_big_endian=false
+ targ_extra_big_endian=true
+ ;;
 mips*el-*-*)
  targ_obj=mips
  targ_machine=EM_MIPS
@@ -161,6 +169,14 @@ mips*el-*-*)
  targ_big_endian=false
  targ_extra_big_endian=true
  ;;
+mips64*-*-*)
+ targ_obj=mips
+ targ_machine=EM_MIPS
+ targ_size=64
+ targ_extra_size=32
+ targ_big_endian=true
+ targ_extra_little_endian=true
+ ;;
 mips*-*-*)
  targ_obj=mips
  targ_machine=EM_MIPS
-- 
2.39.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt
  2023-11-13  5:05 [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt YunQiang Su
                   ` (3 preceding siblings ...)
  2023-11-13  5:05 ` [PATCH v5 4/4] Gold/MIPS: Add mips64*/mips64*el triple support YunQiang Su
@ 2023-11-13  5:11 ` YunQiang Su
  4 siblings, 0 replies; 9+ messages in thread
From: YunQiang Su @ 2023-11-13  5:11 UTC (permalink / raw)
  To: Nick Clifton, Matthias Klose; +Cc: binutils, YunQiang Su

YunQiang Su <yunqiang.su@cipunited.com> 于2023年11月13日周一 13:06写道:
>
> YunQiang Su (4):
>   Gold: Add targ_extra_little_endian to configure.ac
>   Gold/MIPS: Drop mips*le/mips*el* triple pattern
>   Gold/MIPS: Add targ_extra_size=64 for mips32 triples
>   Gold/MIPS: Add mips64*/mips64*el triple support
>

If this patchset is OK, can/should we backport this patchset to 2.41?
We meet this problem:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050431

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 3/4] Gold/MIPS: Add targ_extra_size=64 for mips32 triples
  2023-11-13  5:05 ` [PATCH v5 3/4] Gold/MIPS: Add targ_extra_size=64 for mips32 triples YunQiang Su
@ 2023-11-17 14:35   ` Nick Clifton
  2023-11-17 14:57     ` YunQiang Su
  0 siblings, 1 reply; 9+ messages in thread
From: Nick Clifton @ 2023-11-17 14:35 UTC (permalink / raw)
  To: YunQiang Su; +Cc: binutils

Hi YunQiang Su,

> So we can enable 64bit ELF support for MIPS32 toolchain.
> 
> This patch can fix build failure with configure:
>     --target=mips-linux-gnu \
>     --enable-targets=mips64-linux-gnuabi64,mips64-linux-gnuabin32
> The error message is like:
>     undefined reference to `gold::Output_data_reloc_base<9, true, 32, false>::

Patch approved and applied.

Cheers
   Nick



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 3/4] Gold/MIPS: Add targ_extra_size=64 for mips32 triples
  2023-11-17 14:35   ` Nick Clifton
@ 2023-11-17 14:57     ` YunQiang Su
  2023-11-20 12:11       ` Nick Clifton
  0 siblings, 1 reply; 9+ messages in thread
From: YunQiang Su @ 2023-11-17 14:57 UTC (permalink / raw)
  To: Nick Clifton; +Cc: YunQiang Su, binutils

[-- Attachment #1: Type: text/plain, Size: 555 bytes --]

Nick Clifton <nickc@redhat.com> 于 2023年11月17日周五 22:36写道:

> Hi YunQiang Su,
>
> > So we can enable 64bit ELF support for MIPS32 toolchain.
> >
> > This patch can fix build failure with configure:
> >     --target=mips-linux-gnu \
> >     --enable-targets=mips64-linux-gnuabi64,mips64-linux-gnuabin32
> > The error message is like:
> >     undefined reference to `gold::Output_data_reloc_base<9, true, 32,
> false>::
>
> Patch approved and applied.
>

thanks. can i backport it to 2.41?


> Cheers
>    Nick
>
>
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 3/4] Gold/MIPS: Add targ_extra_size=64 for mips32 triples
  2023-11-17 14:57     ` YunQiang Su
@ 2023-11-20 12:11       ` Nick Clifton
  0 siblings, 0 replies; 9+ messages in thread
From: Nick Clifton @ 2023-11-20 12:11 UTC (permalink / raw)
  To: YunQiang Su; +Cc: YunQiang Su, binutils

Hi YunQiang Su,

>      > This patch can fix build failure with configure:
>      >     --target=mips-linux-gnu \
>      >     --enable-targets=mips64-linux-gnuabi64,mips64-linux-gnuabin32
>      > The error message is like:
>      >     undefined reference to `gold::Output_data_reloc_base<9, true, 32, false>::
> 
>     Patch approved and applied.
> 
> 
> thanks. can i backport it to 2.41?

Yes - please do.

Cheers
   Nick


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-11-20 12:11 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-13  5:05 [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt YunQiang Su
2023-11-13  5:05 ` [PATCH v5 1/4] Gold: Add targ_extra_little_endian to configure.ac YunQiang Su
2023-11-13  5:05 ` [PATCH v5 2/4] Gold/MIPS: Drop mips*le/mips*el* triple pattern YunQiang Su
2023-11-13  5:05 ` [PATCH v5 3/4] Gold/MIPS: Add targ_extra_size=64 for mips32 triples YunQiang Su
2023-11-17 14:35   ` Nick Clifton
2023-11-17 14:57     ` YunQiang Su
2023-11-20 12:11       ` Nick Clifton
2023-11-13  5:05 ` [PATCH v5 4/4] Gold/MIPS: Add mips64*/mips64*el triple support YunQiang Su
2023-11-13  5:11 ` [PATCH v5 0/4] Gold/MIPS: Improve MIPS support in configure.tgt YunQiang Su

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 read-only IMAP folder(s) and NNTP newsgroup(s).