From owner-freebsd-toolchain@FreeBSD.ORG Fri Dec 31 01:20:02 2010 Return-Path: Delivered-To: freebsd-toolchain@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 1233) id BA5CA1065672; Fri, 31 Dec 2010 01:20:02 +0000 (UTC) Date: Fri, 31 Dec 2010 01:20:02 +0000 From: Alexander Best To: Roman Divacky Message-ID: <20101231012002.GA73736@freebsd.org> References: <20101227213559.GA53178@freebsd.org> <20101228142203.GA69674@freebsd.org> <20101230002033.GA23583@freebsd.org> <20101230081445.GA99446@freebsd.org> <20101230184048.GA34628@freebsd.org> <20101230184442.GA79735@freebsd.org> <20101230184616.GA35433@freebsd.org> <20101230201848.GA92145@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20101230201848.GA92145@freebsd.org> Cc: freebsd-toolchain@freebsd.org Subject: Re: issue with clang and CPUTYPE native X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Dec 2010 01:20:02 -0000 On Thu Dec 30 10, Roman Divacky wrote: > On Thu, Dec 30, 2010 at 06:46:16PM +0000, Alexander Best wrote: > > On Thu Dec 30 10, Roman Divacky wrote: > > > On Thu, Dec 30, 2010 at 06:40:48PM +0000, Alexander Best wrote: > > > > On Thu Dec 30 10, Roman Divacky wrote: > > > > > On Thu, Dec 30, 2010 at 12:20:33AM +0000, Alexander Best wrote: > > > > > > On Tue Dec 28 10, Roman Divacky wrote: > > > > > > > -march=native in clang works by detecting CPU name > > > > > > > and passing it (if found) to llvm. if the CPU is not > > > > > > > detected nothing is passed. > > > > > > > > > > > > > > nocona is supported > > > > > > > > > > > > > > ie. leaving the CPUNAME empty or specifying it to "nocona" should > > > > > > > be equivalent to setting it to "native". > > > > > > > > > > > > > > > > > > > > > can you apply this patch: > > > > > > > > > > > > > > Index: Driver/Tools.cpp > > > > > > > =================================================================== > > > > > > > --- Driver/Tools.cpp (revision 122591) > > > > > > > +++ Driver/Tools.cpp (working copy) > > > > > > > @@ -684,6 +684,7 @@ > > > > > > > // FIXME: We should also incorporate the detected target features for use > > > > > > > // with -native. > > > > > > > std::string CPU = llvm::sys::getHostCPUName(); > > > > > > > + llvm::outs() << "detected CPU = " << CPU << "\n"; > > > > > > > if (!CPU.empty()) > > > > > > > CPUName = Args.MakeArgString(CPU); > > > > > > > } else > > > > > > > > > > > > thanks a lot for the patch. i've applied it, but am not sure how to only > > > > > > compile clang. 'make' in usr.bin/clang fails. do i have to run target > > > > > > buildworld or is there a way to only build clang? > > > > > > > > > > I would guess that cd lib/clang && make && cd ../../usr.bin/clang && make > > > > > should work, if not - full buildworld is necessary I guess > > > > > > > > thanks. that worked. this is what clang detects as my cpu: > > > > > > > > -march=native > > > > > > hm? are you sure it wrote -march=native? it should have written > > > > oh sorry. i copy&pasted the wrong line. :( > > > > detected CPU = core2 > > yes, you have core2, maybe thats why using CPU=nocona is causing you problems? CPU=nocona *isn't* causing problems. CPU=native is causing the problems. core2 is wrong imo. have a look at share/mk/bsd.cpu.mk for amd64. it sets core2 to nocona. so clang should detect nocona for CPU=native and *not* core2. however i'll try to run buildworld again with the patched clang to completely pinpoint the problem. cheers. alex -- a13x