-
Notifications
You must be signed in to change notification settings - Fork 2
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
aarch64: Multiple adjustments to support the SMALL code model correctly #23
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
eukarpov
force-pushed
the
static_function_and_local_label
branch
from
June 30, 2024 09:57
a557ea3
to
c23404f
Compare
eukarpov
force-pushed
the
static_function_and_local_label
branch
from
July 2, 2024 20:38
cb2570c
to
2d1faaf
Compare
eukarpov
force-pushed
the
static_function_and_local_label
branch
from
July 2, 2024 20:45
2d1faaf
to
cb2570c
Compare
eukarpov
force-pushed
the
static_function_and_local_label
branch
from
July 3, 2024 17:44
c274463
to
2b1da25
Compare
Blackhex
force-pushed
the
woarm64
branch
3 times, most recently
from
July 6, 2024 07:58
235054f
to
4809599
Compare
eukarpov
force-pushed
the
static_function_and_local_label
branch
from
July 6, 2024 13:50
2b1da25
to
b50353b
Compare
Blackhex
force-pushed
the
woarm64
branch
2 times, most recently
from
July 8, 2024 07:58
aa3fc02
to
b3a4991
Compare
eukarpov
force-pushed
the
static_function_and_local_label
branch
from
July 8, 2024 08:26
b50353b
to
b0ff5b3
Compare
eukarpov
changed the title
Add static function declaration and local label prefix.
aarch64: Multiple adjustments to support the SMALL code model correctly
Jul 8, 2024
It is needed for proper relocations.
Disable the legitimization of external decls
eukarpov
force-pushed
the
static_function_and_local_label
branch
from
July 9, 2024 09:23
b0ff5b3
to
f72490c
Compare
Blackhex
approved these changes
Jul 9, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed personally, these changes are OK for now and will be improved before patch set submission.
Thank you for the review. All comments will be addressed in the patch series preparation. |
Blackhex
pushed a commit
that referenced
this pull request
Sep 2, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 3, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 4, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 5, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 6, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 7, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 8, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 9, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 10, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 11, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 12, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 13, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 14, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 15, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 16, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 17, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 18, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 19, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 20, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 21, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 22, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 23, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 23, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 24, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 25, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 26, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 27, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 28, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 29, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Blackhex
pushed a commit
that referenced
this pull request
Sep 30, 2024
…ly (#23) LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels. The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64. Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without defining an exact section. aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE. Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list. Functions and objects have been missing declarations. Binutils was not able to distinguish static from external, an object from a function. PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC. These models are not yet implemented for AArch64. This fix relies on changes in binutils. aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations This change resolves the following issues: Relocation overflow when a struct is large Relocation overflow issue when building FFmpeg with -O3
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
LOCAL_LABEL_PREFIX has been changed to help the assembly compiler recognize local labels.
The anchors have been disabled as they use symbol + offset, which is not applicable for COFF AArch64.
Emitting locals has been replaced to use the .lcomm directive to declare uninitialized data without
defining an exact section.
aarch64.cc has been adjusted to prevent emitting symbol + offset for SYMBOL_SMALL_ABSOLUTE.
Instead, it will emit an offset with the "add" instruction to correct the address. The added code is a duplicate of the code from SYMBOL_SMALL_GOT_4G handling and will be refactored during the patch series preparation for the mailing list.
Functions and objects have been missing declarations. Binutils was not able to distinguish static from external,
an object from a function.
PE_COFF_LEGITIMIZE_EXTERN_DECL has been disabled, as it is needed for MEDIUM and LARGE models with -fPIC.
These models are not yet implemented for AArch64.
This fix relies on changes in binutils.
aarch64: Fix IMAGE_REL_ARM64_PAGEBASE_REL21 relocation and symbol reduction for relocations
This change resolves the following issues:
Relocation overflow when a struct is large
Relocation overflow issue when building FFmpeg with -O3
Tested with CI:
https://github.com/Windows-on-ARM-Experiments/mingw-woarm64-build/actions/runs/9600219765