[Mesa-dev] [PATCH] radv: mark const structs as extern in header file to avoid lto damage

Samuel Pitoiset samuel.pitoiset at gmail.com
Fri Apr 13 07:27:28 UTC 2018


Acked-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

On 04/13/2018 04:41 AM, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> The copr repo from che was using LTO and he reported radv broke
> recently with it. When testing with lto builds here I noticed
> that we weren't seeing any instance extensions reported.
> 
> It appears LTO was treating the const without extern as an empty
> struct, this is possibly a gcc bug, but we can work around it
> just by marking these with extern.
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>   src/amd/vulkan/radv_extensions.py | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/src/amd/vulkan/radv_extensions.py b/src/amd/vulkan/radv_extensions.py
> index db37d617f9..ae9396c43a 100644
> --- a/src/amd/vulkan/radv_extensions.py
> +++ b/src/amd/vulkan/radv_extensions.py
> @@ -199,9 +199,9 @@ struct radv_device_extension_table {
>      };
>   };
>   
> -const VkExtensionProperties radv_instance_extensions[RADV_INSTANCE_EXTENSION_COUNT];
> -const VkExtensionProperties radv_device_extensions[RADV_DEVICE_EXTENSION_COUNT];
> -const struct radv_instance_extension_table radv_supported_instance_extensions;
> +extern const VkExtensionProperties radv_instance_extensions[RADV_INSTANCE_EXTENSION_COUNT];
> +extern const VkExtensionProperties radv_device_extensions[RADV_DEVICE_EXTENSION_COUNT];
> +extern const struct radv_instance_extension_table radv_supported_instance_extensions;
>   
>   
>   struct radv_physical_device;
> 


More information about the mesa-dev mailing list