[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensolaris-discuss
Subject:    Re: [osol-discuss] open source apps on Solaris OpenSolaris Nevada
From:       "Richard L. Hamilton" <rlhamil () smart ! net>
Date:       2010-04-30 23:59:43
Message-ID: 2040294225.711272697218825.JavaMail.Twebapp () sf-app1
[Download RAW message or body]

[...]
> $ ./configure    [ with my annoying thoughts
> interjected ]
> checking for gcc...
> /opt/studio/SOS12.1/SUNWspro/bin/cc
> 
> Checking for gcc ? Why? Isn't a real C compiler
>  good enough ?

They're not being precise.  The first check is really for _any_
C compiler, although setting CC alters the nature of the check
by causing it to use that rather than search the PATH or whatever.

> 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
> 
>       Well, no. That was determined above.

Actually, it wasn't, since the previous mention of gcc
was just naive chauvinism.  _This_ check however, is
specifically for gcc, and in support of _willful_ chauvinism,
inasmuch as if they find gcc, they'll presumably feel free
to have code #ifdef'd on that that uses gcc language extensions.

> ing whether /opt/studio/SOS12.1/SUNWspro/bin/cc
> accepts -g... yes
> checking for /opt/studio/SOS12.1/SUNWspro/bin/cc
> option to accept ISO
> C89... none needed
> checking how to run the C preprocessor...
> /opt/studio/SOS12.1/SUNWspro/bin/cc -E
> checking for a BSD-compatible install...
> /usr/bin/ginstall -c
> checking whether make sets $(MAKE)... yes
> checking for ed... /usr/xpg6/bin/ed
> checking for bash... /usr/bin/bash
> checking build system type... i386-pc-solaris2.11
> checking host system type... i386-pc-solaris2.11
> checking for grep that handles long lines and -e...
> /usr/bin/ggrep
> checking for egrep... /usr/bin/ggrep -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 minix/config.h usability... no
> checking minix/config.h presence... no
> checking for minix/config.h... no
> checking whether it is safe to define
> __EXTENSIONS__... yes
> checking for /opt/studio/SOS12.1/SUNWspro/bin/cc
> option to accept ISO
> C99... none needed
> checking for /opt/studio/SOS12.1/SUNWspro/bin/cc
> option to accept ISO
> Standard C... (cached) none needed
> checking for special C compiler options needed for
> large files... no
> checking for _FILE_OFFSET_BITS value needed for large
> files... 64
> checking for ANSI C header files... (cached) yes
> checking fcntl.h usability... yes
> checking fcntl.h presence... yes
> checking for fcntl.h... yes
> checking utime.h usability... yes
> checking utime.h presence... yes
> checking for utime.h... yes
> checking for mode_t... yes
> checking for off_t... yes
> checking for stdbool.h that conforms to C99... yes
> checking for _Bool... yes
> checking sys/time.h usability... yes
> checking sys/time.h presence... yes
> checking for sys/time.h... yes
> checking for utime.h... (cached) yes
> checking for struct utimbuf... yes
> checking for d_ino member in directory struct... yes
> checking whether system is Windows or MSDOS... no
> checking for long file names... yes
> checking for pathconf... yes
> checking whether // is distinct from /... no
> checking whether strerror_r is declared... yes
> checking for strerror_r... yes
> checking whether strerror_r returns char *... no
> checking for error_at_line... no
> checking for memchr... yes
> 
>     Watch this ***
> king whether strndup is declared... no
> checking for working strndup... no
>     *** okay .. saw that ?
> cking whether strnlen is declared... yes
> checking for working strnlen... yes
>     *** and that ?

Those are some of those new Open Group Issue 7 / IEEE 1003-1.2008 / ISO/IEC 9945:2009
functions that may or may not be present.  In another post, I explained
why strnlen() is present (and some of the others may not be).

[...]

> What if we go back a few mores revs? Right into the
> basement ?
[...]

I don't have anything left running Solaris 8 to try this on myself.

But I suspect your later problems were ultimately due to the
self-configuring tests not being designed altogether properly, but
rather making assumptions.  Such things should ideally test for each
desired feature (that they have their own implementation of if the
system doesn't provide it) separately, not entangling them and
as much as possible not trying to relate them to a particular OS version
or vice versa.

If the tests fail to do that, then when their assumptions are violated,
the results won't be correct.  That is, the auto-configuration may
result in code that may not compile, link, or run correctly.

That's probably the bottom line, even without knowing the details.

The most "correct" fix would be to either the pre-autoconfiguration code,
or automake, or something back that far up the chain, although if one
didn't have all the tools needed to regenerate a new configure script,
one could probably do hacky little things to get around the problem
in that one particular case.

(I've never used automake to create a configure script myself, not having
needed anything more than a couple of #ifdef's to port short simple stuff
to the handful of platforms that I'd typically needed to at any given time.
So I can't tell you in any detail how to fix this the right way, without
having a Solaris 8 environment set up (could in principle do that with a
branded zone, except that would require a bloody expensive support
contract for home use, I think; the alternative would be to reload one
of my 2 UltraSPARC workstations, which would _not_ make me happy
either!), and without first learning the tools used to generate the configure script.)
-- 
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic