[PATCH for-4.15] libs/devicemodel: Fix ABI breakage from xendevicemodel_set_irq_level()

Andrew Cooper posted 1 patch 3 years, 2 months ago
Test gitlab-ci failed
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20210204155850.23649-1-andrew.cooper3@citrix.com
tools/libs/devicemodel/Makefile              | 2 +-
tools/libs/devicemodel/libxendevicemodel.map | 6 +++++-
2 files changed, 6 insertions(+), 2 deletions(-)
[PATCH for-4.15] libs/devicemodel: Fix ABI breakage from xendevicemodel_set_irq_level()
Posted by Andrew Cooper 3 years, 2 months ago
It is not permitted to edit the VERS clause for a version in a release of Xen.

Revert xendevicemodel_set_irq_level()'s inclusion in .so.1.2 and bump the the
library minor version to .so.1.4 instead.

Fixes: 5d752df85f ("xen/dm: Introduce xendevicemodel_set_irq_level DM op")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Ian Jackson <iwj@xenproject.org>
CC: Wei Liu <wl@xen.org>
CC: Julien Grall <julien.grall@arm.com>
CC: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Chen <Wei.Chen@arm.com>

Critical to include in 4.15, as this is an ABI breakage.  Reverting the broken
change doesn't look to be a practical option.
---
 tools/libs/devicemodel/Makefile              | 2 +-
 tools/libs/devicemodel/libxendevicemodel.map | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/libs/devicemodel/Makefile b/tools/libs/devicemodel/Makefile
index 500de7adc5..3e50ff6d90 100644
--- a/tools/libs/devicemodel/Makefile
+++ b/tools/libs/devicemodel/Makefile
@@ -2,7 +2,7 @@ XEN_ROOT = $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 MAJOR    = 1
-MINOR    = 3
+MINOR    = 4
 
 SRCS-y                 += core.c
 SRCS-$(CONFIG_Linux)   += common.c
diff --git a/tools/libs/devicemodel/libxendevicemodel.map b/tools/libs/devicemodel/libxendevicemodel.map
index a0c30125de..733549327b 100644
--- a/tools/libs/devicemodel/libxendevicemodel.map
+++ b/tools/libs/devicemodel/libxendevicemodel.map
@@ -32,10 +32,14 @@ VERS_1.2 {
 	global:
 		xendevicemodel_relocate_memory;
 		xendevicemodel_pin_memory_cacheattr;
-		xendevicemodel_set_irq_level;
 } VERS_1.1;
 
 VERS_1.3 {
 	global:
 		xendevicemodel_modified_memory_bulk;
 } VERS_1.2;
+
+VERS_1.4 {
+	global:
+		xendevicemodel_set_irq_level;
+} VERS_1.3;
-- 
2.11.0


Re: [PATCH for-4.15] libs/devicemodel: Fix ABI breakage from xendevicemodel_set_irq_level()
Posted by Oleksandr 3 years, 2 months ago
On 04.02.21 17:58, Andrew Cooper wrote:

Hi Andrew

> It is not permitted to edit the VERS clause for a version in a release of Xen.
>
> Revert xendevicemodel_set_irq_level()'s inclusion in .so.1.2 and bump the the
> library minor version to .so.1.4 instead.
>
> Fixes: 5d752df85f ("xen/dm: Introduce xendevicemodel_set_irq_level DM op")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Ian Jackson <iwj@xenproject.org>
> CC: Wei Liu <wl@xen.org>
> CC: Julien Grall <julien.grall@arm.com>
> CC: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Wei Chen <Wei.Chen@arm.com>
>
> Critical to include in 4.15, as this is an ABI breakage.
I am sorry for the breakage, I admit I didn't know that
"It is not permitted to edit the VERS clause for a version in a release 
of Xen."


>    Reverting the broken
> change doesn't look to be a practical option.
> ---
>   tools/libs/devicemodel/Makefile              | 2 +-
>   tools/libs/devicemodel/libxendevicemodel.map | 6 +++++-
>   2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tools/libs/devicemodel/Makefile b/tools/libs/devicemodel/Makefile
> index 500de7adc5..3e50ff6d90 100644
> --- a/tools/libs/devicemodel/Makefile
> +++ b/tools/libs/devicemodel/Makefile
> @@ -2,7 +2,7 @@ XEN_ROOT = $(CURDIR)/../../..
>   include $(XEN_ROOT)/tools/Rules.mk
>   
>   MAJOR    = 1
> -MINOR    = 3
> +MINOR    = 4
>   
>   SRCS-y                 += core.c
>   SRCS-$(CONFIG_Linux)   += common.c
> diff --git a/tools/libs/devicemodel/libxendevicemodel.map b/tools/libs/devicemodel/libxendevicemodel.map
> index a0c30125de..733549327b 100644
> --- a/tools/libs/devicemodel/libxendevicemodel.map
> +++ b/tools/libs/devicemodel/libxendevicemodel.map
> @@ -32,10 +32,14 @@ VERS_1.2 {
>   	global:
>   		xendevicemodel_relocate_memory;
>   		xendevicemodel_pin_memory_cacheattr;
> -		xendevicemodel_set_irq_level;
>   } VERS_1.1;
>   
>   VERS_1.3 {
>   	global:
>   		xendevicemodel_modified_memory_bulk;
>   } VERS_1.2;
> +
> +VERS_1.4 {
> +	global:
> +		xendevicemodel_set_irq_level;
> +} VERS_1.3;

-- 
Regards,

Oleksandr Tyshchenko


Re: [PATCH for-4.15] libs/devicemodel: Fix ABI breakage from xendevicemodel_set_irq_level()
Posted by Andrew Cooper 3 years, 2 months ago
On 04/02/2021 16:50, Oleksandr wrote:
>
> On 04.02.21 17:58, Andrew Cooper wrote:
>
> Hi Andrew
>
>> It is not permitted to edit the VERS clause for a version in a
>> release of Xen.
>>
>> Revert xendevicemodel_set_irq_level()'s inclusion in .so.1.2 and bump
>> the the
>> library minor version to .so.1.4 instead.
>>
>> Fixes: 5d752df85f ("xen/dm: Introduce xendevicemodel_set_irq_level DM
>> op")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Ian Jackson <iwj@xenproject.org>
>> CC: Wei Liu <wl@xen.org>
>> CC: Julien Grall <julien.grall@arm.com>
>> CC: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Wei Chen <Wei.Chen@arm.com>
>>
>> Critical to include in 4.15, as this is an ABI breakage.
> I am sorry for the breakage, I admit I didn't know that
> "It is not permitted to edit the VERS clause for a version in a
> release of Xen."

To be honest, its not Xen specific.  Its any shared object with a stable
API/ABI.

It is explicitly fine to bump the minor version to add new things, but
you must never change the ABI of one which has been released.

~Andrew

Re: [PATCH for-4.15] libs/devicemodel: Fix ABI breakage from xendevicemodel_set_irq_level()
Posted by Ian Jackson 3 years, 2 months ago
Andrew Cooper writes ("[PATCH for-4.15] libs/devicemodel: Fix ABI breakage from xendevicemodel_set_irq_level()"):
> It is not permitted to edit the VERS clause for a version in a release of Xen.
> 
> Revert xendevicemodel_set_irq_level()'s inclusion in .so.1.2 and bump the the
> library minor version to .so.1.4 instead.
> 
> Fixes: 5d752df85f ("xen/dm: Introduce xendevicemodel_set_irq_level DM op")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Ian Jackson <iwj@xenproject.org>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>

Sorry for not spotting this earlier.