FS#46706 - [llvm] crash because of bad identification of the CPU pentium dual core ( penryn instead of core2 )

Attached to Project: Arch Linux
Opened by patrick (potomac) - Wednesday, 14 October 2015, 06:53 GMT
Last edited by Evangelos Foutras (foutrelis) - Wednesday, 13 January 2016, 03:50 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Evangelos Foutras (foutrelis)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
llvm 3.7.0 treats pentium dual core ( cpu family 6 model 23 ) as "penryn" cpu, which triggers a serious bug :

- crashs in openGL programs when llvm is used by mesa package, llvm will produces binary code with SSE4 instructions, which is not compatible with pentium dual core, because this CPU doesn't support SSE4 instructions ( bad cpu opcodes ),

with llvm 3.6.2 this bug doesn't occur because pentium dual core was treated as "core2" cpu, which is the good behaviour,

the llvm git commit who has introduced this bug is :

cd83d5b5071f072882ad06cc4b904b2d27d1e54a

https://github.com/llvm-mirror/llvm/commit/cd83d5b5071f072882ad06cc4b904b2d27d1e54a

this faulty commit has deleted a crucial test about SSE4 for CPU family 6 model 23 :

return HasSSE41 ? "penryn" : "core2";

the solution is simply to re-add this test for CPU family 6 model 23, I created a patch who solves this bug ( see the attachment )


this patch has been sent to llvm's bugzilla, I hope they will accept it, the link :
https://llvm.org/bugs/show_bug.cgi?id=25021

this patch is really safe and should be used by archlinux mainteneurs in order to release a new version of llvm package

Additional info:
* package version(s) llvm 3.7.0-4 llvm-libs 3.7.0-4
* config and/or log files etc.


Steps to reproduce:
- install llvm and llvm-libs 3.7.0-4
- if you have a pentium dual core ( CPU family 6 model 23 ) mesa 11.x ( who uses llvm libs ) will trigger a crash ( SIGILL "illegal instruction" ) when an openGL instruction is executed in "software mode" by the CPU
This task depends upon

Closed by  Evangelos Foutras (foutrelis)
Wednesday, 13 January 2016, 03:50 GMT
Reason for closing:  Fixed
Additional comments about closing:  mesa 11.0.5-1
Comment by Evangelos Foutras (foutrelis) - Wednesday, 13 January 2016, 03:50 GMT
This should be fixed in Mesa 11.1.0 (also backported to Mesa 11.0.5):

http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea421e919ae6e72e1319fb205c42a6fb53ca2f82

Loading...