Date: Sat, 14 Nov 2015 18:37:05 -0553.75 From: "William A. Mahaffey III" <wam@hiwaay.net> To: FreeBSD toolchain mailing list !!!! <freebsd-toolchain@freebsd.org> Subject: Re: amd64-gcc question Message-ID: <5647D267.4070808@hiwaay.net> In-Reply-To: <56449EF8.7070806@hiwaay.net> References: <56449EF8.7070806@hiwaay.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 11/12/15 08:20, William A. Mahaffey III wrote: > > > Howdy, new to this list. I posted this to FreeBSD-users & was advised > to try this list or the GNU GCC list, so here goes: > > > I pkg-installed amd64-gcc over the weekend hoping for Graphite > (auto-loop parallelization) support, but no go. I looked around over > the weekend & found that there was no port for that package, only the > pkg. I just did a 'portsnap fetch upgrade' & there is now a port for > amd64-gcc, but it includes no files & no pkg-descr file. I determined > over the weekend that the gcc's from about V4.3 on can indeed be built > w/ Graphite support, but you need to do it manually. I found a post > dated 2010 from someone who did it under linux: > http://openwall.info/wiki/internal/gcc-local-build. I see no configure > files for any of the gcc ports (I have the entire ports tree > downloaded & local, & freshly updated as of a few min. ago). What is > the canonical/BPP (FreeBSD 9.3R) way of recompiling a port with > different config flags ? > > > I did find ports/pkgs for the 2 main components apparently needed for > Graphite support (cloog & ppl) & pkg-installed them over the weekend, > so I am ready to go on that front. > > > I have gotten as far as running 'make showconfig' in the various gcc* > & amd64-gcc directories to see what info I could get on default config > options. In all cases they gave options & said to run 'make config' to > change options. I didn't even see a 'config:' entry in the Makefiles > (probably included from elsewhere, but I didn't chase it). I only want > to make the minimum # of config mods necessary (trusting that pkg/port > maintainers probably know more than I about their various pkg's & > ports) to add the cloog & ppl support & recompile. > > > I have been using pkg almost exclusively to maintain my (now 3) > FreeBSD 9.3R boxen, except for recompiling the linux-c6 flash plugin > for this box whenever it get upgraded, so I have *no* experience with > getting more nitty-gritty w/ FreeBSD ports than that :-/. TIA & have a > good one. > > > BTW: > > [wam@devbox, pre, 8:19:58am] 676 % uname -a > FreeBSD devbox 9.3-RELEASE-p24 FreeBSD 9.3-RELEASE-p24 #0: Sat Aug 22 > 01:54:44 UTC 2015 > root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 > [wam@devbox, pre, 8:20:00am] 677 % sysctl -A | grep -A1 -B1 model > hw.machine: amd64 > hw.model: AMD A8-6500 APU with Radeon(tm) HD Graphics > hw.ncpu: 4 > -- > dev.rgephy.0.%location: phyno=1 > dev.rgephy.0.%pnpinfo: oui=0xe04c model=0x0 rev=0x0 > dev.rgephy.0.%parent: miibus0 > [wam@devbox, pre, 8:20:12am] 678 % > > Updated info & a question or 2: [wam@devbox, pre, 1:07:58pm] 876 % ^8^9^ gcc49 -v --help Using built-in specs. COLLECT_GCC=gcc49 COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc49/gcc/x86_64-portbld-freebsd9.3/4.9.4/lto-wrapper Usage: gcc49 [options] file... Options: -pass-exit-codes Exit with highest error code from a phase --help Display this information --target-help Display target specific command line options --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...] Display specific types of command line options --version Display compiler version information -dumpspecs Display all of the built in spec strings -dumpversion Display the version of the compiler -dumpmachine Display the compiler's target processor -print-search-dirs Display the directories in the compiler's search path -print-libgcc-file-name Display the name of the compiler's companion library -print-file-name=<lib> Display the full path to library <lib> -print-prog-name=<prog> Display the full path to compiler component <prog> -print-multiarch Display the target's normalized GNU triplet, used as a component in the library path -print-multi-directory Display the root directory for versions of libgcc -print-multi-lib Display the mapping between command line options and multiple library search directories -print-multi-os-directory Display the relative path to OS libraries -print-sysroot Display the target libraries directory -print-sysroot-headers-suffix Display the sysroot suffix used to find headers -Wa,<options> Pass comma-separated <options> on to the assembler -Wp,<options> Pass comma-separated <options> on to the preprocessor -Wl,<options> Pass comma-separated <options> on to the linker -Xassembler <arg> Pass <arg> on to the assembler -Xpreprocessor <arg> Pass <arg> on to the preprocessor -Xlinker <arg> Pass <arg> on to the linker -save-temps Do not delete intermediate files -save-temps=<arg> Do not delete intermediate files -no-canonical-prefixes Do not canonicalize paths when building relative prefixes to other gcc components -pipe Use pipes rather than intermediate files -time Time the execution of each subprocess -specs=<file> Override built-in specs with the contents of <file> -std=<standard> Assume that the input sources are for <standard> --sysroot=<directory> Use <directory> as the root directory for headers and libraries -B <directory> Add <directory> to the compiler's search paths -v Display the programs invoked by the compiler -### Like -v but options quoted and commands not executed -E Preprocess only; do not compile, assemble or link -S Compile only; do not assemble or link -c Compile and assemble, but do not link -o <file> Place the output into <file> -pie Create a position independent executable -shared Create a shared library -x <language> Specify the language of the following input files Permissible languages include: c c++ assembler none 'none' means revert to the default behavior of guessing the language based on the file's extension Options starting with -g, -f, -m, -O, -W, or --param are automatically passed on to the various sub-processes invoked by gcc49. In order to pass other options on to these processes the -W<letter> options must be used. Target: x86_64-portbld-freebsd9.3 Configured with: ./../gcc-4.9-20151028/configure --with-build-config=bootstrap-debug --disable-nls --enable-gnu-indirect-function --libdir=/usr/local/lib/gcc49 --libexecdir=/usr/local/libexec/gcc49 --program-suffix=49 --with-as=/usr/local/bin/as --with-gmp=/usr/local --with-gxx-include-dir=/usr/local/lib/gcc49/include/c++/ --with-ld=/usr/local/bin/ld --with-ppl=/usr/local/lib --with-cloog=/usr/local/lib --with-libiconv-prefix=/usr/local --with-pkgversion='FreeBSD Ports Collection' --with-system-zlib --disable-libgcj --enable-languages=c,c++,objc,fortran --prefix=/usr/local --localstatedir=/var --mandir=/usr/local/man --infodir=/usr/local/info/gcc49 --build=x86_64-portbld-freebsd9.3 Thread model: posix gcc version 4.9.4 20151028 (prerelease) (FreeBSD Ports Collection) COLLECT_GCC_OPTIONS='-v' '--help' '-mtune=generic' '-march=x86-64' /usr/local/libexec/gcc49/gcc/x86_64-portbld-freebsd9.3/4.9.4/cc1 -quiet -v help-dummy -quiet -dumpbase help-dummy -mtune=generic -march=x86-64 -auxbase help-dummy -version --help -o /tmp//cc0bsC4i.s The following options are specific to just the language Ada: None found. Use --help=Ada to show *all* the options supported by the Ada front-end .... & many more lines snipped. Observe that the config shows --with-ppl & --with-cloog, req'd for Graphite (auto-loop-parallelization), yet my compiles still fail out w/ the following: Beginning background make WAMGCC=49 all Initiated at 06:30:01 PM MCST on Saturday, November 14, 2015 MakeMPI: both --- MakeMPI: ../lib/R4/opteron/libmpi.a --- gcc49 -DNDEBUG -DUNDER_SCORE_SYS -DLOSE_GAMMAL -I../include -I~/inc -I../Properties -I../TEST -I../pre -march=opteron -mtune=opteron -O3 -fprefetch-loop-arrays -floo p-parallelize-all -ftree-parallelize-loops=4 -fopt-info -c mpi.c mpprime.c mpi.c:1:0: sorry, unimplemented: Graphite loop optimizations cannot be used (-fgraphite, -fgraphite-identity, -floop-block, -floop-interchange, -floop-strip-mine, -fl oop-parallelize-all, and -ftree-loop-linear) /* ^ mpprime.c:1:0: sorry, unimplemented: Graphite loop optimizations cannot be used (-fgraphite, -fgraphite-identity, -floop-block, -floop-interchange, -floop-strip-mine, -floop-parallelize-all, and -ftree-loop-linear) /* ^ *** [../lib/R4/opteron/libmpi.a] Error code 1 1 error `usual' not remade because of errors. i.e. no Graphite support. A few questions: 1. Is this list the proper forum for these questions :-) ? 2. Are ppl & cloog (both pkg-installed last wqeekend & ready to go) in fact all that is req'd for Graphite support to work ? 3. Did the port of gcc4.9 wind up removing the req'd code internally for Graphite support, so that even w/ the config properly setup, I still get no Graphite support ? This identical code (accessed via VPATH macro from Makefile over there) compiles elsewhere on my LAN under Intel icc/ifort & parallelizes where expected AOK. *Any* clues much appreciated. TIA & have a good one. -- William A. Mahaffey III ---------------------------------------------------------------------- "The M1 Garand is without doubt the finest implement of war ever devised by man." -- Gen. George S. Patton Jr.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5647D267.4070808>