issue with clang and CPUTYPE native
Alexander Best
arundel at freebsd.org
Thu Dec 30 00:20:33 UTC 2010
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?
cheers.
alex
>
>
> and try to
>
> clang -march=native hello_world.c
>
> ? I wonder what cpu (if any) is detected.
>
>
> On Mon, Dec 27, 2010 at 09:35:59PM +0000, Alexander Best wrote:
> > hi there,
> >
> > i've been experiencing the following problems with clang during TARGET
> > buildworld for quite a while now:
> >
> > **** CODE ****
> > clang++ -O2 -pipe -march=native -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/gcclibs/include -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/libstdc++/libsupc++ -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/gcc -I/usr/subversion-src/gnu/lib/libsupc++/../libstdc++ -I. -frandom-seed=RepeatabilityConsideredGood -DNDEBUG -g -fstack-protector -fno-implicit-templates -ffunction-sections -fdata-sections -c /usr/subversion-src/gnu/lib/libsupc++/../../../contrib/libstdc++/libsupc++/tinfo2.cc
> > clang++: warning: argument unused during compilation: '-fno-implicit-templates'
> > clang++ -O2 -pipe -march=native -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/gcclibs/include -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/libstdc++/libsupc++ -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/gcc -I/usr/subversion-src/gnu/lib/libsupc++/../libstdc++ -I. -frandom-seed=RepeatabilityConsideredGood -DNDEBUG -g -fstack-protector -fno-implicit-templates -ffunction-sections -fdata-sections -c /usr/subversion-src/gnu/lib/libsupc++/../../../contrib/libstdc++/libsupc++/vec.cc
> > clang++: warning: argument unused during compilation: '-fno-implicit-templates'
> > clang++ -O2 -pipe -march=native -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/gcclibs/include -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/libstdc++/libsupc++ -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/gcc -I/usr/subversion-src/gnu/lib/libsupc++/../libstdc++ -I. -frandom-seed=RepeatabilityConsideredGood -DNDEBUG -g -fstack-protector -fno-implicit-templates -ffunction-sections -fdata-sections -c /usr/subversion-src/gnu/lib/libsupc++/../../../contrib/libstdc++/libsupc++/vterminate.cc
> > clang++: warning: argument unused during compilation: '-fno-implicit-templates'
> > clang -O2 -pipe -march=native -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/gcclibs/include -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/libstdc++/libsupc++ -I/usr/subversion-src/gnu/lib/libsupc++/../../../contrib/gcc -I/usr/subversion-src/gnu/lib/libsupc++/../libstdc++ -I. -frandom-seed=RepeatabilityConsideredGood -DNDEBUG -g -std=gnu99 -fstack-protector -c /usr/subversion-src/gnu/lib/libsupc++/../../../contrib/gcclibs/libiberty/cp-demangle.c
> > building static supc++ library
> > ranlib libsupc++.a
> > ===> gnu/lib/libobjc (all)
> > gcc -O2 -pipe -march=native -DHAVE_GTHR_DEFAULT -DIN_GCC -DIN_TARGET_LIBS -I. -I/usr/subversion-src/gnu/lib/libobjc/../../usr.bin/cc/cc_tools -I/usr/subversion-src/gnu/lib/libobjc/../../../contrib/libobjc/objc -I/usr/subversion-src/gnu/lib/libobjc/../../../contrib/libobjc -I/usr/subversion-src/gnu/lib/libobjc/../../../contrib/gcc/config -I/usr/subversion-src/gnu/lib/libobjc/../../../contrib/gcc -I/usr/subversion-src/gnu/lib/libobjc/../../../contrib/gcclibs/include -fexceptions -frandom-seed=RepeatabilityConsideredGood -DNDEBUG -g -std=gnu99 -fstack-protector -c /usr/subversion-src/gnu/lib/libobjc/../../../contrib/libobjc/archive.c
> > *** Signal 11
> >
> > Stop in /usr/subversion-src/gnu/lib/libobjc.
> > *** Error code 1
> >
> > Stop in /usr/subversion-src/gnu/lib.
> > *** Error code 1
> >
> > Stop in /usr/subversion-src.
> > *** Error code 1
> >
> > Stop in /usr/subversion-src.
> > *** Error code 1
> >
> > Stop in /usr/subversion-src.
> > *** Error code 1
> >
> > Stop in /usr/subversion-src.
> > **** CODE ****
> >
> > i've finally figured out that the following line in make.conf is causing the
> > problem:
> >
> > CPUTYPE ?= native
> >
> > if i remove it or change it to CPUTYPE ?= nocona everything works fine. if i'm
> > using gcc as compiler, having CPUTYPE ?= native in my make.conf causes no harm.
> >
> > this is on amd64 and a very recent HEAD snapshot.
> >
> > can somebody verify this issue?
> >
> > cheers.
> > alex
> >
> > --
> > a13x
> > _______________________________________________
> > freebsd-toolchain at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
> > To unsubscribe, send any mail to "freebsd-toolchain-unsubscribe at freebsd.org"
--
a13x
More information about the freebsd-toolchain
mailing list