[devel] device mapper version script

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Пт Сен 15 21:28:44 MSD 2006


On Fri, Sep 15, 2006 at 08:06:33PM +0400, Pavlov Konstantin wrote:
> On Friday 15 September 2006 19:55, Pavlov Konstantin wrote:
> > Всем привет.
> >
> > У меня готовы сборки новых LVM2 = 2.02.09 и device-mapper = 1.02.09.
> > Из нюансов:
> > Изменен version script для libdevmapper. 
> 
> А вот и diff:
> 
> $ diff -urN ../device-mapper-1.02.02-alt-sym device-mapper-1.02.09-alt-sym
> --- ../device-mapper-1.02.02-alt-sym    2006-09-15 20:07:18 +0400
> +++ device-mapper-1.02.09-alt-sym       2006-09-15 20:07:22 +0400
> @@ -29,7 +29,6 @@
>                 dm_task_set_ro;
>                 dm_task_set_sector;
>                 dm_task_set_uuid;
> -       local:

В окончательном пакете это делать не нужно - я предложил сделать это
временно, чтобы пакет хоть как-то собрался, и к нему можно было бы
применить утилиты для сравнения набора экспортируемых символов.

>                 *;
>  };
> 
> @@ -116,3 +115,27 @@

Где-то в промежутке должно было бы быть удаление dm_strdup (хотя, как
оказалось, несуществующие символы ld просто игнорирует).

Вообще история с dm_strdup следующая:

http://www.redhat.com/archives/dm-devel/2006-February/msg00057.html

Т.е., upstream сознательно разломал ABI.

>                 dm_tree_preload_children;
>                 dm_tree_suspend_children;
>  };
> +
> +DEVMAPPER_1.02.09 {
> +    global:
> +        _align_chunk;
> +        _fini;
> +        _init;
> +        _new_chunk;
> +        add_dev_node;
> +        create_dir;
> +        create_target;
> +        dm_check_version;
> +        dm_log;
> +        dm_segtypes;
> +        dm_strdup_aux;
> +        dm_task_set_geometry;
> +        dm_task_set_gid;
> +        dm_task_set_mode;
> +        dm_task_set_uid;
> +        dm_tree_skip_lockfs;
> +        rename_dev_node;
> +        rm_dev_node;
> +        update_devs;
> +};

Здесь два замечания:

1) Далеко не все эти символы нужно экспортировать - скорее всего,
   здесь должны быть только символы вида dm_*.  Более того, в
   оригинальных исходниках уже есть файл .exported_symbols, который
   применяется для явного указания экспортируемых символов (правда,
   там всё загоняется в одну версию с именем Base).  Очевидно, что в
   списке символов с версиями должны быть те и только те символы,
   которые перечислены в файле .exported_symbols (возможно, это даже
   не все символы вида dm_*).

2) В version script можно ещё указывать зависимости между версиями -
   написать, что новая версия базируется на предыдущей.  Хотя я не
   совсем понимаю смысл этого действия для варианта GNU - всё равно
   переносить символы из одной версии в другую нельзя; похоже, это
   было нужно в основном для исходного варианта от Sun.

   Впрочем, в существующем файле для версии 1.02.02 эти зависимости
   уже отсутствуют - не уверен, что от их добавления ничего не
   сломается.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060915/3c922032/attachment-0001.bin>


Подробная информация о списке рассылки Devel