[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: |
hjl.tools at gmail dot com |
Subject: |
[Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1 |
Date: |
Thu, 12 Jan 2023 18:31:46 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=13671
--- Comment #28 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Rainer Orth from comment #27)
> Created attachment 14577 [details]
> Augmented patch, incorporating review comments
expected_tls_le should be unsigned int. The check will be
if (r_type_tls == expected_tls_le)
> 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.
So TLS doesn't work for Solaris.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1, ro at gcc dot gnu.org, 2023/01/10
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1, ro at gcc dot gnu.org, 2023/01/10
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1, hjl.tools at gmail dot com, 2023/01/10
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1, ro at gcc dot gnu.org, 2023/01/11
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1,
hjl.tools at gmail dot com <=
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1, ro at gcc dot gnu.org, 2023/01/13
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1, ro at gcc dot gnu.org, 2023/01/13
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1, hjl.tools at gmail dot com, 2023/01/16
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1, ro at gcc dot gnu.org, 2023/01/17
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1, cvs-commit at gcc dot gnu.org, 2023/01/19
- [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1, ro at gcc dot gnu.org, 2023/01/20