bin/168253: clang crashes on Geode

Patrick Lamaiziere patfbsd at davenulle.org
Wed Jul 11 17:20:08 UTC 2012


The following reply was made to PR bin/168253; it has been noted by GNATS.

From: Patrick Lamaiziere <patfbsd at davenulle.org>
To: bug-followup at FreeBSD.org, freebsd at nagilum.org
Cc:  
Subject: Re: bin/168253: clang crashes on Geode
Date: Wed, 11 Jul 2012 19:11:21 +0200

 Hello, 
 
 for the record clang in 9.0 produces invalid code for the Geode
 LX (long nop instructions as nopl or nopw). A PR is open upstream
 for this issue (llvm) : http://llvm.org/bugs/show_bug.cgi?id=11212
 
 So do not try to use clang on the AMD geode LX. A work-around according Roman
 Divacky is to use "-no-integrated-as" to your CFLAGS, that will make clang use gnu as
 instead of its own integrated assembler, thus avoiding this problem.  
 (I've not tried this) 
 See : http://lists.freebsd.org/pipermail/freebsd-current/2011-October/028588.html
 
 I've made a try today (jully 11, 2012) (9.0-STABLE) on my AMD geode MX,
 it still uses invalid nop. (illegal instruction in gperf)
 
 # clang --version 
 FreeBSD clang version 3.1 (branches/release_31 156863) 20120523
 Target: i386-unknown-freebsd9.0
 Thread model: posix
 
 gperf built with clang:
 malpractice:/usr/obj# gdb ./usr/src/tmp/usr/src/gnu/usr.bin/gperf/gperf
 (gdb) run
 Starting program: /usr/obj/usr/src/tmp/usr/src/gnu/usr.bin/gperf/gperf
 
 Program received signal SIGILL, Illegal instruction.
 0x08052d6d in getstr ()
 (gdb) disass 0x08052d6d
 Dump of assembler code for function _ZL6getstrPPcPjP7__sFILEcj:
 0x08052d00 <_ZL6getstrPPcPjP7__sFILEcj+0>:      push   %ebp
 ...
 0x08052d6d <_ZL6getstrPPcPjP7__sFILEcj+109>:    nopl   (%eax)
 
 Regards.


More information about the freebsd-bugs mailing list