Skip site navigation (1)Skip section navigation (2)
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>