Read this whole email and do the exercise at the bottom
before replying.

> You didn't read what I said, I said it is the _official_ _OpenSolaris_
_GCC_.

You are somewhat misguided.

> It is the GCC found in the standard OpenSolaris repository as thus
*should* work.

In theory. How do you know? You don't. There is no published public test
report on it. Therefore you go on blind faith and trust in the absence of
data. In essence, you don't really know what you are talking about.

> GCC from gnu.org *may* not work, if OpenSolaris put back code to make it
work on OpenSolaris and the changes haven't been committed to the main
code, then getting the code from gnu.org may not work.

whoa

Slow down there.

Are you saying that someone inside Sun made modifications to the GCC
release from GNU and did not publish the mods? Is that what you are
saying?

Let me educate you.

1) The GNUC Compiler Collection ( the new name for GCC ) is an open source
compiler.

2) Because it is open source you ( or anyone ) can get the sources.

3) Once you have the sources you can then compile it.

4) Once done with the compile you can run a testsuite on it.

5) Once you have the testsuite reports in your hand you can then determine
if you like the results.

Once you do that, you have the GCC compiler on your system. It is then the
*offical* GCC compiler and you built it and you have the test results in
front of you. It is not blind faith. You don't have to assume it works
because you will know exactly what the situation is.

That is the beauty of an open source compiler.

> Generally, the standard repo should contain the software most people
want
> and a version that should work with OpenSolaris.

Again you need some education.

Let me show you a build directory on my one of my systems here :

[fortius] pwd
/export/home/dclarke/build
[fortius]
[fortius] ls -lo
total 823
drwxr-xr-x   9 dclarke       38 Jul 11 14:04 autoconf-2.66-32bit-pass1
drwxr-xr-x   6 dclarke       35 Jul 11 14:28 automake-1.10.3-32bit-pass1
-rw-r--r--   1 dclarke     2323 Jul 11 15:06
automake-1.10.3-32bit-pass1.env
drwxr-xr-x  18 dclarke       40 Jul 11 17:15 cyrus-sasl-2.1.23-32bit
drwxr-xr-x  18 dclarke       40 Jul 11 17:46 cyrus-sasl-2.1.23-32bit-try2
-rw-r--r--   1 dclarke     2135 Jul 11 17:45
cyrus-sasl-2.1.23-32bit-try2.env
drwxr-xr-x  18 dclarke       40 Jul 11 00:13 cyrus-sasl-2.1.23-64bit
drwxr-xr-x  69 dclarke       71 Jul 11 17:14 db-5.0.26-32bit-pass1
drwxr-xr-x  69 dclarke       71 Jun 25 16:23 db-5.0.26-pass1
drwxr-xr-x  69 dclarke       71 Jun 25 16:23 db-5.0.26-pass2
drwxr-xr-x  12 dclarke       85 Jul 11 16:20 gawk-3.0.1-32bit-pass1
drwxr-xr-x  10 dclarke       33 Jul 11 12:56 gettext-0.18.1.1-32bit-pass1
-rw-r--r--   1 dclarke     2306 Jul 11 13:11
gettext-0.18.1.1-32bit-pass1.env
drwxr-xr-x  10 dclarke       33 Jul 10 22:34 gettext-0.18.1.1-pass1
drwxr-xr-x  10 dclarke       33 Jul 10 23:02 gettext-0.18.1.1-pass2
drwxr-xr-x  11 dclarke       38 Jul 11 16:37 grep-2.6.3-32bit-pass1
-rw-r--r--   1 dclarke     2318 Jul 11 16:38 grep-2.6.3-32bit-pass1.env
drwxr-xr-x  22 dclarke       52 Jul 11 03:09 libiconv-1.13.1-32bit-pass1
drwxr-xr-x  22 dclarke       52 Jul 11 13:15 libiconv-1.13.1-32bit-pass2
-rw-r--r--   1 dclarke     2328 Jul 11 13:19
libiconv-1.13.1-32bit-pass2.env
drwxr-xr-x  22 dclarke       52 Jul 10 22:14 libiconv-1.13.1-pass1
drwxr-xr-x  22 dclarke       52 Jul 10 22:47 libiconv-1.13.1-pass2
drwxr-xr-x   6 dclarke       32 Jul 11 13:54 libsigsegv-2.832bit-pass1
-rw-r--r--   1 dclarke     2321 Jul 11 13:55 libsigsegv-2.832bit-pass1.env
drwxr-xr-x   6 dclarke       45 Jul 12 04:13 libtool-2.2.10-32bit-try1
-rw-r--r--   1 dclarke     2132 Jul 12 04:07 libtool-2.2.10-32bit-try1.env
drwxr-xr-x  10 dclarke       40 Jul 11 13:59 m4-1.4.14-32bit-pass1
-rw-r--r--   1 dclarke     2317 Jul 11 14:01 m4-1.4.14-32bit-pass1.env
-rw-r--r--   1 dclarke     2260 Jul 11 14:02
m4-1.4.14-32bit-pass1.testsuite
drwxr-xr-x   9 dclarke      129 Jul 11 03:05 make-3.81-32bit-pass1
drwxr-xr-x   9 dclarke      129 Jul 11 13:39 make-3.81-32bit-pass2
drwxr-xr-x   9 dclarke      129 Jul 10 22:12 make-3.81-pass1
-rw-r--r--   1 dclarke      844 Jul 10 22:13 make-3.81-pass1.env
drwxr-xr-x   9 dclarke      129 Jul 11 03:04 make-3.81-pass2
-rw-r--r--   1 dclarke     2331 Jul 11 13:41 make-3.81-pass2.env
drwxr-xr-x  22 dclarke       51 Jul 12 17:46 openssl-1.0.0a
drwxr-xr-x  22 dclarke       58 Jul 11 16:54 openssl-1.0.0a-32bit-pass1
drwxr-xr-x  22 dclarke       62 Jul 12 14:58 openssl-1.0.0a-32bit-try2
-rw-r--r--   1 dclarke     2297 Jul 12 14:46 openssl-1.0.0a-32bit-try2.env
drwxr-xr-x  22 dclarke       58 Jul 10 21:47 openssl-1.0.0a-64-bit
-rw-r--r--   1 dclarke     1063 Jul 10 21:54 openssl-1.0.0a.env-64-bit
drwxr-xr-x   7 dclarke      169 Jul 12 04:05 pcre-8.10-32bit-try1
drwxr-xr-x  16 dclarke       49 Jul 12 12:57 postfix-2.7.1-32bit-try1
-rw-r--r--   1 dclarke     2081 Jul 12 13:25 postfix-2.7.1-32bit-try1.env
drwxr-xr-x   9 dclarke       37 Jul 11 16:23 sed-4.2.1-32bit-pass1
drwxr-xr-x  22 dclarke       32 Jul 11 17:21 sendmail-8.14.4-32bit-pass1
drwxr-xr-x  22 dclarke       32 Jul 11 18:26 sendmail-8.14.4-32bit-try2
drwxr-xr-x  22 dclarke       32 Jul 11 18:34 sendmail-8.14.4-32bit-try3
drwxr-xr-x  22 dclarke       32 Jul 11 18:48 sendmail-8.14.4-32bit-try4
drwxr-xr-x  22 dclarke       33 Jul 11 01:21 sendmail-8.14.4-fail
-rw-r--r--   1 dclarke     1077 Jul 11 02:44 sendmail-8.14.4-fail.env
-rw-r--r--   1 dclarke   235520 Jul 11 19:31 sendmail-8.14.4-patch.star
drwxr-xr-x  22 dclarke       32 Jul 11 19:34 sendmail-8.14.4-try5
drwxr-xr-x  12 dclarke       23 Nov 13  2009 tcl8.5.8-32bit-pass1
drwxr-xr-x  12 dclarke       23 Nov 13  2009 tcl8.5.8-64bit
drwxr-xr-x  12 dclarke       37 Jul 11 16:19 texinfo-4.13-32bit-pass1
drwxr-xr-x  12 dclarke      102 Jul 11 13:49 zlib-1.2.5-32bit-pass1

See all that software ?

Those are all open source pieces compiled from the actual *official*
sources and all done with Sun Studio 12 or with GCC.

Most of them have a testsuite.

Here is GNU m4 :

[fortius] cat m4-1.4.14-32bit-pass1.testsuite

PASS: test-alloca-opt
PASS: test-array_list
PASS: test-array_oset
PASS: test-avltree_oset
PASS: test-binary-io.sh
PASS: test-btowc1.sh
PASS: test-btowc2.sh
PASS: test-c-ctype
PASS: test-c-stack.sh
PASS: test-c-stack2.sh
PASS: test-c-strcase.sh
PASS: test-cloexec
PASS: test-closein.sh
PASS: test-dirname
PASS: test-dup2
PASS: test-environ
PASS: test-errno
PASS: test-fcntl-h
PASS: test-fcntl
PASS: test-fflush
PASS: test-fflush2.sh
PASS: test-filenamecat
PASS: test-fopen-safer
PASS: test-fopen
PASS: test-fpending.sh
PASS: test-fpurge
PASS: test-freadahead.sh
PASS: test-freading
PASS: test-frexp-nolibm
PASS: test-frexpl-nolibm
PASS: test-fseeko.sh
PASS: test-fseeko2.sh
PASS: test-ftello.sh
PASS: test-ftello2.sh
PASS: test-getdtablesize
PASS: test-getopt
PASS: test-gettimeofday
PASS: test-isnand-nolibm
PASS: test-isnanf-nolibm
PASS: test-isnanl-nolibm
PASS: test-langinfo
PASS: test-linkedhash_list
PASS: test-lseek.sh
PASS: test-lstat
PASS: test-malloca
PASS: test-math
PASS: test-mbrtowc1.sh
PASS: test-mbrtowc2.sh
PASS: test-mbrtowc3.sh
PASS: test-mbrtowc4.sh
PASS: test-mbsinit.sh
PASS: test-memchr
PASS: test-memchr2
PASS: test-nl_langinfo.sh
PASS: test-open
PASS: test-pipe.sh
PASS: test-pipe2
PASS: test-posix_spawn1
PASS: test-posix_spawn2
PASS: test-printf-frexp
PASS: test-printf-frexpl
PASS: test-quotearg.sh
PASS: test-rawmemchr
PASS: test-rmdir
PASS: test-sched
PASS: test-setenv
PASS: test-sigaction
PASS: test-signal
PASS: test-signbit
PASS: test-snprintf
PASS: test-spawn
PASS: test-stat
PASS: test-stdbool
PASS: test-stddef
PASS: test-stdint
PASS: test-stdio
PASS: test-stdlib
PASS: test-strchrnul
PASS: test-strerror
PASS: test-string
PASS: test-strsignal
PASS: test-strstr
PASS: test-strtod
PASS: test-symlink
PASS: test-sys_stat
PASS: test-sys_time
PASS: test-sys_wait
PASS: test-time
PASS: test-dup-safer
PASS: test-unistd
PASS: test-unsetenv
PASS: test-update-copyright.sh
PASS: test-vasnprintf
PASS: test-vasprintf-posix
PASS: test-vasprintf
SKIP: test-vc-list-files-git.sh
SKIP: test-vc-list-files-cvs.sh
PASS: test-version-etc.sh
PASS: test-wchar
PASS: test-wcrtomb.sh
PASS: test-wctype
PASS: test-xalloc-die.sh
PASS: test-xvasprintf
\c
======================
All 101 tests passed
(2 tests were not run)
======================

See that ?

I made it from the sources and then ran a testsuite on it and then knew
that the real thing was done and running just fine.

That is one piece in the software stack and once done I can then use it,
in a more or less trusted manner, to build other things.

> Therefore, generally the standard repo should be the first port of call
for installing anything, surely?

No.

In an open source world with an open source project running open source
software the first place to look is the SOURCE CODE.

        Go read that five times until you get it completely.

If you do not want to build software yourself ( like the Linux From
Scratch project or OpenSolaris(tm) ) then you must begin a process of
blind faith, trust, unknown leaps and ranting about official packages.

   Go get the source.

              Build it yourself.

You will thank me later for the education and the fact that in an open
source world you don't need to live in mystery about something working on
your computer or not.  That was one of the things Stallman talks about and
I agree.  You own the computer in front of you. You have the source code.
You can do what you please and if you make changes you can post them
upstream. You can gain from others work and share your work. You can both
contribute and use.

At least that is the official idea.

Seriously .. please go build some open source software yourself. It isn't
that tough and you will learn a lot.  Start with GNU make and just install
it into /usr/local. Nothing fancy.

Here, let me get you started :

   * * *      DO THIS EXERCISE       * * *

1) go see http://prep.ai.mit.edu/pub/gnu/make/

2) download http://prep.ai.mit.edu/pub/gnu/make/make-3.81.tar.gz
   That is the latest rev when I wrote this. GNU make does not change
often. Some change when the wind changes. YMMV.

3) As root do this :

# mkdir -m 1777 /usr/local

   That will allow you ( or anyone ) to drop things in there. If you want
to restrict ownership to just you then fine. This is just a teaching step.

Don't build software as root unless your crazy.
                                   That is just my advice.

4) Use some OS and an existing compiler. I don't care if it is Linux or
Solaris or SCO OpenServer. I really don't. Debian is nice. BeleniX is
awesome. You do need some sort of C compiler however. Welcome to a chicken
and egg world. This is why I whine about the OpenSolaris distros not
having GCC ready to run.

5) as you, NOT as root, in your home dir make a directory called src and
another called build. Just do this :

$ mkdir $HOME/src $HOME/build

6) put that tarball for GNU make into $HOME/src

7) cd to $HOME/build

8) If you have Jörg Schilling's star ( vastly superior to tar ) then do
this :

$ star -x -z file=$HOME/src/make-3.81.tar.gz

otherwise you're stuck with this old crap :

$ gzip -dc $HOME/src/make-3.81.tar.gz | tar -xf -

Make your life easy and make an environment var called SRC that points to
$HOME/src or where-ever. A nice common public NFS share is nice too.

So this is what I se here :

$ star -x -z -time file=$SRC/make-3.81.tar.gz
star: 593 blocks + 0 bytes (total of 6072320 bytes = 5930.00k).
star: Total time 3.242sec (1829 kBytes/sec)

mmmkay ?


9) cd into the make-3.81 source dir

$ cd make\-3.81/
$ pwd
/export/home/dclarke/build/make-3.81


10) Setup some environment vars before you compile. You don't have to set
a whack of stuff like I do but its nice to have some CFLAGS and know what
LC_foo is and maybe CC and CXX :

EDITOR=/usr/xpg4/bin/vi
GZIPBIN=/opt/csw/bin/i386/gzip
HOME=/export/home/dclarke
LANG=C
LC_ALL=C
LC_COLLATE=C
LC_CTYPE=C
LC_MESSAGES=C
LC_MONETARY=C
LC_NUMERIC=C
LC_TIME=C
PAGER=/usr/xpg4/bin/more
PATH=/usr/local/bin:/usr/local/ssl/bin:/opt/studio/SOS12.1/SUNWspro/bin:/usr/xpg6/bin:/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/usr/sbin:/bin:/sbin:/opt/schily/bin
SHELL=/sbin/sh
VISUAL=/usr/xpg4/bin/vi

I sometimes set a whole pile of flags but you can at least set a few ..
like what CPU are you making this binary for ?  64 bit or what ?

$ which cc
/opt/studio/SOS12.1/SUNWspro/bin/cc
$ CC=cc
$ export CC
$ CXX=CC
$ export CXX
$
$ $CC -V
cc: Sun C 5.10 SunOS_i386 Patch 142363-05 2010/04/28
usage: cc [ options] files.  Use 'cc -flags' for details
$ $CXX -V
CC: Sun C++ 5.10 SunOS_i386 128229-08 2010/04/21
Usage: CC [ options ] files.  Use 'CC -flags' for details

$ LD_OPTIONS=\-R/usr/local/lib\ \-L/usr/local/lib
$ export LD_OPTIONS
$
$ CPPFLAGS=\-I/usr/local/include
$ export CPPFLAGS
$
$ CFLAGS=\-m32\ \-xstrconst\ \-xildoff\ \-xarch=pentium_pro\ \-xnolibmil\
\-Xa\ \
> \-Kpic\ \-xregs=no%frameptr\ \-xlibmieee\ \-g\ \-Qy\ \-xs\ \
> \-xdebugformat=dwarf\ \-D_TS_ERRNO
$ export CFLAGS

Do the same sort of thing with CXXFLAGS if you wish and then use echo $foo
to verify these things :

$ echo $CFLAGS
-m32 -xstrconst -xildoff -xarch=pentium_pro -xnolibmil -Xa -Kpic
-xregs=no%frameptr -xlibmieee -g -Qy -xs -xdebugformat=dwarf -D_TS_ERRNO

$ echo $CXXFLAGS
-m32 -xarch=pentium_pro -norunpath -KPIC -xnolibmil -xnolibmopt
-xregs=no%frameptr -R/usr/local/lib:/usr/local/ssl/lib
-L/usr/local/lib:/usr/local/ssl/lib -g -xs -D_TS_ERRNO

Go get the Sun Studio 12 update 1 C Users manual and read the section on
compiler options to know what those all do.

You can probably get away with these :

CFLAGS=\-m32
export CFLAGS
CXXFLAGS=$CFLAGS
export CXXFLAGS

But the test results will tell you in the end of this thing.

10) run the cool little configure script and watch the blinking lights


$ ./configure
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether cc accepts -g... yes
checking for cc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of cc... none
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking for ranlib... ranlib
checking how to run the C preprocessor... cc -E
checking for ar... ar
checking for perl... perl
checking build system type... i386-pc-solaris2.11
checking host system type... i386-pc-solaris2.11
checking for egrep... grep -E
checking for AIX... no
checking for library containing strerror... none required
checking for ANSI C header files... yes
.
.
.
.
checking for waitpid... yes
checking for wait3... yes
checking for union wait... no
checking for SA_RESTART... yes
checking for location of SCCS get command... get
checking if SCCS get command understands -G... yes
checking if system libc has GNU glob... no; using local copy
checking if malloc debugging is wanted... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating glob/Makefile
config.status: creating po/Makefile.in
config.status: creating config/Makefile
config.status: creating doc/Makefile
config.status: creating w32/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing default-1 commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: creating build.sh
$


11) run make and watch the blinking lights

$ make
make  all-recursive
make[1]: Entering directory `/export/home/dclarke/build/make-3.81'
Making all in glob
make[2]: Entering directory `/export/home/dclarke/build/make-3.81/glob'
source='glob.c' object='glob.o' libtool=no \
        DEPDIR=.deps depmode=none /bin/sh ../config/depcomp \
        cc -DHAVE_CONFIG_H -I. -I. -I..   -I/usr/local/include  -m32
-xstrconst -xildoff -xarch=pentium_pro -xnolibmil -Xa -Kpic
-xregs=no%frameptr -xlibmieee -g -Qy -xs -xdebugformat=dwarf
-D_TS_ERRNO -c glob.c
source='fnmatch.c' object='fnmatch.o' libtool=no \
        DEPDIR=.deps depmode=none /bin/sh ../config/depcomp \
        cc -DHAVE_CONFIG_H -I. -I. -I..   -I/usr/local/include  -m32
-xstrconst -xildoff -xarch=pentium_pro -xnolibmil -Xa -Kpic
-xregs=no%frameptr -xlibmieee -g -Qy -xs -xdebugformat=dwarf
-D_TS_ERRNO -c fnmatch.c
rm -f libglob.a
ar cru libglob.a glob.o fnmatch.o
ranlib libglob.a
make[2]: Leaving directory `/export/home/dclarke/build/make-3.81/glob'
Making all in config
.
.
.
cc  -m32 -xstrconst -xildoff -xarch=pentium_pro -xnolibmil -Xa -Kpic
-xregs=no%frameptr -xlibmieee -g -Qy -xs -xdebugformat=dwarf -D_TS_ERRNO  
-o make  ar.o arscan.o commands.o default.o dir.o expand.o file.o
function.o getopt.o getopt1.o implicit.o job.o main.o misc.o read.o
remake.o remote-stub.o rule.o signame.o strcache.o variable.o version.o
vpath.o hash.o glob/libglob.a -lkstat  /usr/local/lib/libintl.so
-L/usr/local/lib /usr/local/lib/libiconv.so -lc -R/usr/local/lib
make[2]: Leaving directory `/export/home/dclarke/build/make-3.81'
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81'
$

12) if you look you will see a fresh new make binary that you just
compiled. Just run "make check" to test it :

$ ls -l make
-rwxr-xr-x   1 dclarke  csw       633004 Jul 13 18:42 make

$ elfdump -d make

Dynamic Section:  .dynamic
     index  tag                value
       [0]  NEEDED            0x26e5              libkstat.so.1
       [1]  NEEDED            0x26f3              libintl.so.8
       [2]  NEEDED            0x2700              libiconv.so.2
       [3]  NEEDED            0x2699              libc.so.1
       [4]  INIT              0x80822ac
       [5]  FINI              0x80822c8
       [6]  RUNPATH           0x270e              /usr/local/lib
       [7]  RPATH             0x270e              /usr/local/lib
       [8]  HASH              0x8050118
       [9]  STRTAB            0x8053690
      [10]  STRSZ             0x291d
      [11]  SYMTAB            0x8051aa0
      [12]  SYMENT            0x10
      [13]  SUNW_SYMTAB       0x8050f20
      [14]  SUNW_SYMSZ        0x2770
      [15]  SUNW_SORTENT      0x4
      [16]  SUNW_SYMSORT      0x80563a0
      [17]  SUNW_SYMSORTSZ    0x79c
      [18]  CHECKSUM          0x7501
      [19]  VERNEED           0x8055fb0
      [20]  VERNEEDNUM        0x1
      [21]  PLTRELSZ          0x328
      [22]  PLTREL            0x11
      [23]  JMPREL            0x8056b64
      [24]  REL               0x8056b3c
      [25]  RELSZ             0x350
      [26]  RELENT            0x8
      [27]  DEBUG             0
      [28]  FEATURE_1         0x1                 [ PARINIT ]
      [29]  SUNW_CAP          0x8050108
      [30]  FLAGS             0                   0
      [31]  FLAGS_1           0                   0
      [32]  SUNW_STRPAD       0x200
      [33]  SUNW_LDMACH       0x3                 EM_386
      [34]  PLTGOT            0x809753c
   [35-45]  NULL              0


$ Your results may not look like mine. I already have libiconv and GNU
gettext and other things built in advance. Tested and installed. That is
why you seem them as NEEDED libs. Thus :


$ ldd make
        libkstat.so.1 =>         /lib/libkstat.so.1
        libintl.so.8 =>  /usr/local/lib/libintl.so.8
        libiconv.so.2 =>         /usr/local/lib/libiconv.so.2
        libc.so.1 =>     /lib/libc.so.1
        libm.so.2 =>     /lib/libm.so.2

The thing seems to work :

$ ./make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-pc-solaris2.11

But how do you know ?

Blind faith ?

Official trust ?

I say you run the provided testsuite that comes with it as a start :

$ make check
Making check in glob
make[1]: Entering directory `/export/home/dclarke/build/make-3.81/glob'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81/glob'
Making check in config
make[1]: Entering directory `/export/home/dclarke/build/make-3.81/config'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81/config'
Making check in po
make[1]: Entering directory `/export/home/dclarke/build/make-3.81/po'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81/po'
Making check in doc
make[1]: Entering directory `/export/home/dclarke/build/make-3.81/doc'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81/doc'
make[1]: Entering directory `/export/home/dclarke/build/make-3.81'
make  loadavg
make[2]: Entering directory `/export/home/dclarke/build/make-3.81'
source='getloadavg.c' object='loadavg-getloadavg.o' libtool=no \
        DEPDIR=.deps depmode=none /bin/sh ./config/depcomp \
        cc -DLOCALEDIR=\"/usr/local/share/locale\"
-DLIBDIR=\"/usr/local/lib\" -DINCLUDEDIR=\"/usr/local/include\"
-DHAVE_CONFIG_H -I. -I. -I.  -DTEST -I/usr/local/include  -m32
-xstrconst -xildoff -xarch=pentium_pro -xnolibmil -Xa -Kpic
-xregs=no%frameptr -xlibmieee -g -Qy -xs -xdebugformat=dwarf
-D_TS_ERRNO -c -o loadavg-getloadavg.o `test -f 'getloadavg.c' ||
echo './'`getloadavg.c
"getloadavg.c", line 1008: warning: implicit function declaration: getloadavg
cc  -m32 -xstrconst -xildoff -xarch=pentium_pro -xnolibmil -Xa -Kpic
-xregs=no%frameptr -xlibmieee -g -Qy -xs -xdebugformat=dwarf -D_TS_ERRNO  
-o loadavg  loadavg-getloadavg.o -lkstat
make[2]: Leaving directory `/export/home/dclarke/build/make-3.81'
make  check-local
make[2]: Entering directory `/export/home/dclarke/build/make-3.81'
cd tests && perl ./run_make_tests.pl -make ../make
------------------------------------------------------------------------------
           Running tests for GNU make on SunOS aequitas 5.11 i86pc
                                GNU Make 3.81
------------------------------------------------------------------------------

Finding tests...

features/comments ....................................... ok     (1 passed)
features/conditionals ................................... ok     (4 passed)
features/default_names .................................. ok     (3 passed)
features/double_colon ................................... ok     (10 passed)
features/echoing ........................................ ok     (4 passed)
features/errors ......................................... ok     (2 passed)
features/escape ......................................... ok     (6 passed)
features/export ......................................... ok     (10 passed)
features/include ........................................ ok     (7 passed)
features/mult_rules ..................................... ok     (2 passed)
features/mult_targets ................................... ok     (2 passed)
features/order_only ..................................... ok     (10 passed)
features/override ....................................... ok     (1 passed)
features/parallelism .................................... ok     (6 passed)
features/patspecific_vars ............................... ok     (7 passed)
features/patternrules ................................... ok     (5 passed)
features/quoting ........................................ ok     (1 passed)
features/recursion ...................................... ok     (2 passed)
features/reinvoke ....................................... ok     (4 passed)
features/se_explicit .................................... ok     (5 passed)
features/se_implicit .................................... ok     (8 passed)
features/se_statpat ..................................... ok     (4 passed)
features/statipattrules ................................. ok     (8 passed)
features/targetvars ..................................... ok     (20 passed)
features/varnesting ..................................... ok     (1 passed)
features/vpath .......................................... ok     (1 passed)
features/vpath2 ......................................... ok     (1 passed)
features/vpathgpath ..................................... ok     (1 passed)
features/vpathplus ...................................... ok     (4 passed)
functions/abspath ....................................... ok     (1 passed)
functions/addprefix ..................................... ok     (1 passed)
functions/addsuffix ..................................... ok     (2 passed)
functions/andor ......................................... ok     (2 passed)
functions/basename ...................................... ok     (1 passed)
functions/call .......................................... ok     (2 passed)
functions/dir ........................................... ok     (1 passed)
functions/error ......................................... ok     (5 passed)
functions/eval .......................................... ok     (9 passed)
functions/filter-out .................................... ok     (1 passed)
functions/findstring .................................... ok     (1 passed)
functions/flavor ........................................ ok     (1 passed)
functions/foreach ....................................... ok     (4 passed)
functions/if ............................................ ok     (1 passed)
functions/join .......................................... ok     (1 passed)
functions/notdir ........................................ ok     (1 passed)
functions/origin ........................................ ok     (1 passed)
functions/realpath ...................................... ok     (2 passed)
functions/shell ......................................... ok     (2 passed)
functions/sort .......................................... ok     (1 passed)
functions/strip ......................................... ok     (2 passed)
functions/substitution .................................. ok     (3 passed)
functions/suffix ........................................ ok     (1 passed)
functions/value ......................................... ok     (1 passed)
functions/warning ....................................... ok     (4 passed)
functions/wildcard ...................................... ok     (3 passed)
functions/word .......................................... ok     (16 passed)
misc/close_stdout ....................................... ok     (0 passed)
misc/general1 ........................................... ok     (1 passed)
misc/general2 ........................................... ok     (1 passed)
misc/general3 ........................................... ok     (10 passed)
misc/general4 ........................................... ok     (6 passed)
options/dash-B .......................................... ok     (7 passed)
options/dash-C .......................................... ok     (2 passed)
options/dash-I .......................................... ok     (3 passed)
options/dash-W .......................................... ok     (10 passed)
options/dash-e .......................................... ok     (1 passed)
options/dash-f .......................................... ok     (4 passed)
options/dash-k .......................................... ok     (3 passed)
options/dash-l .......................................... ok     (1 passed)
options/dash-n .......................................... ok     (4 passed)
options/dash-q .......................................... ok     (8 passed)
options/dash-t .......................................... ok     (2 passed)
options/general ......................................... ok     (1 passed)
options/symlinks ........................................ ok     (10 passed)
options/warn-undefined-variables ........................ ok     (2 passed)
targets/DEFAULT ......................................... ok     (1 passed)
targets/FORCE ........................................... ok     (1 passed)
targets/INTERMEDIATE .................................... ok     (8 passed)
targets/PHONY ........................................... ok     (1 passed)
targets/SECONDARY ....................................... ok     (8 passed)
targets/SILENT .......................................... ok     (1 passed)
targets/clean ........................................... ok     (2 passed)
variables/CURDIR ........................................ ok     (1 passed)
variables/DEFAULT_GOAL .................................. ok     (4 passed)
variables/INCLUDE_DIRS .................................. ok     (2 passed)
variables/MAKE .......................................... ok     (1 passed)
variables/MAKECMDGOALS .................................. ok     (3 passed)
variables/MAKEFILES ..................................... ok     (1 passed)
variables/MAKELEVEL ..................................... ok     (1 passed)
variables/MAKE_RESTARTS ................................. ok     (3 passed)
variables/MFILE_LIST .................................... ok     (1 passed)
variables/SHELL ......................................... ok     (5 passed)
variables/automatic ..................................... ok     (5 passed)
variables/flavors ....................................... ok     (10 passed)
variables/negative ...................................... ok     (4 passed)
variables/special ....................................... ok     (1 passed)

350 Tests in 96 Categories Complete ... No Failures :-)

The system uptime program believes the load average to be:
uptime
  6:48pm  up 18 day(s), 17:15,  1 user,  load average: 0.99, 0.39, 0.21
The GNU load average checking code thinks:
./loadavg
1-minute: 0.992188  5-minute: 0.390625  15-minute: 0.210938

======================================================================
 Regression PASSED: GNU Make 3.81 (i386-pc-solaris2.11) built with cc
======================================================================

make[2]: Leaving directory `/export/home/dclarke/build/make-3.81'
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81'
$


There you go. You have a test report of some kind that says that the
authors of the software are happy with the binary you just cooked up.

You can now run "make install" if you choose. That binary and other bits
related to it will go into /usr/local and you can now use it and trust it.

Or not.

You have a choice.

Personally I'd just install it and then stick /usr/local/bin in my path to
use it but that is me.

$ make install
Making install in glob
make[1]: Entering directory `/export/home/dclarke/build/make-3.81/glob'
make[2]: Entering directory `/export/home/dclarke/build/make-3.81/glob'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/export/home/dclarke/build/make-3.81/glob'
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81/glob'
Making install in config
make[1]: Entering directory `/export/home/dclarke/build/make-3.81/config'
make[2]: Entering directory `/export/home/dclarke/build/make-3.81/config'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/export/home/dclarke/build/make-3.81/config'
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81/config'
Making install in po
make[1]: Entering directory `/export/home/dclarke/build/make-3.81/po'
/bin/sh ../config/mkinstalldirs /usr/local/share
installing be.gmo as /usr/local/share/locale/be/LC_MESSAGES/make.mo
installing da.gmo as /usr/local/share/locale/da/LC_MESSAGES/make.mo
installing de.gmo as /usr/local/share/locale/de/LC_MESSAGES/make.mo
installing es.gmo as /usr/local/share/locale/es/LC_MESSAGES/make.mo
installing fi.gmo as /usr/local/share/locale/fi/LC_MESSAGES/make.mo
installing fr.gmo as /usr/local/share/locale/fr/LC_MESSAGES/make.mo
installing ga.gmo as /usr/local/share/locale/ga/LC_MESSAGES/make.mo
installing gl.gmo as /usr/local/share/locale/gl/LC_MESSAGES/make.mo
installing he.gmo as /usr/local/share/locale/he/LC_MESSAGES/make.mo
installing hr.gmo as /usr/local/share/locale/hr/LC_MESSAGES/make.mo
installing id.gmo as /usr/local/share/locale/id/LC_MESSAGES/make.mo
installing ja.gmo as /usr/local/share/locale/ja/LC_MESSAGES/make.mo
installing ko.gmo as /usr/local/share/locale/ko/LC_MESSAGES/make.mo
installing nl.gmo as /usr/local/share/locale/nl/LC_MESSAGES/make.mo
installing pl.gmo as /usr/local/share/locale/pl/LC_MESSAGES/make.mo
installing pt_BR.gmo as /usr/local/share/locale/pt_BR/LC_MESSAGES/make.mo
installing ru.gmo as /usr/local/share/locale/ru/LC_MESSAGES/make.mo
installing rw.gmo as /usr/local/share/locale/rw/LC_MESSAGES/make.mo
installing sv.gmo as /usr/local/share/locale/sv/LC_MESSAGES/make.mo
installing tr.gmo as /usr/local/share/locale/tr/LC_MESSAGES/make.mo
installing uk.gmo as /usr/local/share/locale/uk/LC_MESSAGES/make.mo
installing vi.gmo as /usr/local/share/locale/vi/LC_MESSAGES/make.mo
installing zh_CN.gmo as /usr/local/share/locale/zh_CN/LC_MESSAGES/make.mo
if test "make" = "gettext-tools"; then \
          /bin/sh ../config/mkinstalldirs /usr/local/share/gettext/po; \
          for file in Makefile.in.in remove-potcdate.sin quot.sed
boldquot.sed [email protected] [email protected] insert-header.sin
Rules-quot   Makevars.template; do \
            /usr/bin/ginstall -c -m 644 ./$file \
                            /usr/local/share/gettext/po/$file; \
          done; \
          for file in Makevars; do \
            rm -f /usr/local/share/gettext/po/$file; \
          done; \
        else \
          : ; \
        fi
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81/po'
Making install in doc
make[1]: Entering directory `/export/home/dclarke/build/make-3.81/doc'
make[2]: Entering directory `/export/home/dclarke/build/make-3.81/doc'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/info" || /bin/sh ../config/mkinstalldirs
"/usr/local/info"
 /usr/bin/ginstall -c -m 644 './make.info' '/usr/local/info/make.info'
 /usr/bin/ginstall -c -m 644 './make.info-1' '/usr/local/info/make.info-1'
 /usr/bin/ginstall -c -m 644 './make.info-2' '/usr/local/info/make.info-2'
 install-info --info-dir='/usr/local/info' '/usr/local/info/make.info'
make[2]: Leaving directory `/export/home/dclarke/build/make-3.81/doc'
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81/doc'
make[1]: Entering directory `/export/home/dclarke/build/make-3.81'
make[2]: Entering directory `/export/home/dclarke/build/make-3.81'
test -z "/usr/local/bin" || /bin/sh ./config/mkinstalldirs "/usr/local/bin"
  /usr/bin/ginstall -c 'make' '/usr/local/bin/make'
test -z "/usr/local/man/man1" || /bin/sh ./config/mkinstalldirs
"/usr/local/man/man1"
 /usr/bin/ginstall -c -m 644 './make.1' '/usr/local/man/man1/make.1'
make[2]: Leaving directory `/export/home/dclarke/build/make-3.81'
make[1]: Leaving directory `/export/home/dclarke/build/make-3.81'

$ which make
/usr/local/bin/make
$ ls -l /usr/local/bin/make
-rwxr-xr-x   1 dclarke  csw       633004 Jul 13 18:50 /usr/local/bin/make
$

That was easy and educational and official.

That is open source.

If you don't like what that binary does then you can look in the sources
and figure out why.  It isn't hidden or secret.  You can get on a maillist
and ask questions about it.

You can even post a bug report.  With luck the bug report will stay in the
public and not shuffled of off to some internal bug report system. Go see
Bug ID: 6964464 in SunSolve to see what I mean. That was about OpenSolaris
and it should have stayed on defect.opensolaris.org but it was moved by a
corporate employee and now I can not comment on it or work on it. That is
not the spirit of open source.

What I am trying to say here is that there is no such thing as *official*
software packages in an open source world. You either trust the binary you
made or the one someone else makes. Or not. You either trust the test
reports which should be public and available. You can look into the
package manifests and see what is being dumped into *your* computer.

See stuff in :

http://www.blastwave.org/jir/pkgcontents.ftd?software=libgcrypt&style=brief&state=5&arch=i386

If you don't trust what I release then go elsewhere and trust someone
else. However, in an open source world you are doing it wrong if you don't
at least try to make the software from the sources yourself. Once.

Like the GCC compiler for example :

$ ls /usr/local/gcc4
bin      include  info     lib      libexec  man      share
$ /usr/local/gcc4/bin/gcc --version
gcc (Blastwave.org Inc. Tue May  4 18:49:38 GMT 2010) 4.4.4
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

That thing has a published public test report.

The moment you hand over total control and trust to some corporation
somewhere you lose the idea and the spirit behind open source. Really,
after over five years I would expect by now that a person can get the
sources for OpenSolaris(R) and just build it.

Well you can't.

Chunks are closed, proprietary and they are never going to be made open.
Someone somewhere has to rewrite, re-invent and release a whole new i18n
bits. Who knows what else.

At the very least you can make your own software to run on it. You can
make your own packages if you wish.  You can do lots of things.

Just don't forget that the source code is the offical real thing.

-- 
Dennis Clarke
[email protected]  <- Email related to the open source Solaris
[email protected]   <- Email related to open source for Solaris

ps: libgcrypt 1.4.6 released about an hour or so ago. There will be a
package available from Blastwave later today. It will have been tested on
Solaris 8 and 9 and 10 and on Sparc and i386 and 64-bit AMD64.

   You don't have to trust it either.   :-)



_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to