Re: Configure checks and optimizations/crc32 tests
| От | Heikki Linnakangas |
|---|---|
| Тема | Re: Configure checks and optimizations/crc32 tests |
| Дата | |
| Msg-id | 55CDE0A1.8000706@iki.fi обсуждение исходный текст |
| Ответ на | Configure checks and optimizations/crc32 tests (Andres Freund <andres@anarazel.de>) |
| Ответы |
Re: Configure checks and optimizations/crc32 tests
|
| Список | pgsql-hackers |
On 08/14/2015 12:20 PM, Andres Freund wrote: > Hi, > > when building with optimizations clang-3.7, probably some older > compilers as well, fail with a funny error: > > fatal error: error in backend: Cannot select: intrinsic %llvm.x86.sse42.crc32.64.64 > > turns out that is because configure chose to use the crc32 instruction, > without the according compiler -msse4.2 flag. Why you ask? Because the > whole configure test is optimized away. Nothing depends on it's > output... Oh, interesting. > We can easily fix the issue by adding > /* return values dependent on crc, to prevent optimizations */ > return crc == 0; > or so to the end of PGAC_SSE42_CRC32_INTRINSICS. Yeah, seems like a simple fix. > But we've played that whack-a-mole game in a bunch of configure tests > now, and it seems likely that more are coming with compilers getting > better. I'd not be surprised if some tests actually always succeed, we > just don't notice it because it's only on new compilers that have the > tested feature anyway... Yeah, wouldn't be surprised if the other similar tests for all __sync_* family of functions had the same problem. > One way trying to fix this would be to explicitly disable optimizations > during tests. I'm not sure that's a good idea, but it's one. I think adding the "return" is better. - Heikki
В списке pgsql-hackers по дате отправления: