[sisyphus] i586 rpm setversions regression

Dmitry V. Levin ldv на altlinux.org
Пн Дек 24 18:26:03 MSK 2012


On Mon, Dec 24, 2012 at 04:59:59PM +0400, Alexey Tourbin wrote:
> On Mon, Dec 24, 2012 at 04:42:46PM +0400, Gleb Fotengauer-Malinovskiy wrote:
> > On Mon, Dec 24, 2012 at 04:05:23PM +0400, Alexey Tourbin wrote:
> > > [builder на people ~]$ /usr/lib/rpm/setcmp set:kdSxWgTyZxEcQx104N1sOQPFrBU4hMyJgswBQdypWl99UkQfZ7FfVfLes8xXStDq2ZBO04AhAjro2klgZ3IPusa9PpeHQCT4xiF5vDAsf0PvkfkbHFKHGGYt7lk6gVuQUZg05tAONMVt1 set:jhK9a5Z0
> > > -2
> > > [builder на people ~]$
> > > 
> > > Похоже на проблему перекодирования в меньшую битность (в данном
> > > случае set:k > set:j).  Кажется, нашел ошибку, только теперь не знаю,
> > > как проверить - хешер не заводится.
> > 
> > У меня завёлся hasher на i586, в нём собрался rpm с этим патчем.
> > C этим rpm и corosync собирается и:
> > 
> > [builder на people .in]$ /usr/lib/rpm/setcmp set:kdSxWgTyZxEcQx104N1sOQPFrBU4hMyJgswBQdypWl99UkQfZ7FfVfLes8xXStDq2ZBO04AhAjro2klgZ3IPusa9PpeHQCT4xiF5vDAsf0PvkfkbHFKHGGYt7lk6gVuQUZg05tAONMVt1 set:jhK9a5Z0
> > 1
> 
> Да, теперь работает.
> 4.0.4-alt100.58-1-gf25f962

Спасибо, отправил в Сизиф под именем 4.0.4-alt100.59.

> > > --- lib/set.c-
> > > +++ lib/set.c
> > > @@ -1107,8 +1107,8 @@ int rpmsetcmp(const char *str1, const ch
> > >      int c1 = cache_decode_set(str1, Mshift1, &v1);
> > >      if (c1 < 0)
> > >  	return -3;
> > > -    unsigned v1bufA[c1 + 1];
> > > -    unsigned v1bufB[c1 + 1];
> > > +    unsigned v1bufA[c1 + SENTINELS];
> > > +    unsigned v1bufB[c1 + SENTINELS];
> > >      // decode set2 (on the stack)
> > >      int len2 = strlen(str2);
> > >      int c2 = decode_set_size(len2, Mshift2);

Хотел бы я знать, почему без этого патча код работает на x86-64, а также
на x86, будучи собранным gcc-4.5; чудеса оптимизации, наверное.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20121224/197c89cf/attachment.bin>


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