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

aarch64: Multiple adjustments to support the SMALL code model correctly #23

Merged
merged 7 commits into from
Jul 9, 2024

Conversation

eukarpov
Copy link
Member

@eukarpov eukarpov commented Jun 20, 2024

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

@eukarpov eukarpov force-pushed the static_function_and_local_label branch from a557ea3 to c23404f Compare June 30, 2024 09:57
@eukarpov eukarpov force-pushed the static_function_and_local_label branch from cb2570c to 2d1faaf Compare July 2, 2024 20:38
@eukarpov eukarpov force-pushed the static_function_and_local_label branch from 2d1faaf to cb2570c Compare July 2, 2024 20:45
@eukarpov eukarpov force-pushed the static_function_and_local_label branch from c274463 to 2b1da25 Compare July 3, 2024 17:44
@Blackhex Blackhex force-pushed the woarm64 branch 3 times, most recently from 235054f to 4809599 Compare July 6, 2024 07:58
@eukarpov eukarpov force-pushed the static_function_and_local_label branch from 2b1da25 to b50353b Compare July 6, 2024 13:50
@Blackhex Blackhex force-pushed the woarm64 branch 2 times, most recently from aa3fc02 to b3a4991 Compare July 8, 2024 07:58
@eukarpov eukarpov force-pushed the static_function_and_local_label branch from b50353b to b0ff5b3 Compare July 8, 2024 08:26
@eukarpov 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
@eukarpov eukarpov requested a review from Blackhex July 8, 2024 14:39
@eukarpov eukarpov force-pushed the static_function_and_local_label branch from b0ff5b3 to f72490c Compare July 9, 2024 09:23
Copy link
Member

@Blackhex Blackhex left a 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.

gcc/config/aarch64/aarch64-coff.h Show resolved Hide resolved
gcc/config/aarch64/aarch64-coff.h Show resolved Hide resolved
gcc/config/aarch64/aarch64.cc Show resolved Hide resolved
gcc/config/aarch64/aarch64.cc Show resolved Hide resolved
gcc/config/aarch64/cygming.h Show resolved Hide resolved
gcc/config/aarch64/aarch64-coff.h Show resolved Hide resolved
@eukarpov
Copy link
Member Author

eukarpov commented Jul 9, 2024

Thank you for the review. All comments will be addressed in the patch series preparation.

@eukarpov eukarpov merged commit f5ac1f8 into woarm64 Jul 9, 2024
1 check passed
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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants