Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

elf: Update LoongArch eflags #483

Merged
merged 1 commit into from
Nov 9, 2022

Conversation

xry111
Copy link
Contributor

@xry111 xry111 commented Nov 8, 2022

In a revision of LoongArch ELF ABI [1], it was decided that ILP32 objects must use ELFCLASS32. Now both LP64D and ILP32D will use the same number (0x1) for "double float", so EF_LARCH_ABI_LP64{S,F,D} are renamed and EF_LARCH_ABI_ILP32{S,F,D} are removed.

The change is ABI-compatible for LP64, but not API-compatible. ILP32 is not supported by GCC and Glibc yet so it's not really used anyway.

And, a seperate bit is allocated to indicate if the ELF object file uses any relocation type directly writing to immediate slots [2].

Update the code to match these changes.

[1]:https://github.com/loongson/LoongArch-Documentation/pull/47/files#diff-711b3e7b6a005b492898ac6d93f2d8d37c00e0831e210993a6f9dbb26c043717 [2]:https://github.com/loongson/LoongArch-Documentation/pull/61/files#diff-711b3e7b6a005b492898ac6d93f2d8d37c00e0831e210993a6f9dbb26c043717

In a revision of LoongArch ELF ABI [1], it was decided that ILP32
objects must use ELFCLASS32.  Now both LP64D and ILP32D will use the
same number (0x1) for "double float", so EF_LARCH_ABI_LP64{S,F,D} are
renamed and EF_LARCH_ABI_ILP32{S,F,D} are removed.

The change is ABI-compatible for LP64, but not API-compatible.  ILP32 is
not supported by GCC and Glibc yet so it's not really used anyway.

And, a seperate bit is allocated to indicate if the ELF object file uses
any relocation type directly writing to immediate slots [2].

Update the code to match these changes.

[1]:https://github.com/loongson/LoongArch-Documentation/pull/47/files#diff-711b3e7b6a005b492898ac6d93f2d8d37c00e0831e210993a6f9dbb26c043717
[2]:https://github.com/loongson/LoongArch-Documentation/pull/61/files#diff-711b3e7b6a005b492898ac6d93f2d8d37c00e0831e210993a6f9dbb26c043717
@philipc philipc merged commit 1f212fa into gimli-rs:master Nov 9, 2022
@philipc
Copy link
Contributor

philipc commented Nov 9, 2022

Note that this is a breaking change. Do you think that there will continue to be breaking changes for the LoongArch definitions? While it's okay to have a breaking change now (there's other breaking changes already), it would be nice to avoid if possible.

@xry111
Copy link
Contributor Author

xry111 commented Nov 9, 2022

Note that this is a breaking change. Do you think that there will continue to be breaking changes for the LoongArch definitions? While it's okay to have a breaking change now (there's other breaking changes already), it would be nice to avoid if possible.

I don't think this will happen again.

mcbegamerxx954 pushed a commit to mcbegamerxx954/object that referenced this pull request Jun 15, 2024
In a revision of LoongArch ELF ABI [1], it was decided that ILP32
objects must use ELFCLASS32.  Now both LP64D and ILP32D will use the
same number (0x1) for "double float", so EF_LARCH_ABI_LP64{S,F,D} are
renamed and EF_LARCH_ABI_ILP32{S,F,D} are removed.

The change is ABI-compatible for LP64, but not API-compatible.  ILP32 is
not supported by GCC and Glibc yet so it's not really used anyway.

And, a separate bit is allocated to indicate if the ELF object file uses
any relocation type directly writing to immediate slots [2].

Update the code to match these changes.

[1]:https://github.com/loongson/LoongArch-Documentation/pull/47/files#diff-711b3e7b6a005b492898ac6d93f2d8d37c00e0831e210993a6f9dbb26c043717
[2]:https://github.com/loongson/LoongArch-Documentation/pull/61/files#diff-711b3e7b6a005b492898ac6d93f2d8d37c00e0831e210993a6f9dbb26c043717
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants