On Fri, Jun 20, 2008 at 6:07 PM, Alan Coopersmith
<[EMAIL PROTECTED]> wrote:
> I needed to apply the attached patches to git master to be able to build
> on Solaris using the autoconf support and the Sun compilers - can they be
> included for the 7.1 release?

I'm just gonna comment on the autoconf/build stuff.

> diff --git a/configs/autoconf.in b/configs/autoconf.in
> index 9a70ec1..ed44a0f 100644
> --- a/configs/autoconf.in
> +++ b/configs/autoconf.in
> @@ -98,3 +98,6 @@ DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INS
>
>  # Where libGL will look for DRI hardware drivers
>  DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
> +
> +# Additional per-platform configuration settings
> [EMAIL PROTECTED]@
> diff --git a/configure.ac b/configure.ac
> index a054330..c4b65db 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -29,6 +29,18 @@ AC_CHECK_PROGS([MAKE], [gmake make])
>  AC_PATH_PROG([MKDEP], [makedepend])
>  AC_PATH_PROG([SED], [sed])
>
> +dnl Platform-specific program settings
> +EXTRA_CONFIG_LINES=""
> +AC_SUBST([EXTRA_CONFIG_LINES])
> +case "$host_os" in
> +solaris*)
> +    # Solaris /bin/sh is too old/non-POSIX compliant
> +    AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
> +    EXTRA_CONFIG_LINES="SHELL=$POSIX_SHELL"
> +    ;;
> +esac

Oh, we should probably be setting SHELL in configs/autoconf all the
time. Autoconf has support for this by using the shell that configure
was called with or the value of CONFIG_SHELL.

Do you know which parts are too POSIXy? I don't think it would be too
much work to make the build work with any reasonable Bourne shell.

> +dnl OS-specific libraries
> +OS_LIBS=""
> +case "$host_os" in
> +solaris*)
> +    OS_LIBS="-lc"
> +    if test "x$GXX" != xyes; then
> +        OS_CPLUSPLUS_LIBS="-lCrun $OS_LIBS"
> +    fi
> +    ;;
> +esac

Does the linker/compiler not add these for you on solaris? Does
libtool do this for you in a fully autotooled setup? Would it be
better to add this stuff to bin/mklib?

> +    solaris*)
> +        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
> +        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
> +        if test "x$driglx_direct" = xyes; then
> +            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
> +        fi
> +        ;;

None of these settings are platform specific. I don't know why I ever
made it that way.

> @@ -914,7 +953,14 @@ dnl    Only libm is added here if necess
>  dnl    be pulled in by the linker
>  dnl
>  if test "x$APP_LIB_DEPS" = x; then
> -    APP_LIB_DEPS="-lm"
> +    case "$host_os" in
> +    solaris*)
> +        APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
> +        ;;
> +    *)
> +        APP_LIB_DEPS="-lm"
> +        ;;
> +    esac
>  fi

It would be nice if we could do this in a non-platform-specific way.
Do you know why -lX11 is needed for the apps? Normally it would just
be pulled in as needed by other Mesa libraries. Are there specific
functions that libsocket and libnsl are needed for, or is it part of
using libX11?

--
Dan

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to