public inbox for libffi-discuss@sourceware.org
 help / color / mirror / Atom feed
* of unexpected failures 131 with libffi-3.0.12
@ 2013-02-24  9:02 Dennis Clarke
  2013-02-24 11:32 ` Anthony Green
  0 siblings, 1 reply; 6+ messages in thread
From: Dennis Clarke @ 2013-02-24  9:02 UTC (permalink / raw)
  To: libffi-discuss; +Cc: green



Am pretty sure that these are all false positives : 


                === libffi Summary ===

# of unexpected failures        131
# of unresolved testcases       131
# of unsupported tests          11


I had just finished doing a build of openssl 1.0.1e , libssh2-1.4.3, libgcrypt-1.4.6 and gnutls-3.1.8 and was about to build guile-2.0.7 but it required libffi.  I checked for most recent release and saw libffi-3.0.12 was avail abd dl'd it .. did a basic configure : 

$ ./configure --enable-shared --enable-static 
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking target system type... sparc-sun-solaris2.10
continue configure in default builddir "./sparc-sun-solaris2.10"
....exec /bin/bash .././configure "--srcdir=.." "--enable-builddir=sparc-sun-solaris2.10" "solaris2.10"
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking target system type... sparc-sun-solaris2.10
checking for gsed... /usr/local/bin/gsed
checking for a BSD-compatible install... ../install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ../install-sh -c -d
checking for gawk... gawk
checking whether /usr/local/bin/gmake sets $(MAKE)... yes
checking for gcc... /opt/solarisstudio12.3/bin/cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether /opt/solarisstudio12.3/bin/cc accepts -g... yes
checking for /opt/solarisstudio12.3/bin/cc option to accept ISO C89... none needed
checking for style of include used by /usr/local/bin/gmake... GNU
checking dependency style of /opt/solarisstudio12.3/bin/cc... none
checking dependency style of /opt/solarisstudio12.3/bin/cc... none
checking whether /opt/solarisstudio12.3/bin/cc and cc understand -c and -o together... yes
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/local/bin/gsed
checking for grep that handles long lines and -e... /usr/xpg4/bin/grep
checking for egrep... /usr/xpg4/bin/grep -E
checking for fgrep... /usr/xpg4/bin/grep -F
checking for non-GNU ld... /usr/ccs/bin/sparcv9/ld
checking if the linker (/usr/ccs/bin/sparcv9/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/ccs/bin/sparcv9/nm -p
checking the name lister (/usr/ccs/bin/sparcv9/nm -p) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 786240
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert sparc-sun-solaris2.10 file names to sparc-sun-solaris2.10 format... func_convert_file_noop
checking how to convert sparc-sun-solaris2.10 file names to toolchain format... func_convert_file_noop
checking for /usr/ccs/bin/sparcv9/ld option to reload object files... -r
checking for objdump... no
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/ccs/bin/sparcv9/nm -p output from /opt/solarisstudio12.3/bin/cc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... /opt/solarisstudio12.3/bin/cc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking for /opt/solarisstudio12.3/bin/cc option to produce PIC... -KPIC -DPIC
checking if /opt/solarisstudio12.3/bin/cc PIC flag -KPIC -DPIC works... yes
checking if /opt/solarisstudio12.3/bin/cc static flag -Bstatic works... yes
checking if /opt/solarisstudio12.3/bin/cc supports -c -o file.o... yes
checking if /opt/solarisstudio12.3/bin/cc supports -c -o file.o... (cached) yes
checking whether the /opt/solarisstudio12.3/bin/cc linker (/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking size of size_t... 8
checking for C compiler vendor... sun
checking whether to enable maintainer-specific portions of Makefiles... no
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for mmap... yes
checking for sys/mman.h... (cached) yes
checking for mmap... (cached) yes
checking whether read-only mmap of a plain file works... yes
checking whether mmap from /dev/zero works... yes
checking for MAP_ANON(YMOUS)... yes
checking whether mmap with MAP_ANON(YMOUS) works... yes
checking for ANSI C header files... (cached) yes
checking for memcpy... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking size of double... 8
checking size of long double... 16
checking whether byte ordering is bigendian... yes
checking assembler .cfi pseudo-op support... no
checking assembler and linker support unaligned pc related relocs... no
checking assembler .register pseudo-op support... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating include/Makefile
config.status: creating include/ffi.h
config.status: creating Makefile
config.status: creating testsuite/Makefile
config.status: creating man/Makefile
config.status: creating libffi.pc
config.status: creating fficonfig.h
config.status: linking ../src/sparc/ffitarget.h to include/ffitarget.h
config.status: executing buildir commands
config.status: create top_srcdir/Makefile guessed from local Makefile
config.status: build in sparc-sun-solaris2.10 (HOST=)
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing include commands
config.status: executing src commands
$


compile went smooth however gmake check throws an epic 131 unexpected fails : 

                === libffi Summary ===

# of unexpected failures        131
# of unresolved testcases       131
# of unsupported tests          11


That just can't be right.

Any thoughts on what to look for ? 

Dennis 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: of unexpected failures 131 with libffi-3.0.12
  2013-02-24  9:02 of unexpected failures 131 with libffi-3.0.12 Dennis Clarke
@ 2013-02-24 11:32 ` Anthony Green
  2013-02-24 13:35   ` Dennis Clarke
  2013-02-24 23:40   ` Dennis Clarke
  0 siblings, 2 replies; 6+ messages in thread
From: Anthony Green @ 2013-02-24 11:32 UTC (permalink / raw)
  To: Dennis Clarke; +Cc: libffi-discuss

On Sun, Feb 24, 2013 at 4:02 AM, Dennis Clarke <dclarke@blastwave.org> wrote:
>
>
> Am pretty sure that these are all false positives :
>
>
>                 === libffi Summary ===
>
> # of unexpected failures        131
> # of unresolved testcases       131
> # of unsupported tests          11

The even number of pass/fail suggests some kind of linking error.
What does testsuite/libffi.log say?

AG

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: of unexpected failures 131 with libffi-3.0.12
  2013-02-24 11:32 ` Anthony Green
@ 2013-02-24 13:35   ` Dennis Clarke
  2013-02-24 23:40   ` Dennis Clarke
  1 sibling, 0 replies; 6+ messages in thread
From: Dennis Clarke @ 2013-02-24 13:35 UTC (permalink / raw)
  To: Anthony Green; +Cc: libffi-discuss



----- Original Message -----
From: Anthony Green <green@moxielogic.com>
Date: Sunday, February 24, 2013 6:32 am
Subject: Re: of unexpected failures 131 with libffi-3.0.12
To: Dennis Clarke <dclarke@blastwave.org>
Cc: libffi-discuss@sourceware.org


> On Sun, Feb 24, 2013 at 4:02 AM, Dennis Clarke <dclarke@blastwave.org> 
> wrote:
> >
> >
> > Am pretty sure that these are all false positives :
> >
> >
> >                 === libffi Summary ===
> >
> > # of unexpected failures        131
> > # of unresolved testcases       131
> > # of unsupported tests          11
> 
> The even number of pass/fail suggests some kind of linking error.
> What does testsuite/libffi.log say?

ah ha .. well it seems clear that the Makefile is broken in that the CFLAGS were ignored completely. All the binaries we 32-bit and that is wrong : 

$ pwd
/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001
$ find . -type f -name libffi.log
./sparc-sun-solaris2.10/testsuite/libffi.log
$ ls -l ./sparc-sun-solaris2.10/testsuite/libffi.log
-rwxr-xr-x   1 dclarke  other     234331 Feb 24 08:54 ./sparc-sun-solaris2.10/testsuite/libffi.log
$ more ./sparc-sun-solaris2.10/testsuite/libffi.log
Test Run By dclarke on Sun Feb 24 08:54:12 2013
Native configuration is sparc-sun-solaris2.10

                === libffi tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/local/share/dejagnu/baseboards/unix.exp as board description file for
 target.
Using /usr/local/share/dejagnu/config/unix.exp as generic interface file for tar
get.
Using ../../testsuite/config/default.exp as tool-and-target-specific interface f
ile.
Running ../../testsuite/libffi.call/call.exp ...
set_ld_library_path_env_vars: ld_library_path=:/usr/local/build/libffi-3.0.12_Su
nOS5.10_sparcv9.001/sparc-sun-solaris2.10/testsuite/../.libs
Executing on host: /opt/solarisstudio12.3/bin/cc ../../testsuite/libffi.call/clo
sure_fn0.c    -I/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-s
olaris2.10/testsuite/../include -I../../testsuite/../include  -I/usr/local/build
/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-solaris2.10/testsuite/../include/
.. -L/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-solaris2.10/
testsuite/../.libs  -lffi -lm   -o ./closure_fn0.exe    (timeout = 300)
spawn /opt/solarisstudio12.3/bin/cc ../../testsuite/libffi.call/closure_fn0.c -I
/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-solaris2.10/tests
uite/../include -I../../testsuite/../include -I/usr/local/build/libffi-3.0.12_Su
nOS5.10_sparcv9.001/sparc-sun-solaris2.10/testsuite/../include/.. -L/usr/local/b
uild/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-solaris2.10/testsuite/../.lib
s -lffi -lm -o ./closure_fn0.exe
ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-s
olaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to ./closure_fn0.exe
compiler exited with status 1
output is:
ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-s
olaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to ./closure_fn0.exe

FAIL: libffi.call/closure_fn0.c (test for excess errors)
Excess errors:
ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-s
olaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to ./closure_fn0.exe

UNRESOLVED: libffi.call/closure_fn0.c compilation failed to produce executable
Executing on host: /opt/solarisstudio12.3/bin/cc ../../testsuite/libffi.call/clo
sure_fn1.c    -I/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-s
olaris2.10/testsuite/../include -I../../testsuite/../include  -I/usr/local/build
/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-solaris2.10/testsuite/../include/
.. -L/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-solaris2.10/
testsuite/../.libs  -lffi -lm   -o ./closure_fn1.exe    (timeout = 300)
spawn /opt/solarisstudio12.3/bin/cc ../../testsuite/libffi.call/closure_fn1.c -I
/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-solaris2.10/tests
uite/../include -I../../testsuite/../include -I/usr/local/build/libffi-3.0.12_Su
nOS5.10_sparcv9.001/sparc-sun-solaris2.10/testsuite/../include/.. -L/usr/local/b
uild/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-solaris2.10/testsuite/../.lib
s -lffi -lm -o ./closure_fn1.exe
ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-s
olaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to ./closure_fn1.exe
compiler exited with status 1
output is:
ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-s
olaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to ./closure_fn1.exe

FAIL: libffi.call/closure_fn1.c (test for excess errors)
Excess errors:
ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001/sparc-sun-s
olaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to ./closure_fn1.exe

UNRESOLVED: libffi.call/closure_fn1.c compilation failed to produce executable
Executing on host: /opt/solarisstudio12.3/bin/cc ../../testsuite/libffi.call/clo
etc
etc
etc

So I need to locate the Makefile at fault here and ensure CFLAGS is the same as
everything else. 

dc 





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: of unexpected failures 131 with libffi-3.0.12
  2013-02-24 11:32 ` Anthony Green
  2013-02-24 13:35   ` Dennis Clarke
@ 2013-02-24 23:40   ` Dennis Clarke
  2013-02-25  0:18     ` Anthony Green
  1 sibling, 1 reply; 6+ messages in thread
From: Dennis Clarke @ 2013-02-24 23:40 UTC (permalink / raw)
  To: Anthony Green; +Cc: libffi-discuss


> On Sun, Feb 24, 2013 at 4:02 AM, Dennis Clarke <dclarke@blastwave.org> 
> wrote:
> >
> >
> > Am pretty sure that these are all false positives :
> >
> >
> >                 === libffi Summary ===
> >
> > # of unexpected failures        131
> > # of unresolved testcases       131
> > # of unsupported tests          11
> 
> The even number of pass/fail suggests some kind of linking error.
> What does testsuite/libffi.log say?

* This is long and detailed.  Sorry.  With luck we can get a perfect 
* build and test run and then update http://www.moxielogic.org/wiki/index.php?title=Libffi_3.0.12

Well I am stumped a bit here.  I looked into the Makefile's found and they 
all have the correct CFLAGS.

Should I be looking for LD_MAGIC or some sort of CFLAGS_FOR_LD ? 

I figure there must be something missing here as all the tests are being 
created, or attempted to be created, as 32-bit objects. That won't work as
the libffi produced in the compile is 64-bit.

For the sake of being very pedantic, precise and full disclosure here is what
I am doing : 

[1] go looking in my /usr/local/src dir for a release tarball 

$ ls $SRC/libffi*
/usr/local/src/libffi-3.0.10.tar.gz  /usr/local/src/libffi-3.0.12.tar.gz
/usr/local/src/libffi-3.0.11.tar.gz  /usr/local/src/libffi-3.0.9.tar.gz

[2] maybe look at the sha1 or md5 or whatever seems to work

$ mdigest -a sha1 $SRC/libffi-3.0.12*
463dcb4ae9aea4c52bba12b67fbe4d91ed1e21fd  /usr/local/src/libffi-3.0.12.tar.gz

A google search on that brings up lots of good stuff :

http://lists.debian.org/debian-devel-changes/2013/02/msg00494.html

[3] extract that and move it into a dir for OS-rev and arch and sequence

$ gzip -dc $SRC/libffi-3.0.12.tar.gz | tar -xf -
$ mv libffi-3.0.12 libffi-3.0.12_SunOS5.10_sparcv9.002
$ cd libffi-3.0.12_SunOS5.10_sparcv9.002

Yup, this really is only try number 002 

[4] because I have been running into problems, give autoreconf a try

$ autoreconf --verbose --force --install
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
autoreconf: running: /usr/local/bin/autoconf --force
autoreconf: running: /usr/local/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
autoreconf: Leaving directory `.'

[5] maybe save the state of the environment for later. I may need it 

$ pwd
/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002
$ env | sort > ../libffi-3.0.12_SunOS5.10_sparcv9.002.env

[6] check to see if anything in the environment changed between the last build attempt and this one 

$ ls -lo ../libffi-3.0.12_SunOS5.10_sparcv9.*.env                               
-rw-r--r--   1 dclarke     2196 Feb 24 08:52 ../libffi-3.0.12_SunOS5.10_sparcv9.001.env
-rw-r--r--   1 dclarke     2135 Feb 24 23:07 ../libffi-3.0.12_SunOS5.10_sparcv9.002.env

$ diff ../libffi-3.0.12_SunOS5.10_sparcv9.001.env ../libffi-3.0.12_SunOS5.10_sparcv9.002.env
37c37
< PWD=/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001
---
> PWD=/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002

nothing but my `pwd` .. perfect 


Some things that affect the build in the env are : 

AR=/usr/ccs/bin/ar

AS=/usr/ccs/bin/as

CC=/opt/solarisstudio12.3/bin/cc

CFLAGS=-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16

CONFIG_SHELL=/bin/bash

CPPFLAGS=-I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE

CXX=/opt/solarisstudio12.3/bin/CC

CXXFLAGS=-dalign -erroff=%none -errtags=yes -ftrap=%none -g -xcode=pic32 -m64 -mc -xunroll=1 -xbuiltin=%none -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -xdepend=no -xnolibmopt -xlinkopt=0 -xnolibmil -xregs=no%appl -xs

GREP=/usr/xpg4/bin/grep

LANG=C

LC_ALL=C

LC_COLLATE=C

LC_CTYPE=C

LC_MESSAGES=C

LC_MONETARY=C

LC_NUMERIC=C

LC_TIME=C

LD=/usr/ccs/bin/sparcv9/ld

LD_OPTIONS=-R/usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib -L/usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib

LD_RUN_PATH=/usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST

LIBTOOL=/usr/local/bin/libtool

M4=/usr/local/bin/gm4

MAKE=/usr/local/bin/gmake

NM=/usr/ccs/bin/sparcv9/nm -p

PAGER=/usr/xpg4/bin/more

PATH=/usr/local/bin:/usr/local/sbin:/usr/local/ssl/bin:/usr/xpg6/bin:/usr/xpg4/bin:/usr/ccs/bin:/opt/solarisstudio12.3/bin:/usr/bin:/sbin:/bin:/usr/sbin:/usr/dt/bin:/usr/openwin/bin:/opt/schily/bin:/usr/local/texlive/2012/bin/sparc-solaris

PERL=/usr/local/bin/perl

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/ssl/lib/pkgconfig

SED=/usr/local/bin/gsed

TERM=vt100

TZ=GMT0

That odd looking thing in LD_OPTIONS or LD_RUN_PATH there "$ISALIST" is 
old and obsolete now.  It simply allows the run-time linker to locate a lib that
 is correct for the current hardware we are running on.  Since no one in the 
world is left running a 32-bit Sparc system it serves little value to go looking 
for sun4m or even 32-bit sparcv8 libs.  Regardless, it works well and at some 
point I should drop it.  However, Oracle still releases a 32-bit set of openssl 
libs in /usr/sfw/lib and the only way to tell the linker that the 64-bit ssl libs 
are anywhere else, smartly, is with something like $ISALIST.  

Better yet, I built openssl 1.0.1e into /usr/loca/ssl a few days ago and so 
the $ISALIST really is becoming obsolete.  We can safely ignore it. 

[6] give configure a whirl : 

$ ./configure                                                              
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking target system type... sparc-sun-solaris2.10
continue configure in default builddir "./sparc-sun-solaris2.10"
....exec /bin/bash .././configure "--srcdir=.." "--enable-builddir=sparc-sun-solaris2.10" "solaris2.10"
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking target system type... sparc-sun-solaris2.10
checking for gsed... /usr/local/bin/gsed
checking for a BSD-compatible install... ../install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ../install-sh -c -d
checking for gawk... gawk
checking whether /usr/local/bin/gmake sets $(MAKE)... yes
checking whether /usr/local/bin/gmake supports nested variables... yes
checking for gcc... /opt/solarisstudio12.3/bin/cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether /opt/solarisstudio12.3/bin/cc accepts -g... yes
checking for /opt/solarisstudio12.3/bin/cc option to accept ISO C89... none needed
checking for style of include used by /usr/local/bin/gmake... GNU
checking dependency style of /opt/solarisstudio12.3/bin/cc... none
checking dependency style of /opt/solarisstudio12.3/bin/cc... none
checking whether /opt/solarisstudio12.3/bin/cc and cc understand -c and -o together... yes
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/local/bin/gsed
checking for grep that handles long lines and -e... /usr/xpg4/bin/grep
checking for egrep... /usr/xpg4/bin/grep -E
checking for fgrep... /usr/xpg4/bin/grep -F
checking for non-GNU ld... /usr/ccs/bin/sparcv9/ld
checking if the linker (/usr/ccs/bin/sparcv9/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/ccs/bin/sparcv9/nm -p
checking the name lister (/usr/ccs/bin/sparcv9/nm -p) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 786240
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert sparc-sun-solaris2.10 file names to sparc-sun-solaris2.10 format... func_convert_file_noop
checking how to convert sparc-sun-solaris2.10 file names to toolchain format... func_convert_file_noop
checking for /usr/ccs/bin/sparcv9/ld option to reload object files... -r
checking for objdump... no
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/ccs/bin/sparcv9/nm -p output from /opt/solarisstudio12.3/bin/cc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... /opt/solarisstudio12.3/bin/cc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking for /opt/solarisstudio12.3/bin/cc option to produce PIC... -KPIC -DPIC
checking if /opt/solarisstudio12.3/bin/cc PIC flag -KPIC -DPIC works... yes
checking if /opt/solarisstudio12.3/bin/cc static flag -Bstatic works... yes
checking if /opt/solarisstudio12.3/bin/cc supports -c -o file.o... yes
checking if /opt/solarisstudio12.3/bin/cc supports -c -o file.o... (cached) yes
checking whether the /opt/solarisstudio12.3/bin/cc linker (/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking size of size_t... 8
checking for C compiler vendor... sun
checking whether to enable maintainer-specific portions of Makefiles... no
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for mmap... yes
checking for sys/mman.h... (cached) yes
checking for mmap... (cached) yes
checking whether read-only mmap of a plain file works... yes
checking whether mmap from /dev/zero works... yes
checking for MAP_ANON(YMOUS)... yes
checking whether mmap with MAP_ANON(YMOUS) works... yes
checking for ANSI C header files... (cached) yes
checking for memcpy... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking size of double... 8
checking size of long double... 16
checking whether byte ordering is bigendian... yes
checking assembler .cfi pseudo-op support... no
checking assembler and linker support unaligned pc related relocs... no
checking assembler .register pseudo-op support... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating include/Makefile
config.status: creating include/ffi.h
config.status: creating Makefile
config.status: creating testsuite/Makefile
config.status: creating man/Makefile
config.status: creating libffi.pc
config.status: creating fficonfig.h
config.status: linking ../src/sparc/ffitarget.h to include/ffitarget.h
config.status: executing buildir commands
config.status: create top_srcdir/Makefile guessed from local Makefile
config.status: build in sparc-sun-solaris2.10 (HOST=)
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing include commands
config.status: executing src commands
$ 


[7] run gmake 

$ which gmake 
/usr/local/bin/gmake
$ gmake --version 
GNU Make 3.82
Built for sparc-sun-solaris2.10
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ 
$ ptime gmake 
MAKE sparc-sun-solaris2.10 :        0 * all-all
gmake[1]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
/usr/local/bin/gmake "AR_FLAGS=" "CC_FOR_BUILD=" "CFLAGS=-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16" "CXXFLAGS=-dalign -erroff=%none -errtags=yes -ftrap=%none -g -xcode=pic32 -m64 -mc -xunroll=1 -xbuiltin=%none -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -xdepend=no -xnolibmopt -xlinkopt=0 -xnolibmil -xregs=no%appl -xs" "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=" "INSTALL=../install-sh -c" "INSTALL_DATA=../install-sh -c -m 644" "INSTALL_PROGRAM=../install-sh -c" "INSTALL_SCRIPT=../install-sh -c" "JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=" "LIBCFLAGS_FOR_TARGET=" "MAKE=/usr/local/bin/gmake" "MAKEINFO=/bin/bash /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/missing makeinfo " "PICFLAG=" "PICFLAG_FOR_TARGET=" "RUNTESTFLAGS=" "SHELL=/bin/bash" "exec_prefix=/usr/local" "infodir=
/usr/local/share/info" "libdir=/usr/local/lib" "mandir=/usr/local/share/man" "prefix=/usr/local" "AR=/usr/ccs/bin/ar" "AS=/usr/ccs/bin/as" "CC=/opt/solarisstudio12.3/bin/cc" "CXX=/opt/solarisstudio12.3/bin/CC" "LD=/usr/ccs/bin/sparcv9/ld -64" "NM=/usr/ccs/bin/sparcv9/nm -p" "RANLIB=ranlib" "DESTDIR=" all-recursive
gmake[2]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
Making all in include
gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/include'
gmake[3]: Nothing to be done for `all'.
gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/include'
Making all in testsuite
gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
gmake[3]: Nothing to be done for `all'.
gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
Making all in man
gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/man'
gmake[3]: Nothing to be done for `all'.
gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/man'
gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
source='../src/prep_cif.c' object='src/prep_cif.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/prep_cif.lo ../src/prep_cif.c
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/prep_cif.c  -KPIC -DPIC -o src/.libs/prep_cif.o
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/prep_cif.c -o src/prep_cif.o >/dev/null 2>&1
source='../src/types.c' object='src/types.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/types.lo ../src/types.c
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/types.c  -KPIC -DPIC -o src/.libs/types.o
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/types.c -o src/types.o >/dev/null 2>&1
source='../src/raw_api.c' object='src/raw_api.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/raw_api.lo ../src/raw_api.c
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/raw_api.c  -KPIC -DPIC -o src/.libs/raw_api.o
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/raw_api.c -o src/raw_api.o >/dev/null 2>&1
source='../src/java_raw_api.c' object='src/java_raw_api.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/java_raw_api.lo ../src/java_raw_api.c
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/java_raw_api.c  -KPIC -DPIC -o src/.libs/java_raw_api.o
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/java_raw_api.c -o src/java_raw_api.o >/dev/null 2>&1
source='../src/closures.c' object='src/closures.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/closures.lo ../src/closures.c
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/closures.c  -KPIC -DPIC -o src/.libs/closures.o
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/closures.c -o src/closures.o >/dev/null 2>&1
source='../src/sparc/ffi.c' object='src/sparc/ffi.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/sparc/ffi.lo ../src/sparc/ffi.c
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/ffi.c  -KPIC -DPIC -o src/sparc/.libs/ffi.o
"../src/sparc/ffi.c", line 466: warning: argument #1 is incompatible with prototype:
        prototype: pointer to void : "../src/sparc/ffi.c", line 372
        argument : pointer to function(pointer to char, pointer to struct  {pointer to struct  {..} cif, pointer to void rvalue, pointer to pointer to void avalue}) returning int
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/ffi.c -o src/sparc/ffi.o >/dev/null 2>&1
source='../src/sparc/v8.S' object='src/sparc/v8.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ./libtool    --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/sparc/v8.lo ../src/sparc/v8.S
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/v8.S  -KPIC -DPIC -o src/sparc/.libs/v8.o
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/v8.S -o src/sparc/v8.o >/dev/null 2>&1
source='../src/sparc/v9.S' object='src/sparc/v9.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ./libtool    --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/sparc/v9.lo ../src/sparc/v9.S
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/v9.S  -KPIC -DPIC -o src/sparc/.libs/v9.o
libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/v9.S -o src/sparc/v9.o >/dev/null 2>&1
/bin/bash ./libtool  --tag=CC   --mode=link /opt/solarisstudio12.3/bin/cc  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16   -o libffi_convenience.la  src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo         src/sparc/ffi.lo src/sparc/v8.lo src/sparc/v9.lo                          
libtool: link: /usr/ccs/bin/ar cru .libs/libffi_convenience.a src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/sparc/.libs/ffi.o src/sparc/.libs/v8.o src/sparc/.libs/v9.o 
libtool: link: ranlib .libs/libffi_convenience.a
libtool: link: ( cd ".libs" && rm -f "libffi_convenience.la" && ln -s "../libffi_convenience.la" "libffi_convenience.la" )
/bin/bash ./libtool  --tag=CC   --mode=link /opt/solarisstudio12.3/bin/cc  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -no-undefined -version-info `grep -v '^#' ../libtool-version`    -o libffi.la -rpath /usr/local/lib src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo         src/sparc/ffi.lo src/sparc/v8.lo src/sparc/v9.lo                          
libtool: link: /opt/solarisstudio12.3/bin/cc -G -z defs -h libffi.so.6 -o .libs/libffi.so.6.0.1  src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/sparc/.libs/ffi.o src/sparc/.libs/v8.o src/sparc/.libs/v9.o   -lc  -m64 -mc -xtarget=ultraT2  
libtool: link: (cd ".libs" && rm -f "libffi.so.6" && ln -s "libffi.so.6.0.1" "libffi.so.6")
libtool: link: (cd ".libs" && rm -f "libffi.so" && ln -s "libffi.so.6.0.1" "libffi.so")
libtool: link: /usr/ccs/bin/ar cru .libs/libffi.a  src/prep_cif.o src/types.o src/raw_api.o src/java_raw_api.o src/closures.o src/sparc/ffi.o src/sparc/v8.o src/sparc/v9.o
libtool: link: ranlib .libs/libffi.a
libtool: link: ( cd ".libs" && rm -f "libffi.la" && ln -s "../libffi.la" "libffi.la" )
gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
gmake[2]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
gmake[1]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'

real        6.447
user        4.284
sys         2.324
$ 

[8] take a look at what we have in .libs 

$ ls -l sparc-sun-solaris2.10/.libs
total 218
-rw-r--r--   1 dclarke  other      79176 Feb 24 23:31 libffi.a
lrwxrwxrwx   1 dclarke  other         12 Feb 24 23:31 libffi.la -> ../libffi.la
-rw-r--r--   1 dclarke  other        910 Feb 24 23:31 libffi.lai
lrwxrwxrwx   1 dclarke  other         15 Feb 24 23:31 libffi.so -> libffi.so.6.0.1
lrwxrwxrwx   1 dclarke  other         15 Feb 24 23:31 libffi.so.6 -> libffi.so.6.0.1
-rwxr-xr-x   1 dclarke  other      58032 Feb 24 23:31 libffi.so.6.0.1
-rw-r--r--   1 dclarke  other      79240 Feb 24 23:31 libffi_convenience.a
lrwxrwxrwx   1 dclarke  other         24 Feb 24 23:31 libffi_convenience.la -> ../libffi_convenience.la

$ file sparc-sun-solaris2.10/.libs/libffi.so.6.0.1
sparc-sun-solaris2.10/.libs/libffi.so.6.0.1: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, UltraSPARC3 Extensions Required, dynamically linked, not stripped
$ 

$ elfdump -dev  sparc-sun-solaris2.10/.libs/libffi.so.6.0.1

ELF Header
  ei_magic:   { 0x7f, E, L, F }
  ei_class:   ELFCLASS64          ei_data:       ELFDATA2MSB
  ei_osabi:   ELFOSABI_SOLARIS    ei_abiversion: EAV_SUNW_CURRENT
  e_machine:  EM_SPARCV9          e_version:     EV_CURRENT
  e_type:     ET_DYN
  e_flags:    [ EF_SPARCV9_TSO EF_SPARC_SUN_US1 EF_SPARC_SUN_US3 ]
  e_entry:                     0  e_ehsize:     64  e_shstrndx:  28
  e_shoff:                0xdb70  e_shentsize:  64  e_shnum:     29
  e_phoff:                  0x40  e_phentsize:  56  e_phnum:     4

Version Needed Section:  .SUNW_version
     index  file                        version
       [2]  libc.so.1                   SUNW_0.7             

Dynamic Section:  .dynamic
     index  tag                value
       [0]  NEEDED            0x39e               libc.so.1
       [1]  INIT              0x4940              
       [2]  FINI              0x4950              
       [3]  SONAME            0x3b1               libffi.so.6
       [4]  RUNPATH           0x3bd               /usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib
       [5]  RPATH             0x3bd               /usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib
       [6]  HASH              0x3b0               
       [7]  STRTAB            0xba8               
       [8]  STRSZ             0x613               
       [9]  SYMTAB            0x5c0               
      [10]  SYMENT            0x18                
      [11]  CHECKSUM          0x77                
      [12]  VERNEED           0x11c0              
      [13]  VERNEEDNUM        0x1                 
      [14]  RELACOUNT         0x6                 
      [15]  PLTRELSZ          0x210               
      [16]  PLTREL            0x7                 
      [17]  JMPREL            0x1320              
      [18]  RELA              0x1260              
      [19]  RELASZ            0x2d0               
      [20]  RELAENT           0x18                
      [21]  REGISTER          0x21                
      [22]  FLAGS             0                   0
      [23]  FLAGS_1           0                   0
      [24]  SUNW_STRPAD       0x200               
      [25]  SUNW_LDMACH       0x2b                EM_SPARCV9
      [26]  PLTGOT            0x104a00            
   [27-37]  NULL              0                   
$ 


Looks good but I see that my long winded RUNPATH/RPATH that points to ssl libs really isn't needed. Certainly the RPATH/RUNPATH pointing to /usr/local/lib is needed to avoid confusion with any system provided libs.

Regardless, this is a good looking result. 

The testsuite however ... is not good : 

$ gmake check 
MAKE sparc-sun-solaris2.10 :        0 * check
gmake[1]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
Making check in include
gmake[2]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/include'
gmake[2]: Nothing to be done for `check'.
gmake[2]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/include'
Making check in testsuite
gmake[2]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
/usr/local/bin/gmake  check-DEJAGNU
gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
Making a new site.exp file ...
srcdir='../../testsuite'; export srcdir; \
EXPECT=`if [ -f ../../expect/expect ] ; then echo ../../expect/expect ; else echo expect ; fi`; export EXPECT; \
if /bin/bash -c "`if [ -f ../../../dejagnu/runtest ] ; then echo ../../../dejagnu/runtest ; else echo runtest; fi` --version" > /dev/null 2>&1; then \
  exit_status=0; l='libffi'; for tool in $l; do \
    if `if [ -f ../../../dejagnu/runtest ] ; then echo ../../../dejagnu/runtest ; else echo runtest; fi`  --tool $tool --srcdir $srcdir ; \
    then :; else exit_status=1; fi; \
  done; \
else echo "WARNING: could not find '`if [ -f ../../../dejagnu/runtest ] ; then echo ../../../dejagnu/runtest ; else echo runtest; fi`'" 1>&2; :;\
fi; \
exit $exit_status
WARNING: Couldn't find the global config file.
Test Run By dclarke on Sun Feb 24 23:35:54 2013
Native configuration is sparc-sun-solaris2.10

                === libffi tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/local/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/local/share/dejagnu/config/unix.exp as generic interface file for target.
Using ../../testsuite/config/default.exp as tool-and-target-specific interface file.
Running ../../testsuite/libffi.call/call.exp ...
FAIL: libffi.call/closure_fn0.c (test for excess errors)
FAIL: libffi.call/closure_fn1.c (test for excess errors)
FAIL: libffi.call/closure_fn2.c (test for excess errors)
.
.
.
FAIL: libffi.call/va_struct2.c (test for excess errors)
FAIL: libffi.call/va_struct3.c (test for excess errors)
Running ../../testsuite/libffi.special/special.exp ...

                === libffi Summary ===

# of unexpected failures        131
# of unresolved testcases       131
# of unsupported tests          11
gmake[3]: *** [check-DEJAGNU] Error 1
gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
gmake[2]: *** [check-am] Error 2
gmake[2]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
gmake[1]: *** [check-recursive] Error 1
gmake[1]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
gmake: *** [check] Error 2
$ 

The log file is pretty clear on the problem : 

Test Run By dclarke on Sun Feb 24 23:35:54 2013
Native configuration is sparc-sun-solaris2.10

                === libffi tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/local/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/local/share/dejagnu/config/unix.exp as generic interface file for target.
Using ../../testsuite/config/default.exp as tool-and-target-specific interface file.
Running ../../testsuite/libffi.call/call.exp ...
set_ld_library_path_env_vars: ld_library_path=:/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs
Executing on host: /opt/solarisstudio12.3/bin/cc ../../testsuite/libffi.call/closure_fn0.c    -I/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../include -I../../testsuite/../include  -I/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../include/.. -L/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs  -lffi -lm   -o ./closure_fn0.exe    (timeout = 300)
spawn /opt/solarisstudio12.3/bin/cc ../../testsuite/libffi.call/closure_fn0.c -I/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../include -I../../testsuite/../include -I/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../include/.. -L/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs -lffi -lm -o ./closure_fn0.exe
ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to ./closure_fn0.exe
compiler exited with status 1
output is:
ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to ./closure_fn0.exe

FAIL: libffi.call/closure_fn0.c (test for excess errors)
Excess errors:
ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to ./closure_fn0.exe

UNRESOLVED: libffi.call/closure_fn0.c compilation failed to produce executable
.
.
.
.


So there we have it.  A good looking build but a bad looking testsuite. 

So the real question is, what needs to be changed where to get the testsuite to do correct compiles which link with the 64-bit lib? 

Perhaps we can make up a one line patch that fixes this in the release tarball ? 

Dennis 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: of unexpected failures 131 with libffi-3.0.12
  2013-02-24 23:40   ` Dennis Clarke
@ 2013-02-25  0:18     ` Anthony Green
  2013-02-25  1:36       ` Dennis Clarke
  0 siblings, 1 reply; 6+ messages in thread
From: Anthony Green @ 2013-02-25  0:18 UTC (permalink / raw)
  To: Dennis Clarke; +Cc: libffi-discuss

You need to run the testsuite like this...

$ make check RUNTESTFLAGS="CFLAGS_FOR_TARGET='blah blah blah'"

AG


On Sun, Feb 24, 2013 at 6:40 PM, Dennis Clarke <dclarke@blastwave.org> wrote:
>
>> On Sun, Feb 24, 2013 at 4:02 AM, Dennis Clarke <dclarke@blastwave.org>
>> wrote:
>> >
>> >
>> > Am pretty sure that these are all false positives :
>> >
>> >
>> >                 === libffi Summary ===
>> >
>> > # of unexpected failures        131
>> > # of unresolved testcases       131
>> > # of unsupported tests          11
>>
>> The even number of pass/fail suggests some kind of linking error.
>> What does testsuite/libffi.log say?
>
> * This is long and detailed.  Sorry.  With luck we can get a perfect
> * build and test run and then update http://www.moxielogic.org/wiki/index.php?title=Libffi_3.0.12
>
> Well I am stumped a bit here.  I looked into the Makefile's found and they
> all have the correct CFLAGS.
>
> Should I be looking for LD_MAGIC or some sort of CFLAGS_FOR_LD ?
>
> I figure there must be something missing here as all the tests are being
> created, or attempted to be created, as 32-bit objects. That won't work as
> the libffi produced in the compile is 64-bit.
>
> For the sake of being very pedantic, precise and full disclosure here is what
> I am doing :
>
> [1] go looking in my /usr/local/src dir for a release tarball
>
> $ ls $SRC/libffi*
> /usr/local/src/libffi-3.0.10.tar.gz  /usr/local/src/libffi-3.0.12.tar.gz
> /usr/local/src/libffi-3.0.11.tar.gz  /usr/local/src/libffi-3.0.9.tar.gz
>
> [2] maybe look at the sha1 or md5 or whatever seems to work
>
> $ mdigest -a sha1 $SRC/libffi-3.0.12*
> 463dcb4ae9aea4c52bba12b67fbe4d91ed1e21fd  /usr/local/src/libffi-3.0.12.tar.gz
>
> A google search on that brings up lots of good stuff :
>
> http://lists.debian.org/debian-devel-changes/2013/02/msg00494.html
>
> [3] extract that and move it into a dir for OS-rev and arch and sequence
>
> $ gzip -dc $SRC/libffi-3.0.12.tar.gz | tar -xf -
> $ mv libffi-3.0.12 libffi-3.0.12_SunOS5.10_sparcv9.002
> $ cd libffi-3.0.12_SunOS5.10_sparcv9.002
>
> Yup, this really is only try number 002
>
> [4] because I have been running into problems, give autoreconf a try
>
> $ autoreconf --verbose --force --install
> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal --force -I m4
> autoreconf: configure.ac: tracing
> autoreconf: running: libtoolize --copy --force
> libtoolize: putting auxiliary files in `.'.
> libtoolize: copying file `./ltmain.sh'
> libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
> libtoolize: copying file `m4/libtool.m4'
> libtoolize: copying file `m4/ltoptions.m4'
> libtoolize: copying file `m4/ltsugar.m4'
> libtoolize: copying file `m4/ltversion.m4'
> libtoolize: copying file `m4/lt~obsolete.m4'
> autoreconf: running: /usr/local/bin/autoconf --force
> autoreconf: running: /usr/local/bin/autoheader --force
> autoreconf: running: automake --add-missing --copy --force-missing
> autoreconf: Leaving directory `.'
>
> [5] maybe save the state of the environment for later. I may need it
>
> $ pwd
> /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002
> $ env | sort > ../libffi-3.0.12_SunOS5.10_sparcv9.002.env
>
> [6] check to see if anything in the environment changed between the last build attempt and this one
>
> $ ls -lo ../libffi-3.0.12_SunOS5.10_sparcv9.*.env
> -rw-r--r--   1 dclarke     2196 Feb 24 08:52 ../libffi-3.0.12_SunOS5.10_sparcv9.001.env
> -rw-r--r--   1 dclarke     2135 Feb 24 23:07 ../libffi-3.0.12_SunOS5.10_sparcv9.002.env
>
> $ diff ../libffi-3.0.12_SunOS5.10_sparcv9.001.env ../libffi-3.0.12_SunOS5.10_sparcv9.002.env
> 37c37
> < PWD=/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.001
> ---
>> PWD=/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002
>
> nothing but my `pwd` .. perfect
>
>
> Some things that affect the build in the env are :
>
> AR=/usr/ccs/bin/ar
>
> AS=/usr/ccs/bin/as
>
> CC=/opt/solarisstudio12.3/bin/cc
>
> CFLAGS=-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16
>
> CONFIG_SHELL=/bin/bash
>
> CPPFLAGS=-I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE
>
> CXX=/opt/solarisstudio12.3/bin/CC
>
> CXXFLAGS=-dalign -erroff=%none -errtags=yes -ftrap=%none -g -xcode=pic32 -m64 -mc -xunroll=1 -xbuiltin=%none -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -xdepend=no -xnolibmopt -xlinkopt=0 -xnolibmil -xregs=no%appl -xs
>
> GREP=/usr/xpg4/bin/grep
>
> LANG=C
>
> LC_ALL=C
>
> LC_COLLATE=C
>
> LC_CTYPE=C
>
> LC_MESSAGES=C
>
> LC_MONETARY=C
>
> LC_NUMERIC=C
>
> LC_TIME=C
>
> LD=/usr/ccs/bin/sparcv9/ld
>
> LD_OPTIONS=-R/usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib -L/usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib
>
> LD_RUN_PATH=/usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST
>
> LIBTOOL=/usr/local/bin/libtool
>
> M4=/usr/local/bin/gm4
>
> MAKE=/usr/local/bin/gmake
>
> NM=/usr/ccs/bin/sparcv9/nm -p
>
> PAGER=/usr/xpg4/bin/more
>
> PATH=/usr/local/bin:/usr/local/sbin:/usr/local/ssl/bin:/usr/xpg6/bin:/usr/xpg4/bin:/usr/ccs/bin:/opt/solarisstudio12.3/bin:/usr/bin:/sbin:/bin:/usr/sbin:/usr/dt/bin:/usr/openwin/bin:/opt/schily/bin:/usr/local/texlive/2012/bin/sparc-solaris
>
> PERL=/usr/local/bin/perl
>
> PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/ssl/lib/pkgconfig
>
> SED=/usr/local/bin/gsed
>
> TERM=vt100
>
> TZ=GMT0
>
> That odd looking thing in LD_OPTIONS or LD_RUN_PATH there "$ISALIST" is
> old and obsolete now.  It simply allows the run-time linker to locate a lib that
>  is correct for the current hardware we are running on.  Since no one in the
> world is left running a 32-bit Sparc system it serves little value to go looking
> for sun4m or even 32-bit sparcv8 libs.  Regardless, it works well and at some
> point I should drop it.  However, Oracle still releases a 32-bit set of openssl
> libs in /usr/sfw/lib and the only way to tell the linker that the 64-bit ssl libs
> are anywhere else, smartly, is with something like $ISALIST.
>
> Better yet, I built openssl 1.0.1e into /usr/loca/ssl a few days ago and so
> the $ISALIST really is becoming obsolete.  We can safely ignore it.
>
> [6] give configure a whirl :
>
> $ ./configure
> checking build system type... sparc-sun-solaris2.10
> checking host system type... sparc-sun-solaris2.10
> checking target system type... sparc-sun-solaris2.10
> continue configure in default builddir "./sparc-sun-solaris2.10"
> ....exec /bin/bash .././configure "--srcdir=.." "--enable-builddir=sparc-sun-solaris2.10" "solaris2.10"
> checking build system type... sparc-sun-solaris2.10
> checking host system type... sparc-sun-solaris2.10
> checking target system type... sparc-sun-solaris2.10
> checking for gsed... /usr/local/bin/gsed
> checking for a BSD-compatible install... ../install-sh -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... ../install-sh -c -d
> checking for gawk... gawk
> checking whether /usr/local/bin/gmake sets $(MAKE)... yes
> checking whether /usr/local/bin/gmake supports nested variables... yes
> checking for gcc... /opt/solarisstudio12.3/bin/cc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... no
> checking whether /opt/solarisstudio12.3/bin/cc accepts -g... yes
> checking for /opt/solarisstudio12.3/bin/cc option to accept ISO C89... none needed
> checking for style of include used by /usr/local/bin/gmake... GNU
> checking dependency style of /opt/solarisstudio12.3/bin/cc... none
> checking dependency style of /opt/solarisstudio12.3/bin/cc... none
> checking whether /opt/solarisstudio12.3/bin/cc and cc understand -c and -o together... yes
> checking how to print strings... printf
> checking for a sed that does not truncate output... /usr/local/bin/gsed
> checking for grep that handles long lines and -e... /usr/xpg4/bin/grep
> checking for egrep... /usr/xpg4/bin/grep -E
> checking for fgrep... /usr/xpg4/bin/grep -F
> checking for non-GNU ld... /usr/ccs/bin/sparcv9/ld
> checking if the linker (/usr/ccs/bin/sparcv9/ld) is GNU ld... no
> checking for BSD- or MS-compatible name lister (nm)... /usr/ccs/bin/sparcv9/nm -p
> checking the name lister (/usr/ccs/bin/sparcv9/nm -p) interface... BSD nm
> checking whether ln -s works... yes
> checking the maximum length of command line arguments... 786240
> checking whether the shell understands some XSI constructs... yes
> checking whether the shell understands "+="... yes
> checking how to convert sparc-sun-solaris2.10 file names to sparc-sun-solaris2.10 format... func_convert_file_noop
> checking how to convert sparc-sun-solaris2.10 file names to toolchain format... func_convert_file_noop
> checking for /usr/ccs/bin/sparcv9/ld option to reload object files... -r
> checking for objdump... no
> checking how to recognize dependent libraries... pass_all
> checking for dlltool... no
> checking how to associate runtime and link libraries... printf %s\n
> checking for archiver @FILE support... no
> checking for strip... strip
> checking for ranlib... ranlib
> checking command to parse /usr/ccs/bin/sparcv9/nm -p output from /opt/solarisstudio12.3/bin/cc object... ok
> checking for sysroot... no
> checking for mt... mt
> checking if mt is a manifest tool... no
> checking how to run the C preprocessor... /opt/solarisstudio12.3/bin/cc -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking for dlfcn.h... yes
> checking for objdir... .libs
> checking for /opt/solarisstudio12.3/bin/cc option to produce PIC... -KPIC -DPIC
> checking if /opt/solarisstudio12.3/bin/cc PIC flag -KPIC -DPIC works... yes
> checking if /opt/solarisstudio12.3/bin/cc static flag -Bstatic works... yes
> checking if /opt/solarisstudio12.3/bin/cc supports -c -o file.o... yes
> checking if /opt/solarisstudio12.3/bin/cc supports -c -o file.o... (cached) yes
> checking whether the /opt/solarisstudio12.3/bin/cc linker (/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
> checking dynamic linker characteristics... solaris2.10 ld.so
> checking how to hardcode library paths into programs... immediate
> checking whether stripping libraries is possible... no
> checking if libtool supports shared libraries... yes
> checking whether to build shared libraries... yes
> checking whether to build static libraries... yes
> checking size of size_t... 8
> checking for C compiler vendor... sun
> checking whether to enable maintainer-specific portions of Makefiles... no
> checking sys/mman.h usability... yes
> checking sys/mman.h presence... yes
> checking for sys/mman.h... yes
> checking for mmap... yes
> checking for sys/mman.h... (cached) yes
> checking for mmap... (cached) yes
> checking whether read-only mmap of a plain file works... yes
> checking whether mmap from /dev/zero works... yes
> checking for MAP_ANON(YMOUS)... yes
> checking whether mmap with MAP_ANON(YMOUS) works... yes
> checking for ANSI C header files... (cached) yes
> checking for memcpy... yes
> checking for size_t... yes
> checking for working alloca.h... yes
> checking for alloca... yes
> checking size of double... 8
> checking size of long double... 16
> checking whether byte ordering is bigendian... yes
> checking assembler .cfi pseudo-op support... no
> checking assembler and linker support unaligned pc related relocs... no
> checking assembler .register pseudo-op support... yes
> checking that generated files are newer than configure... done
> configure: creating ./config.status
> config.status: creating include/Makefile
> config.status: creating include/ffi.h
> config.status: creating Makefile
> config.status: creating testsuite/Makefile
> config.status: creating man/Makefile
> config.status: creating libffi.pc
> config.status: creating fficonfig.h
> config.status: linking ../src/sparc/ffitarget.h to include/ffitarget.h
> config.status: executing buildir commands
> config.status: create top_srcdir/Makefile guessed from local Makefile
> config.status: build in sparc-sun-solaris2.10 (HOST=)
> config.status: executing depfiles commands
> config.status: executing libtool commands
> config.status: executing include commands
> config.status: executing src commands
> $
>
>
> [7] run gmake
>
> $ which gmake
> /usr/local/bin/gmake
> $ gmake --version
> GNU Make 3.82
> Built for sparc-sun-solaris2.10
> Copyright (C) 2010  Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> $
> $ ptime gmake
> MAKE sparc-sun-solaris2.10 :        0 * all-all
> gmake[1]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
> /usr/local/bin/gmake "AR_FLAGS=" "CC_FOR_BUILD=" "CFLAGS=-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16" "CXXFLAGS=-dalign -erroff=%none -errtags=yes -ftrap=%none -g -xcode=pic32 -m64 -mc -xunroll=1 -xbuiltin=%none -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -xdepend=no -xnolibmopt -xlinkopt=0 -xnolibmil -xregs=no%appl -xs" "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=" "INSTALL=../install-sh -c" "INSTALL_DATA=../install-sh -c -m 644" "INSTALL_PROGRAM=../install-sh -c" "INSTALL_SCRIPT=../install-sh -c" "JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=" "LIBCFLAGS_FOR_TARGET=" "MAKE=/usr/local/bin/gmake" "MAKEINFO=/bin/bash /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/missing makeinfo " "PICFLAG=" "PICFLAG_FOR_TARGET=" "RUNTESTFLAGS=" "SHELL=/bin/bash" "exec_prefix=/usr/local" "infodir=
> /usr/local/share/info" "libdir=/usr/local/lib" "mandir=/usr/local/share/man" "prefix=/usr/local" "AR=/usr/ccs/bin/ar" "AS=/usr/ccs/bin/as" "CC=/opt/solarisstudio12.3/bin/cc" "CXX=/opt/solarisstudio12.3/bin/CC" "LD=/usr/ccs/bin/sparcv9/ld -64" "NM=/usr/ccs/bin/sparcv9/nm -p" "RANLIB=ranlib" "DESTDIR=" all-recursive
> gmake[2]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
> Making all in include
> gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/include'
> gmake[3]: Nothing to be done for `all'.
> gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/include'
> Making all in testsuite
> gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
> gmake[3]: Nothing to be done for `all'.
> gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
> Making all in man
> gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/man'
> gmake[3]: Nothing to be done for `all'.
> gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/man'
> gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
> source='../src/prep_cif.c' object='src/prep_cif.lo' libtool=yes \
> DEPDIR=.deps depmode=none /bin/bash ../depcomp \
> /bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/prep_cif.lo ../src/prep_cif.c
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/prep_cif.c  -KPIC -DPIC -o src/.libs/prep_cif.o
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/prep_cif.c -o src/prep_cif.o >/dev/null 2>&1
> source='../src/types.c' object='src/types.lo' libtool=yes \
> DEPDIR=.deps depmode=none /bin/bash ../depcomp \
> /bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/types.lo ../src/types.c
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/types.c  -KPIC -DPIC -o src/.libs/types.o
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/types.c -o src/types.o >/dev/null 2>&1
> source='../src/raw_api.c' object='src/raw_api.lo' libtool=yes \
> DEPDIR=.deps depmode=none /bin/bash ../depcomp \
> /bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/raw_api.lo ../src/raw_api.c
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/raw_api.c  -KPIC -DPIC -o src/.libs/raw_api.o
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/raw_api.c -o src/raw_api.o >/dev/null 2>&1
> source='../src/java_raw_api.c' object='src/java_raw_api.lo' libtool=yes \
> DEPDIR=.deps depmode=none /bin/bash ../depcomp \
> /bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/java_raw_api.lo ../src/java_raw_api.c
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/java_raw_api.c  -KPIC -DPIC -o src/.libs/java_raw_api.o
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/java_raw_api.c -o src/java_raw_api.o >/dev/null 2>&1
> source='../src/closures.c' object='src/closures.lo' libtool=yes \
> DEPDIR=.deps depmode=none /bin/bash ../depcomp \
> /bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/closures.lo ../src/closures.c
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/closures.c  -KPIC -DPIC -o src/.libs/closures.o
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/closures.c -o src/closures.o >/dev/null 2>&1
> source='../src/sparc/ffi.c' object='src/sparc/ffi.lo' libtool=yes \
> DEPDIR=.deps depmode=none /bin/bash ../depcomp \
> /bin/bash ./libtool  --tag=CC   --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/sparc/ffi.lo ../src/sparc/ffi.c
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/ffi.c  -KPIC -DPIC -o src/sparc/.libs/ffi.o
> "../src/sparc/ffi.c", line 466: warning: argument #1 is incompatible with prototype:
>         prototype: pointer to void : "../src/sparc/ffi.c", line 372
>         argument : pointer to function(pointer to char, pointer to struct  {pointer to struct  {..} cif, pointer to void rvalue, pointer to pointer to void avalue}) returning int
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/ffi.c -o src/sparc/ffi.o >/dev/null 2>&1
> source='../src/sparc/v8.S' object='src/sparc/v8.lo' libtool=yes \
> DEPDIR=.deps depmode=none /bin/bash ../depcomp \
> /bin/bash ./libtool    --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/sparc/v8.lo ../src/sparc/v8.S
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/v8.S  -KPIC -DPIC -o src/sparc/.libs/v8.o
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/v8.S -o src/sparc/v8.o >/dev/null 2>&1
> source='../src/sparc/v9.S' object='src/sparc/v9.lo' libtool=yes \
> DEPDIR=.deps depmode=none /bin/bash ../depcomp \
> /bin/bash ./libtool    --mode=compile /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c -o src/sparc/v9.lo ../src/sparc/v9.S
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/v9.S  -KPIC -DPIC -o src/sparc/.libs/v9.o
> libtool: compile:  /opt/solarisstudio12.3/bin/cc -DHAVE_CONFIG_H -I. -I.. -I. -I../include -Iinclude -I../src -I/usr/local/include -I/usr/local/ssl/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -I. -I../include -Iinclude -I../src -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -c ../src/sparc/v9.S -o src/sparc/v9.o >/dev/null 2>&1
> /bin/bash ./libtool  --tag=CC   --mode=link /opt/solarisstudio12.3/bin/cc  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16   -o libffi_convenience.la  src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo         src/sparc/ffi.lo src/sparc/v8.lo src/sparc/v9.lo
> libtool: link: /usr/ccs/bin/ar cru .libs/libffi_convenience.a src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/sparc/.libs/ffi.o src/sparc/.libs/v8.o src/sparc/.libs/v9.o
> libtool: link: ranlib .libs/libffi_convenience.a
> libtool: link: ( cd ".libs" && rm -f "libffi_convenience.la" && ln -s "../libffi_convenience.la" "libffi_convenience.la" )
> /bin/bash ./libtool  --tag=CC   --mode=link /opt/solarisstudio12.3/bin/cc  -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16 -no-undefined -version-info `grep -v '^#' ../libtool-version`    -o libffi.la -rpath /usr/local/lib src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo         src/sparc/ffi.lo src/sparc/v8.lo src/sparc/v9.lo
> libtool: link: /opt/solarisstudio12.3/bin/cc -G -z defs -h libffi.so.6 -o .libs/libffi.so.6.0.1  src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/sparc/.libs/ffi.o src/sparc/.libs/v8.o src/sparc/.libs/v9.o   -lc  -m64 -mc -xtarget=ultraT2
> libtool: link: (cd ".libs" && rm -f "libffi.so.6" && ln -s "libffi.so.6.0.1" "libffi.so.6")
> libtool: link: (cd ".libs" && rm -f "libffi.so" && ln -s "libffi.so.6.0.1" "libffi.so")
> libtool: link: /usr/ccs/bin/ar cru .libs/libffi.a  src/prep_cif.o src/types.o src/raw_api.o src/java_raw_api.o src/closures.o src/sparc/ffi.o src/sparc/v8.o src/sparc/v9.o
> libtool: link: ranlib .libs/libffi.a
> libtool: link: ( cd ".libs" && rm -f "libffi.la" && ln -s "../libffi.la" "libffi.la" )
> gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
> gmake[2]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
> gmake[1]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
>
> real        6.447
> user        4.284
> sys         2.324
> $
>
> [8] take a look at what we have in .libs
>
> $ ls -l sparc-sun-solaris2.10/.libs
> total 218
> -rw-r--r--   1 dclarke  other      79176 Feb 24 23:31 libffi.a
> lrwxrwxrwx   1 dclarke  other         12 Feb 24 23:31 libffi.la -> ../libffi.la
> -rw-r--r--   1 dclarke  other        910 Feb 24 23:31 libffi.lai
> lrwxrwxrwx   1 dclarke  other         15 Feb 24 23:31 libffi.so -> libffi.so.6.0.1
> lrwxrwxrwx   1 dclarke  other         15 Feb 24 23:31 libffi.so.6 -> libffi.so.6.0.1
> -rwxr-xr-x   1 dclarke  other      58032 Feb 24 23:31 libffi.so.6.0.1
> -rw-r--r--   1 dclarke  other      79240 Feb 24 23:31 libffi_convenience.a
> lrwxrwxrwx   1 dclarke  other         24 Feb 24 23:31 libffi_convenience.la -> ../libffi_convenience.la
>
> $ file sparc-sun-solaris2.10/.libs/libffi.so.6.0.1
> sparc-sun-solaris2.10/.libs/libffi.so.6.0.1: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, UltraSPARC3 Extensions Required, dynamically linked, not stripped
> $
>
> $ elfdump -dev  sparc-sun-solaris2.10/.libs/libffi.so.6.0.1
>
> ELF Header
>   ei_magic:   { 0x7f, E, L, F }
>   ei_class:   ELFCLASS64          ei_data:       ELFDATA2MSB
>   ei_osabi:   ELFOSABI_SOLARIS    ei_abiversion: EAV_SUNW_CURRENT
>   e_machine:  EM_SPARCV9          e_version:     EV_CURRENT
>   e_type:     ET_DYN
>   e_flags:    [ EF_SPARCV9_TSO EF_SPARC_SUN_US1 EF_SPARC_SUN_US3 ]
>   e_entry:                     0  e_ehsize:     64  e_shstrndx:  28
>   e_shoff:                0xdb70  e_shentsize:  64  e_shnum:     29
>   e_phoff:                  0x40  e_phentsize:  56  e_phnum:     4
>
> Version Needed Section:  .SUNW_version
>      index  file                        version
>        [2]  libc.so.1                   SUNW_0.7
>
> Dynamic Section:  .dynamic
>      index  tag                value
>        [0]  NEEDED            0x39e               libc.so.1
>        [1]  INIT              0x4940
>        [2]  FINI              0x4950
>        [3]  SONAME            0x3b1               libffi.so.6
>        [4]  RUNPATH           0x3bd               /usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib
>        [5]  RPATH             0x3bd               /usr/local/lib/$ISALIST:/usr/local/ssl/lib/$ISALIST:/usr/local/lib:/usr/local/ssl/lib
>        [6]  HASH              0x3b0
>        [7]  STRTAB            0xba8
>        [8]  STRSZ             0x613
>        [9]  SYMTAB            0x5c0
>       [10]  SYMENT            0x18
>       [11]  CHECKSUM          0x77
>       [12]  VERNEED           0x11c0
>       [13]  VERNEEDNUM        0x1
>       [14]  RELACOUNT         0x6
>       [15]  PLTRELSZ          0x210
>       [16]  PLTREL            0x7
>       [17]  JMPREL            0x1320
>       [18]  RELA              0x1260
>       [19]  RELASZ            0x2d0
>       [20]  RELAENT           0x18
>       [21]  REGISTER          0x21
>       [22]  FLAGS             0                   0
>       [23]  FLAGS_1           0                   0
>       [24]  SUNW_STRPAD       0x200
>       [25]  SUNW_LDMACH       0x2b                EM_SPARCV9
>       [26]  PLTGOT            0x104a00
>    [27-37]  NULL              0
> $
>
>
> Looks good but I see that my long winded RUNPATH/RPATH that points to ssl libs really isn't needed. Certainly the RPATH/RUNPATH pointing to /usr/local/lib is needed to avoid confusion with any system provided libs.
>
> Regardless, this is a good looking result.
>
> The testsuite however ... is not good :
>
> $ gmake check
> MAKE sparc-sun-solaris2.10 :        0 * check
> gmake[1]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
> Making check in include
> gmake[2]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/include'
> gmake[2]: Nothing to be done for `check'.
> gmake[2]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/include'
> Making check in testsuite
> gmake[2]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
> /usr/local/bin/gmake  check-DEJAGNU
> gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
> Making a new site.exp file ...
> srcdir='../../testsuite'; export srcdir; \
> EXPECT=`if [ -f ../../expect/expect ] ; then echo ../../expect/expect ; else echo expect ; fi`; export EXPECT; \
> if /bin/bash -c "`if [ -f ../../../dejagnu/runtest ] ; then echo ../../../dejagnu/runtest ; else echo runtest; fi` --version" > /dev/null 2>&1; then \
>   exit_status=0; l='libffi'; for tool in $l; do \
>     if `if [ -f ../../../dejagnu/runtest ] ; then echo ../../../dejagnu/runtest ; else echo runtest; fi`  --tool $tool --srcdir $srcdir ; \
>     then :; else exit_status=1; fi; \
>   done; \
> else echo "WARNING: could not find '`if [ -f ../../../dejagnu/runtest ] ; then echo ../../../dejagnu/runtest ; else echo runtest; fi`'" 1>&2; :;\
> fi; \
> exit $exit_status
> WARNING: Couldn't find the global config file.
> Test Run By dclarke on Sun Feb 24 23:35:54 2013
> Native configuration is sparc-sun-solaris2.10
>
>                 === libffi tests ===
>
> Schedule of variations:
>     unix
>
> Running target unix
> Using /usr/local/share/dejagnu/baseboards/unix.exp as board description file for target.
> Using /usr/local/share/dejagnu/config/unix.exp as generic interface file for target.
> Using ../../testsuite/config/default.exp as tool-and-target-specific interface file.
> Running ../../testsuite/libffi.call/call.exp ...
> FAIL: libffi.call/closure_fn0.c (test for excess errors)
> FAIL: libffi.call/closure_fn1.c (test for excess errors)
> FAIL: libffi.call/closure_fn2.c (test for excess errors)
> .
> .
> .
> FAIL: libffi.call/va_struct2.c (test for excess errors)
> FAIL: libffi.call/va_struct3.c (test for excess errors)
> Running ../../testsuite/libffi.special/special.exp ...
>
>                 === libffi Summary ===
>
> # of unexpected failures        131
> # of unresolved testcases       131
> # of unsupported tests          11
> gmake[3]: *** [check-DEJAGNU] Error 1
> gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
> gmake[2]: *** [check-am] Error 2
> gmake[2]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
> gmake[1]: *** [check-recursive] Error 1
> gmake[1]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
> gmake: *** [check] Error 2
> $
>
> The log file is pretty clear on the problem :
>
> Test Run By dclarke on Sun Feb 24 23:35:54 2013
> Native configuration is sparc-sun-solaris2.10
>
>                 === libffi tests ===
>
> Schedule of variations:
>     unix
>
> Running target unix
> Using /usr/local/share/dejagnu/baseboards/unix.exp as board description file for target.
> Using /usr/local/share/dejagnu/config/unix.exp as generic interface file for target.
> Using ../../testsuite/config/default.exp as tool-and-target-specific interface file.
> Running ../../testsuite/libffi.call/call.exp ...
> set_ld_library_path_env_vars: ld_library_path=:/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs
> Executing on host: /opt/solarisstudio12.3/bin/cc ../../testsuite/libffi.call/closure_fn0.c    -I/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../include -I../../testsuite/../include  -I/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../include/.. -L/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs  -lffi -lm   -o ./closure_fn0.exe    (timeout = 300)
> spawn /opt/solarisstudio12.3/bin/cc ../../testsuite/libffi.call/closure_fn0.c -I/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../include -I../../testsuite/../include -I/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../include/.. -L/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs -lffi -lm -o ./closure_fn0.exe
> ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
> ld: fatal: file processing errors. No output written to ./closure_fn0.exe
> compiler exited with status 1
> output is:
> ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
> ld: fatal: file processing errors. No output written to ./closure_fn0.exe
>
> FAIL: libffi.call/closure_fn0.c (test for excess errors)
> Excess errors:
> ld: fatal: file /usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite/../.libs/libffi.so: wrong ELF class: ELFCLASS64
> ld: fatal: file processing errors. No output written to ./closure_fn0.exe
>
> UNRESOLVED: libffi.call/closure_fn0.c compilation failed to produce executable
> .
> .
> .
> .
>
>
> So there we have it.  A good looking build but a bad looking testsuite.
>
> So the real question is, what needs to be changed where to get the testsuite to do correct compiles which link with the 64-bit lib?
>
> Perhaps we can make up a one line patch that fixes this in the release tarball ?
>
> Dennis

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: of unexpected failures 131 with libffi-3.0.12
  2013-02-25  0:18     ` Anthony Green
@ 2013-02-25  1:36       ` Dennis Clarke
  0 siblings, 0 replies; 6+ messages in thread
From: Dennis Clarke @ 2013-02-25  1:36 UTC (permalink / raw)
  To: Anthony Green; +Cc: libffi-discuss


> You need to run the testsuite like this...
> 
> $ make check RUNTESTFLAGS="CFLAGS_FOR_TARGET='blah blah blah'"

awesome .. thank you .. should be a note in a README somewhere on that perhaps?

Much better results with a few odd looking results : 

$ gmake check RUNTESTFLAGS="CFLAGS_FOR_TARGET='-errfmt=error \
> -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s \
> -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs \
> -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 \
> -xtarget=ultraT2 -xcache=8/16/4:4096/64/16'"
MAKE sparc-sun-solaris2.10 :        0 * check
gmake[1]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
Making check in include
gmake[2]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/include'
gmake[2]: Nothing to be done for `check'.
gmake[2]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/include'
Making check in testsuite
gmake[2]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
/usr/local/bin/gmake  check-DEJAGNU
gmake[3]: Entering directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
srcdir='../../testsuite'; export srcdir; \
EXPECT=`if [ -f ../../expect/expect ] ; then echo ../../expect/expect ; else echo expect ; fi`; export EXPECT; \
if /bin/bash -c "`if [ -f ../../../dejagnu/runtest ] ; then echo ../../../dejagnu/runtest ; else echo runtest; fi` --version" > /dev/null 2>&1; then \
  exit_status=0; l='libffi'; for tool in $l; do \
    if `if [ -f ../../../dejagnu/runtest ] ; then echo ../../../dejagnu/runtest ; else echo runtest; fi`  --tool $tool --srcdir $srcdir CFLAGS_FOR_TARGET='-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16'; \
    then :; else exit_status=1; fi; \
  done; \
else echo "WARNING: could not find '`if [ -f ../../../dejagnu/runtest ] ; then echo ../../../dejagnu/runtest ; else echo runtest; fi`'" 1>&2; :;\
fi; \
exit $exit_status
WARNING: Couldn't find the global config file.
Test Run By dclarke on Mon Feb 25 01:30:29 2013
Native configuration is sparc-sun-solaris2.10

                === libffi tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/local/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/local/share/dejagnu/config/unix.exp as generic interface file for target.
Using ../../testsuite/config/default.exp as tool-and-target-specific interface file.
Running ../../testsuite/libffi.call/call.exp ...
FAIL: libffi.call/cls_struct_va1.c output pattern test, is 4 5 6 10 11 12 13 14 20 21
res: 1054032
? should match 4 5 6 10 11 12 13 14 20 21
res: 42
FAIL: libffi.call/cls_uint_va.c output pattern test, is 67: 67 4
res: 1053264
? should match 67: 67 4
res: 67
FAIL: libffi.call/va_1.c output pattern test, is 5 6 10 11 12 13 14 7 8 uc=9 sc=10 11 12 13 14 15 16 2.120000 3.130000
res: 0
, should match 5 6 10 11 12 13 14 7 8 uc=9 sc=10 11 12 13 14 15 16 2.120000 3.13?000
res: 42
FAIL: libffi.call/va_struct1.c output pattern test, is 5 6 10 11 12 13 14 7 8
res: 0
? should match 5 6 10 11 12 13 14 7 8
res: 42
Running ../../testsuite/libffi.special/special.exp ...

                === libffi Summary ===

# of expected passes            355
# of unexpected failures        4
# of unsupported tests          11
gmake[3]: *** [check-DEJAGNU] Error 1
gmake[3]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
gmake[2]: *** [check-am] Error 2
gmake[2]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10/testsuite'
gmake[1]: *** [check-recursive] Error 1
gmake[1]: Leaving directory `/usr/local/build/libffi-3.0.12_SunOS5.10_sparcv9.002/sparc-sun-solaris2.10'
gmake: *** [check] Error 2
$ 

Not sure why some of those patterns don't match.

case[1] : cls_struct_va1.c

FAIL: libffi.call/cls_struct_va1.c output pattern test, is 4 5 6 10 11 12 13 14 20 21
res: 1054032
? should match 4 5 6 10 11 12 13 14 20 21
res: 42

Well "4 5 6 10 11 12 13 14 20 21" looks correct to me.  Not sure what that "res" is.

Any thoughts ? 

dc

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-02-25  1:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-24  9:02 of unexpected failures 131 with libffi-3.0.12 Dennis Clarke
2013-02-24 11:32 ` Anthony Green
2013-02-24 13:35   ` Dennis Clarke
2013-02-24 23:40   ` Dennis Clarke
2013-02-25  0:18     ` Anthony Green
2013-02-25  1:36       ` Dennis Clarke

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).