[Bug ld/17219] ld/mips: can no longer build libstdc++ (gcc 4.8/4.9)

2015-01-11 Thread matthew.fortune at imgtec dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=17219

Matthew Fortune  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at sourceware dot org   |matthew.fortune at 
imgtec dot com

--- Comment #4 from Matthew Fortune  ---
(In reply to Aaro Koskinen from comment #3)
> I get similar errors with release 2.25 binutils. Trying to cross-build MIPS
> GCC configured with --with-float=soft fails miserably. With hard float there
> is no issues (or binutils 2.24 with soft float). Apparently 2.25 binutils
> require some additional flags which GCC 4.9 fails to pass?
> 
> Is there any simple workaround for this?

This is a compiler driver issue. The LD failures relating to relocations are
somewhat strange but I believe they are not the important part here. The ABI
problems from the assembler warnings are the root cause.

I've put together a backport of minimal GCC driver changes for the GCC 4.9
branch and that is pretty much the only way to resolve this. The new
floating-point ABI checks in the assembler unfortunately couldn't be seamless
for everything and soft-float is the case that takes most of the pain.

With the GCC patch in place I managed to build a GCC 4.9 (branch) + binutils
2.25 (branch) soft-float toolchain. I'll post the patch to GCC at some point
tomorrow and try to remember and update this ticket with a link. The patch
should apply cleanly to any GCC 4.9 release so will have to be ported by a
distribution maintainer if anyone wants any of the already released GCC 4.9.x
compilers alongside binutils 2.25 onwards.

I will look at a similar patch for GCC 4.8 if there is sufficient call for that
alongside binutils 2.25.

Sorry for not getting to the GCC 4.9 patch sooner, I knew about it and never
quite got to doing it.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/18401] New: MIPS -march=xlp results in inconsistent ISA markers

2015-05-12 Thread matthew.fortune at imgtec dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=18401

Bug ID: 18401
   Summary: MIPS -march=xlp results in inconsistent ISA markers
   Product: binutils
   Version: 2.25
Status: NEW
  Severity: normal
  Priority: P2
 Component: gas
  Assignee: unassigned at sourceware dot org
  Reporter: matthew.fortune at imgtec dot com
  Target Milestone: ---

When using -march=xlp the assembler will mark an object with MIPS64 in the ELF
flags but will mark it (correctly) with MIPS64R2.

This is because the XLP CPU is marked as MIPS64R2 with XLR as the processor.
The processor is used to determine the BFD arch and the BFD arch then sets the
e_flags. However, the architecture in the .MIPS.abiflags uses the ISA rather
than the processor.

The simple fix would be to lie and represent the XLP as a MIPS64 but it would
be better to update the e_flags to be MIPS64R2 instead.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/18401] MIPS -march=xlp results in inconsistent ISA markers

2015-05-13 Thread matthew.fortune at imgtec dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=18401

--- Comment #3 from Matthew Fortune  ---
(In reply to Nick Clifton from comment #2)
> Hi Matthew,
> 
>   Will something like the uploaded patch work ?  (Caveat: I am not a MIPS
> expert, so there may be something that I have missed).
> 
> Cheers
>   Nick

Thanks for the patch but I'm afraid it will just shift the problem from XLP to
XLR. There is also a second inconsistency that can occur relating to the
octeon+ architecture. The problem cases appear to be where we have an
architecture that has extended the base and either not been represented in the
e_flags (octeon+) or the same architecture extension has been used on cores
with different base architectures (xlp vs xlr). I think I need to go through
and evaluate all the architectures and see whether there are any other problem
cases. I am half tempted to just relax the linker check for the problem cases
but if they can be fixed properly then that would be best of course.

I'm going to try and dig through this in the next day or so but may get
side-tracked.

thanks,
Matthew

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/18401] MIPS -march=xlp results in inconsistent ISA markers

2015-08-25 Thread matthew.fortune at imgtec dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=18401

Matthew Fortune  changed:

   What|Removed |Added

   Attachment #8311|0   |1
is obsolete||

--- Comment #5 from Matthew Fortune  ---
Created attachment 8550
  --> https://sourceware.org/bugzilla/attachment.cgi?id=8550&action=edit
Initial proposed fix

This patch is at least the start of a fix for this issue. The problem with the
XLP is that it is described as an 'XLR' in the e_flags machine info which is a
MIPS64 not a MIPS64R2 but the abiflags correctly represents the fact it is a
MIPS64R2. Similar things happen for octeon+ where it has no e_flags
representation (only octeon) but is correctly reported in abiflags.

The solution I propose is that we allow the abiflags information to represent
the same or newer isa/arch than can be inferred from the e_flags data. This
glosses over the subtle inconsistencies here and allows for future extensions
to eventually migrate to abiflags.

There are however a few other options for fixing this issue such as adding new
BFD mach entries for the inconsistent ISAs and adding more EF_MACH entries.
There is a limit to how far this scales though as we will run out of EF_MACH
values eventually so the proposed fix still stands.

I have not done any new tests for this but we need at the very least a simple
single object test for every supported arch and ideally a dual input link test
to combine all pairs of architectures that are related by ISA extension.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/18401] MIPS -march=xlp results in inconsistent ISA markers

2015-08-26 Thread matthew.fortune at imgtec dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=18401

--- Comment #7 from Matthew Fortune  ---
(In reply to cvs-com...@gcc.gnu.org from comment #6)
> The master branch has been updated by Nick Clifton :

Thanks Nick. I ran out of steam after trying to get my head around the right
kind of fix.

>   * ld-mips-elf/mips-elf-flags.exp: Add more ISA conflict tests.

I'd forgotten this .exp existed! I'll look through this when I get chance and
see if there are any other cases worth testing.

Matthew

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/21219] mips gas 2.26 report error:opcode not supported on this processor: mips32r2 (mips32r2) `mttc0 $0,$25,1'

2017-03-07 Thread matthew.fortune at imgtec dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=21219

Matthew Fortune  changed:

   What|Removed |Added

 CC||matthew.fortune at imgtec dot 
com

--- Comment #1 from Matthew Fortune  ---
Created attachment 9881
  --> https://sourceware.org/bugzilla/attachment.cgi?id=9881&action=edit
proposed fix

I have seen this before (and forgotten it without reporting a bug!). I believe
the origin of this is actually with the new .module directive support that I
added quite a long time ago. The default enabled ASEs for any given
architecture are lost before they can be applied.

Proposed patch is attached.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils