On Wed, Jun 29, 2005 at 10:09:16AM +0400, Anton D. Kachalov wrote: > On Wed, Jun 29, 2005 at 09:40:22AM +0400, Anton Farygin wrote: > > Отрывать патч, естественно. > Ничего естественного. Фиксить надо, а не отрывать. > Кстати, фиксил я lua5-5.x.x, а не lua5-posix-... И тот и другой теперь не работают. lua5-posix демонстрирует segfault во время теста при сборке. Я первый раз этому большого значения не придал, а когда появилось "rebuild failed [1]", стало ясно, что что-то не так. Я ещё иногда использую lua в качестве кальукулятора, и сегодня при перемножении двух чисел получил segfault. Тут-то я и всполошился. :) > > Это похоже последствия портирования на x86_64 ;-) > > Это кривая lua. Вот из-за чего взялся этот патч (для lua5-5.0.2): > ltable.c: In function `luaH_mainposition': > ltable.c:108: warning: cast from pointer to integer of different size > ltable.c:110: warning: cast from pointer to integer of different size > > Это из-за функции IntPoint (llimits.h): > /* > ** conversion of pointer to integer > ** this is for hashing only; there is no problem if the integer > ** cannot hold the whole pointer value > */ > #define IntPoint(p) ((lu_hash)(p)) > > А ещё : > #if __WORDSIZE == 64 > typedef long int intptr_t; > typedef unsigned long int uintptr_t; > #else > typedef int intptr_t; > typedef unsigned int uintptr_t; > #endif > > Есть предложение заменить intptr_t на uintptr_t. Сейчас попробую.