bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.


From: ro at gcc dot gnu.org
Subject: [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1
Date: Wed, 11 Jan 2023 14:34:01 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=13671

Rainer Orth <ro at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #14568|0                           |1
        is obsolete|                            |

--- Comment #27 from Rainer Orth <ro at gcc dot gnu.org> ---
Created attachment 14577
  --> https://sourceware.org/bugzilla/attachment.cgi?id=14577&action=edit
Augmented patch, incorporating review comments

Like so?  I wonder if it would be possible to move the declaration of
expected_tls_le to its use.  Given that binutils now requires C99, that would
certainly be clearer, but differ in style from the rest of the file.

Tested on i386-pc-solaris2.11 and i686-pc-linux-gnu as well as a full
all-languages
gcc bootstrap.

As an additional experiment, I've enabled ld-i386/tls.exp on Solaris/x86. 
Before
this patch, only two tests FAIL:

FAIL: TLS GD/LD -> IE transition without PLT
FAIL: TLS GD/LD -> IE transition without PLT (-z now)

The error is the expected

Running: tmpdir/tls-1d > tmpdir/tls-1d.out
ld.so.1: tls-1d: fatal: relocation error: R_386_UNKNOWN37: file tmpdir/tls-1d:
symbol gd: offset size (0 bytes) is not supported

With the patch, those two tests continue to FAIL.  However, the error is
different:

/var/gcc/binutils/i386/obj/binutils-2.40-branch-local/ld/tmpdir/ld/collect-ld:
warning: /usr/lib/crtn.o: missing .note.GNU-stack section implies executable
stack
/var/gcc/binutils/i386/obj/binutils-2.40-branch-local/ld/tmpdir/ld/collect-ld:
NOTE: This behaviour is deprecated and will be removed in a future version of
the linker
/var/gcc/binutils/i386/obj/binutils-2.40-branch-local/ld/tmpdir/ld/collect-ld:
BFD (GNU Binutils) 2.39.90.20230111 assertion fail
/vol/src/gnu/binutils/hg/binutils-2.40-branch/local/bfd/elf32-i386.c:3377
/var/gcc/binutils/i386/obj/binutils-2.40-branch-local/ld/tmpdir/ld/collect-ld:
BFD (GNU Binutils) 2.39.90.20230111 assertion fail
/vol/src/gnu/binutils/hg/binutils-2.40-branch/local/bfd/elf32-i386.c:3377
/var/gcc/binutils/i386/obj/binutils-2.40-branch-local/ld/tmpdir/ld/collect-ld:
BFD (GNU Binutils) 2.39.90.20230111 assertion fail
/vol/src/gnu/binutils/hg/binutils-2.40-branch/local/bfd/elf32-i386.c:3377
collect2: error: ld returned 1 exit status

On top of that, there are four new failures

+FAIL: TLS GD/LD -> LE transition without PLT (dynamic)
+FAIL: TLS GD/LD -> LE transition without PLT (dynamic, -z now)
+FAIL: TLS GD/LD -> LE transition without PLT (PIE)
+FAIL: TLS GD/LD -> LE transition without PLT (PIE, -z now)

which show the same error.

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]