[ 
https://issues.apache.org/jira/browse/STDCXX-1074?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Solaris updated STDCXX-1074:
---------------------------------

    Description: 
Set your environment according to your machine type... intel and sparc examples 
shown

{noformat}
    i386 32bit:
    setenv CC "cc"
    setenv CXX "CC"
    setenv BUILDTYPE 8d
    setenv CFLAGS_I386_COMMON "-m32 -xarch=386 -Xc -features=extinl 
-xregs=no%frameptr -xO3 -xbuiltin=%none -KPIC -DPIC"
    setenv CFLAGS "${CFLAGS_I386_COMMON}"
    setenv CXXFLAGS_I386_COMMON "-library=Crun -norunpath -Qoption ccfe 
++boolflag:sunwcch=false -Qoption ccfe +d2,-xgeninl=system -Qoption ccfe 
-expand=10000 
-features=except,rtti,export,extensions,nestedaccess,tmplife,tmplrefstatic 
-instances=global -template=geninlinefuncs -verbose=template -xregs=no%frameptr 
-xO3  -xbuiltin=%none -KPIC -DPIC -xlang=c99 -xbuiltin=%none -xinline= 
-xlibmieee -xustr=ascii_utf16_ushort -z ignore -KPIC -DPIC -mt -D_REENTRANT 
-DNDEBUG -D_IN_BUILD_STDCXX -D__EXTENSIONS__ -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=500 -D_XPG5 -D_POSIX_PTHREAD_SEMANTICS 
-s +w2 -errtags -erroff=hidef"
    setenv CXXFLAGS_BUILD "-library=no%Cstd ${CXXFLAGS_I386_COMMON}"
    setenv CXXFLAGS_TESTS "-library=Cstd ${CXXFLAGS_I386_COMMON}"

    sparc 64bit:
    setenv CC "cc -xtarget=ultra -m64 -xcode=pic32"
    setenv CXX "CC -xtarget=ultra -m64 -xcode=pic32"
    setenv BUILDTYPE 8D
    setenv CFLAGS_SPARC_COMMON "-m64 -xarch=sparcvis -xmemalign=16i -Qoption cg 
-xregs=no%appl -xbuiltin=%none -xO4 -KPIC -DPIC"
    setenv CFLAGS "${CFLAGS_SPARC_COMMON}"
    setenv CXXFLAGS_SPARC_COMMON "-library=Crun -norunpath -Qoption ccfe 
++boolflag:sunwcch=false -Qoption ccfe +d2,-xgeninl=system -Qoption ccfe 
-expand=10000 
-features=except,rtti,export,extensions,nestedaccess,tmplife,tmplrefstatic 
-instances=global -template=geninlinefuncs -verbose=template -xvis=yes 
-xregs=no%appl -xO4 -xbuiltin=%none -KPIC -DPIC -xlang=c99 -xbuiltin=%none 
-xinline= -xlibmieee -xustr=ascii_utf16_ushort -z ignore -KPIC -DPIC -mt 
-D_REENTRANT -DNDEBUG -D_IN_BUILD_STDCXX -D__EXTENSIONS__ -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=500 -D_XPG5 -D_POSIX_PTHREAD_SEMANTICS 
-s +w2 -errtags -erroff=hidef"
    setenv CXXFLAGS_BUILD "-library=no%Cstd ${CXXFLAGS_SPARC_COMMON}"
    setenv CXXFLAGS_TESTS "-library=Cstd ${CXXFLAGS_SPARC_COMMON}"
{noformat}

Then paste this into your (I'm using tcsh) shell to perform the compile.

{noformat}
    setenv TOPDIR  /var/tmp/stdcxx-4.2.1
    setenv CXXFLAGS "${CXXFLAGS_BUILD}"
    setenv BUILDDIR  "${TOPDIR}/build"
    setenv CPPFLAGS "-I/var/tmp/stdcxx-4.2.1/include/ansi 
-I/var/tmp/stdcxx-4.2.1/include/tr1 -I/var/tmp/stdcxx-4.2.1/include"
    setenv LDFLAGS "-lpthread -lumem -lm -lc -s -z ignore"
    setenv LD_OPTIONS "-M /usr/lib/ld/map.noexstk -M /usr/lib/ld/map.noexdata 
-M /usr/lib/ld/map.pagealign -lpthread -lumem -lm -lc -s -z ignore"
    cd /var/tmp
    rm -rf stdcxx-4.2.1
    untgz /usr/local/src/utils/stdcxx-4.2.1.tar.gz
    untgz /usr/local/src/utils/stdcxx-4.2.1.patches.tar.gz
    stdcxx-4.2.1.patches/install_patches_src.sh
    stdcxx-4.2.1.patches/fix_header_files.sh
    cd stdcxx-4.2.1
    mkdir lib
    ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
etc/config/src/collapse_static_locals.lib.cpp                          -o 
lib/collapse_static_locals.lib.o
    ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hcollapse_static_locals.lib.so 
lib/collapse_static_locals.lib.o       -o lib/libcollapse_static_locals.lib.so
    ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
etc/config/src/collapse_template_statics.lib.cpp                       -o 
lib/collapse_template_statics.lib.o
    ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hcollapse_template_statics.lib.so 
lib/collapse_template_statics.lib.o -o lib/libcollapse_template_statics.lib.so
    ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
etc/config/src/collapse_template_locals.lib.cpp                        -o 
lib/collapse_template_locals.lib.o
    ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hcollapse_template_locals.lib.so 
lib/collapse_template_locals.lib.o   -o lib/libcollapse_template_locals.lib.so
    ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
etc/config/src/extern_inline.lib.cpp                                   -o 
lib/extern_inline.lib.o
    ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hextern_inline.lib.so 
lib/extern_inline.lib.o                         -o lib/libextern_inline.lib.so
    ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
etc/config/src/lib_exceptions.lib.cpp                                  -o 
lib/lib_exceptions.lib.o
    ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hlib_exceptions.lib.so 
lib/lib_exceptions.lib.o                       -o lib/liblib_exceptions.lib.so
    echo setenv LD_OPTIONS "-L/var/tmp/stdcxx-4.2.1/lib 
-R/var/tmp/stdcxx-4.2.1/lib -L/var/tmp/stdcxx-4.2.1/build/include 
-R/var/tmp/stdcxx-4.2.1/build/include"
    setenv LD_OPTIONS "-L/var/tmp/stdcxx-4.2.1/lib -R/usr/local/lib 
-L/var/tmp/stdcxx-4.2.1/build/include -R/usr/local/include"
    gmake BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config 
PREFIX=/usr/local SHELL=/bin/bash CC="${CC}" CXX="${CXX}" 
BUILDMODE="shared,pthreads" TOPDIR="/var/tmp/stdcxx-4.2.1" 
CXXFLAGS="${CXXFLAGS_BUILD}" LD_OPTIONS="${LD_OPTIONS}" LDFLAGS="${LDFLAGS} 
${LD_OPTIONS}" config
    unsetenv LIBDIR
    unsetenv LD_OPTIONS
    mkdir -p build/lib/.depend build/include
    cp ../stdcxx-4.2.1.patches/atomic-cxx.d build/lib/.depend/.
    touch -acm build/lib/.depend/atomic-cxx.d
    rm -f build/include/rwconfig_std.h
    cp include/config.h build/include/config.h
    cp include/config.h build/include/rwconfig_std.h
    find . -type f -name "core" -exec rm -f {} \; -print
    gmake -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config 
PREFIX=/usr/local SHELL=/bin/bash CC="${CC}" CXX="${CXX}" 
BUILDMODE="shared,pthreads" TOPDIR="/var/tmp/stdcxx-4.2.1" 
CXXFLAGS="${CXXFLAGS_BUILD}" LDFLAGS="${LDFLAGS}" lib examples util
    mkdir -p build/etc/nls
    ln -s /var/tmp/stdcxx-4.2.1/etc/nls/languages build/etc/nls/languages
    ln -s /var/tmp/stdcxx-4.2.1/etc/nls/encodings build/etc/nls/encodings
    ln -s /var/tmp/stdcxx-4.2.1/etc/nls/countries build/etc/nls/countries
    ln -s /var/tmp/stdcxx-4.2.1/etc/nls/gen_list build/etc/nls/gen_list
    perl -pe 's/-library=no%Cstd/-library=Cstd/g' -i build/makefile.in
    perl -pe 's/-library=no%Cstd/-library=Cstd/g' -i build/include/vars.sh
    perl -pe 's/-library=no%Cstd/-library=Cstd/g' -i etc/config/sunpro.config
    gmake -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config 
PREFIX=/usr/local SHELL=/bin/bash CC="${CC}" CXX="${CXX}" 
BUILDMODE="shared,pthreads" TOPDIR="/var/tmp/stdcxx-4.2.1" LDFLAGS="${LDFLAGS}" 
CXXFLAGS="${CXXFLAGS_TESTS}" rwtest
    gmake -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config 
PREFIX=/usr/local SHELL=/bin/bash CC="${CC}" CXX="${CXX}" 
BUILDMODE="shared,pthreads" TOPDIR="/var/tmp/stdcxx-4.2.1" LDFLAGS="${LDFLAGS}" 
CXXFLAGS="${CXXFLAGS_TESTS}" tests
    perl -pe 's#/var/tmp/stdcxx-4.2.1/#/usr/local/#' -i build/include/config.h
    mkdir -p /usr/local/bin /usr/local/lib/pkgconfig 
/usr/local/share/stdcxx4/locale
    mkdir -p /usr/local/include/rw/config /usr/local/share/man/man3lib
    cp build/include/config.h /usr/local/include/rw/config/rwconfig_std.h
    cp ../stdcxx-4.2.1.patches/libstdcxx4.pc /usr/local/lib/pkgconfig/.
    perl -pe 's#^prefix=.*#prefix=/usr/local#' -i 
/usr/local/lib/pkgconfig/libstdcxx4.pc
    cp ../stdcxx-4.2.1.patches/libstdcxx4.3lib /usr/local/share/man/man3lib/.
    chmod 644 /usr/local/lib/pkgconfig/libstdcxx4.pc 
/usr/local/share/man/man3lib/libstdcxx4.3lib
    gmake -i -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config 
PREFIX=/usr/local SHELL=/bin/bash CC="${CC}" CXX="${CXX}" 
BUILDMODE="shared,pthreads" TOPDIR="/var/tmp/stdcxx-4.2.1" LDFLAGS="${LDFLAGS}" 
CXXFLAGS="${CXXFLAGS_TESTS}" install
    echo /usr/bin/elfedit -e 'dyn:delete RPATH' 
/usr/local/lib/libstdcxx4.so.4.2.1
    echo /usr/bin/elfedit -e 'dyn:delete RUNPATH' 
/usr/local/lib/libstdcxx4.so.4.2.1
    chmod 0755 /usr/local/lib/libstdcxx4.so.4.2.1
{noformat}

Attached is a stdcxx-4.2.1.solaris.studio.patches.tar.gz file which contains 
the Solaris specific patches and scripts to apply them, as well as to install 
header files critical to the compile. These were sourced from the 
https://java.net/projects/solaris-userland/sources/gate/show/components/stdcxx?rev=1333
 cache.

The header files could possibly be newer than their compiled files, so set 
their inode times to be older, assuming /usr is older. Otherwise you get weird 
errors when the compiler tries to recompile files /usr/local/include.
{noformat}
    find /usr/local/include -print | grep \\.c | xargs touch -acm -r /usr
{noformat}

  was:
Set your environment according to your machine type... intel and sparc examples 
shown

{noformat}
    i386 32bit:
    setenv CC "cc"
    setenv CXX "CC"
    setenv BUILDTYPE 8d
    setenv CFLAGS_I386_COMMON "-m32 -xarch=386 -Xc -features=extinl 
-xregs=no%frameptr -xO3 -xbuiltin=%none -KPIC -DPIC"
    setenv CFLAGS "${CFLAGS_I386_COMMON}"
    setenv CXXFLAGS_I386_COMMON "-library=Crun -norunpath -Qoption ccfe 
++boolflag:sunwcch=false -Qoption ccfe +d2,-xgeninl=system -Qoption ccfe 
-expand=10000 
-features=except,rtti,export,extensions,nestedaccess,tmplife,tmplrefstatic 
-instances=global -template=geninlinefuncs -verbose=template -xregs=no%frameptr 
-xO3  -xbuiltin=%none -KPIC -DPIC -xlang=c99 -xbuiltin=%none -xinline= 
-xlibmieee -xustr=ascii_utf16_ushort -z ignore -KPIC -DPIC -mt -D_REENTRANT 
-DNDEBUG -D_IN_BUILD_STDCXX -D__EXTENSIONS__ -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=500 -D_XPG5 -D_POSIX_PTHREAD_SEMANTICS 
-s +w2 -errtags -erroff=hidef"
    setenv CXXFLAGS_BUILD "-library=no%Cstd ${CXXFLAGS_I386_COMMON}"
    setenv CXXFLAGS_TESTS "-library=Cstd ${CXXFLAGS_I386_COMMON}"

    sparc 64bit:
    setenv CC "cc -xtarget=ultra -m64 -xcode=pic32"
    setenv CXX "CC -xtarget=ultra -m64 -xcode=pic32"
    setenv BUILDTYPE 8D
    setenv CFLAGS_SPARC_COMMON "-m64 -xarch=sparcvis -xmemalign=16i -Qoption cg 
-xregs=no%appl -xbuiltin=%none -xO4 -KPIC -DPIC"
    setenv CFLAGS "${CFLAGS_SPARC_COMMON}"
    setenv CXXFLAGS_SPARC_COMMON "-library=Crun -norunpath -Qoption ccfe 
++boolflag:sunwcch=false -Qoption ccfe +d2,-xgeninl=system -Qoption ccfe 
-expand=10000 
-features=except,rtti,export,extensions,nestedaccess,tmplife,tmplrefstatic 
-instances=global -template=geninlinefuncs -verbose=template -xvis=yes 
-xregs=no%appl -xO4 -xbuiltin=%none -KPIC -DPIC -xlang=c99 -xbuiltin=%none 
-xinline= -xlibmieee -xustr=ascii_utf16_ushort -z ignore -KPIC -DPIC -mt 
-D_REENTRANT -DNDEBUG -D_IN_BUILD_STDCXX -D__EXTENSIONS__ -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=500 -D_XPG5 -D_POSIX_PTHREAD_SEMANTICS 
-s +w2 -errtags -erroff=hidef"
    setenv CXXFLAGS_BUILD "-library=no%Cstd ${CXXFLAGS_SPARC_COMMON}"
    setenv CXXFLAGS_TESTS "-library=Cstd ${CXXFLAGS_SPARC_COMMON}"
{noformat}

Then paste this into your (I'm using tcsh) shell to perform the compile.

{noformat}
    setenv TOPDIR  /var/tmp/stdcxx-4.2.1
    setenv CXXFLAGS "${CXXFLAGS_BUILD}"
    setenv BUILDDIR  "${TOPDIR}/build"
    setenv CPPFLAGS "-I/var/tmp/stdcxx-4.2.1/include/ansi 
-I/var/tmp/stdcxx-4.2.1/include/tr1 -I/var/tmp/stdcxx-4.2.1/include"
    setenv LDFLAGS "-lpthread -lumem -lm -lc -s -z ignore"
    setenv LD_OPTIONS "-M /usr/lib/ld/map.noexstk -M /usr/lib/ld/map.noexdata 
-M /usr/lib/ld/map.pagealign -lpthread -lumem -lm -lc -s -z ignore"
    cd /var/tmp
    rm -rf stdcxx-4.2.1
    untgz /usr/local/src/utils/stdcxx-4.2.1.tar.gz
    untgz /usr/local/src/utils/stdcxx-4.2.1.patches.tar.gz
    stdcxx-4.2.1.patches/install_patches_src.sh
    stdcxx-4.2.1.patches/fix_header_files.sh
    cd stdcxx-4.2.1
    mkdir lib
    ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
etc/config/src/collapse_static_locals.lib.cpp                          -o 
lib/collapse_static_locals.lib.o
    ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hcollapse_static_locals.lib.so 
lib/collapse_static_locals.lib.o       -o lib/libcollapse_static_locals.lib.so
    ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
etc/config/src/collapse_template_statics.lib.cpp                       -o 
lib/collapse_template_statics.lib.o
    ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hcollapse_template_statics.lib.so 
lib/collapse_template_statics.lib.o -o lib/libcollapse_template_statics.lib.so
    ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
etc/config/src/collapse_template_locals.lib.cpp                        -o 
lib/collapse_template_locals.lib.o
    ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hcollapse_template_locals.lib.so 
lib/collapse_template_locals.lib.o   -o lib/libcollapse_template_locals.lib.so
    ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
etc/config/src/extern_inline.lib.cpp                                   -o 
lib/extern_inline.lib.o
    ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hextern_inline.lib.so 
lib/extern_inline.lib.o                         -o lib/libextern_inline.lib.so
    ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
etc/config/src/lib_exceptions.lib.cpp                                  -o 
lib/lib_exceptions.lib.o
    ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hlib_exceptions.lib.so 
lib/lib_exceptions.lib.o                       -o lib/liblib_exceptions.lib.so
    mkdir /stdcxx
    echo setenv LD_OPTIONS "-L/var/tmp/stdcxx-4.2.1/lib 
-R/var/tmp/stdcxx-4.2.1/lib -L/var/tmp/stdcxx-4.2.1/build/include 
-R/var/tmp/stdcxx-4.2.1/build/include"
    setenv LD_OPTIONS "-L/var/tmp/stdcxx-4.2.1/lib -R/stdcxx/lib 
-L/var/tmp/stdcxx-4.2.1/build/include -R/stdcxx/include"
    gmake BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config PREFIX=/stdcxx 
SHELL=/bin/bash CC="${CC}" CXX="${CXX}" BUILDMODE="shared,pthreads" 
TOPDIR="/var/tmp/stdcxx-4.2.1" CXXFLAGS="${CXXFLAGS_BUILD}" 
LD_OPTIONS="${LD_OPTIONS}" LDFLAGS="${LDFLAGS} ${LD_OPTIONS}" config
    unsetenv LIBDIR
    unsetenv LD_OPTIONS
    mkdir -p build/lib/.depend build/include
    cp ../stdcxx-4.2.1.patches/atomic-cxx.d build/lib/.depend/.
    touch -acm build/lib/.depend/atomic-cxx.d
    ln -sf config.h build/include/rwconfig_std.h
    find . -type f -name "core" -exec rm -f {} \; -print
    gmake -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config PREFIX=/stdcxx 
SHELL=/bin/bash CC="${CC}" CXX="${CXX}" BUILDMODE="shared,pthreads" 
TOPDIR="/var/tmp/stdcxx-4.2.1" CXXFLAGS="${CXXFLAGS_BUILD}" 
LDFLAGS="${LDFLAGS}" lib examples util
    mkdir -p build/etc/nls
    ln -s /var/tmp/stdcxx-4.2.1/etc/nls/languages build/etc/nls/languages
    ln -s /var/tmp/stdcxx-4.2.1/etc/nls/encodings build/etc/nls/encodings
    ln -s /var/tmp/stdcxx-4.2.1/etc/nls/countries build/etc/nls/countries
    ln -s /var/tmp/stdcxx-4.2.1/etc/nls/gen_list build/etc/nls/gen_list
    perl -pe 's/-library=no%Cstd/-library=Cstd/g' -i build/makefile.in
    perl -pe 's/-library=no%Cstd/-library=Cstd/g' -i build/include/vars.sh
    perl -pe 's/-library=no%Cstd/-library=Cstd/g' -i etc/config/sunpro.config
    gmake -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config PREFIX=/stdcxx 
SHELL=/bin/bash CC="${CC}" CXX="${CXX}" BUILDMODE="shared,pthreads" 
TOPDIR="/var/tmp/stdcxx-4.2.1" LDFLAGS="${LDFLAGS}" 
CXXFLAGS="${CXXFLAGS_TESTS}" rwtest
    gmake -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config PREFIX=/stdcxx 
SHELL=/bin/bash CC="${CC}" CXX="${CXX}" BUILDMODE="shared,pthreads" 
TOPDIR="/var/tmp/stdcxx-4.2.1" LDFLAGS="${LDFLAGS}" 
CXXFLAGS="${CXXFLAGS_TESTS}" tests
    perl -pe 's#/var/tmp/stdcxx-4.2.1/#/stdcxx/#' -i build/include/config.h
    mkdir -p /stdcxx/bin /stdcxx/lib/pkgconfig /stdcxx/share/stdcxx4/locale
    mkdir -p /stdcxx/include/rw/config /stdcxx/share/man/man3lib
    cp build/include/config.h /stdcxx/include/rw/config/rwconfig_std.h
    cp ../stdcxx-4.2.1.patches/libstdcxx4.pc /stdcxx/lib/pkgconfig/.
    perl -pe 's#^prefix=.*#prefix=/stdcxx#' -i 
/stdcxx/lib/pkgconfig/libstdcxx4.pc
    cp ../stdcxx-4.2.1.patches/libstdcxx4.3lib /stdcxx/share/man/man3lib/.
    chmod 644 /stdcxx/lib/pkgconfig/libstdcxx4.pc 
/stdcxx/share/man/man3lib/libstdcxx4.3lib
    gmake -i -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config PREFIX=/stdcxx 
SHELL=/bin/bash CC="${CC}" CXX="${CXX}" BUILDMODE="shared,pthreads" 
TOPDIR="/var/tmp/stdcxx-4.2.1" LDFLAGS="${LDFLAGS}" 
CXXFLAGS="${CXXFLAGS_TESTS}" install
    echo Keeping run paths...
    echo /usr/bin/elfedit -e 'dyn:delete RPATH' /stdcxx/lib/libstdcxx4.so.4.2.1
    echo /usr/bin/elfedit -e 'dyn:delete RUNPATH' 
/stdcxx/lib/libstdcxx4.so.4.2.1
    chmod 0755 /stdcxx/lib/libstdcxx4.so.4.2.1
{noformat}

Attached is a stdcxx-4.2.1.solaris.studio.patches.tar.gz file which contains 
the Solaris specific patches and scripts to apply them, as well as to install 
header files critical to the compile. These were sourced from the 
https://java.net/projects/solaris-userland/sources/gate/show/components/stdcxx?rev=1333
 cache.

    
> HOWTO: Compiling stdcxx 4.2.1 on Solaris with Sun Studio 12.3 compiler
> ----------------------------------------------------------------------
>
>                 Key: STDCXX-1074
>                 URL: https://issues.apache.org/jira/browse/STDCXX-1074
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Build and Installation
>    Affects Versions: 4.2.1
>         Environment: Tested on:
> Solaris 10 i386 32bit
> Solaris 11 i386 32bit
> Solaris 10 SPARC 64bit
>            Reporter: Mark Solaris
>            Priority: Minor
>              Labels: compiler, solaris, studio
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-4.2.1.patches.tar.gz
>
>   Original Estimate: 1m
>  Remaining Estimate: 1m
>
> Set your environment according to your machine type... intel and sparc 
> examples shown
> {noformat}
>     i386 32bit:
>     setenv CC "cc"
>     setenv CXX "CC"
>     setenv BUILDTYPE 8d
>     setenv CFLAGS_I386_COMMON "-m32 -xarch=386 -Xc -features=extinl 
> -xregs=no%frameptr -xO3 -xbuiltin=%none -KPIC -DPIC"
>     setenv CFLAGS "${CFLAGS_I386_COMMON}"
>     setenv CXXFLAGS_I386_COMMON "-library=Crun -norunpath -Qoption ccfe 
> ++boolflag:sunwcch=false -Qoption ccfe +d2,-xgeninl=system -Qoption ccfe 
> -expand=10000 
> -features=except,rtti,export,extensions,nestedaccess,tmplife,tmplrefstatic 
> -instances=global -template=geninlinefuncs -verbose=template 
> -xregs=no%frameptr -xO3  -xbuiltin=%none -KPIC -DPIC -xlang=c99 
> -xbuiltin=%none -xinline= -xlibmieee -xustr=ascii_utf16_ushort -z ignore 
> -KPIC -DPIC -mt -D_REENTRANT -DNDEBUG -D_IN_BUILD_STDCXX -D__EXTENSIONS__ 
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=500 -D_XPG5 
> -D_POSIX_PTHREAD_SEMANTICS -s +w2 -errtags -erroff=hidef"
>     setenv CXXFLAGS_BUILD "-library=no%Cstd ${CXXFLAGS_I386_COMMON}"
>     setenv CXXFLAGS_TESTS "-library=Cstd ${CXXFLAGS_I386_COMMON}"
>     sparc 64bit:
>     setenv CC "cc -xtarget=ultra -m64 -xcode=pic32"
>     setenv CXX "CC -xtarget=ultra -m64 -xcode=pic32"
>     setenv BUILDTYPE 8D
>     setenv CFLAGS_SPARC_COMMON "-m64 -xarch=sparcvis -xmemalign=16i -Qoption 
> cg -xregs=no%appl -xbuiltin=%none -xO4 -KPIC -DPIC"
>     setenv CFLAGS "${CFLAGS_SPARC_COMMON}"
>     setenv CXXFLAGS_SPARC_COMMON "-library=Crun -norunpath -Qoption ccfe 
> ++boolflag:sunwcch=false -Qoption ccfe +d2,-xgeninl=system -Qoption ccfe 
> -expand=10000 
> -features=except,rtti,export,extensions,nestedaccess,tmplife,tmplrefstatic 
> -instances=global -template=geninlinefuncs -verbose=template -xvis=yes 
> -xregs=no%appl -xO4 -xbuiltin=%none -KPIC -DPIC -xlang=c99 -xbuiltin=%none 
> -xinline= -xlibmieee -xustr=ascii_utf16_ushort -z ignore -KPIC -DPIC -mt 
> -D_REENTRANT -DNDEBUG -D_IN_BUILD_STDCXX -D__EXTENSIONS__ -D_LARGEFILE_SOURCE 
> -D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=500 -D_XPG5 -D_POSIX_PTHREAD_SEMANTICS 
> -s +w2 -errtags -erroff=hidef"
>     setenv CXXFLAGS_BUILD "-library=no%Cstd ${CXXFLAGS_SPARC_COMMON}"
>     setenv CXXFLAGS_TESTS "-library=Cstd ${CXXFLAGS_SPARC_COMMON}"
> {noformat}
> Then paste this into your (I'm using tcsh) shell to perform the compile.
> {noformat}
>     setenv TOPDIR  /var/tmp/stdcxx-4.2.1
>     setenv CXXFLAGS "${CXXFLAGS_BUILD}"
>     setenv BUILDDIR  "${TOPDIR}/build"
>     setenv CPPFLAGS "-I/var/tmp/stdcxx-4.2.1/include/ansi 
> -I/var/tmp/stdcxx-4.2.1/include/tr1 -I/var/tmp/stdcxx-4.2.1/include"
>     setenv LDFLAGS "-lpthread -lumem -lm -lc -s -z ignore"
>     setenv LD_OPTIONS "-M /usr/lib/ld/map.noexstk -M /usr/lib/ld/map.noexdata 
> -M /usr/lib/ld/map.pagealign -lpthread -lumem -lm -lc -s -z ignore"
>     cd /var/tmp
>     rm -rf stdcxx-4.2.1
>     untgz /usr/local/src/utils/stdcxx-4.2.1.tar.gz
>     untgz /usr/local/src/utils/stdcxx-4.2.1.patches.tar.gz
>     stdcxx-4.2.1.patches/install_patches_src.sh
>     stdcxx-4.2.1.patches/fix_header_files.sh
>     cd stdcxx-4.2.1
>     mkdir lib
>     ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
> etc/config/src/collapse_static_locals.lib.cpp                          -o 
> lib/collapse_static_locals.lib.o
>     ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hcollapse_static_locals.lib.so 
> lib/collapse_static_locals.lib.o       -o lib/libcollapse_static_locals.lib.so
>     ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
> etc/config/src/collapse_template_statics.lib.cpp                       -o 
> lib/collapse_template_statics.lib.o
>     ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G 
> -hcollapse_template_statics.lib.so lib/collapse_template_statics.lib.o -o 
> lib/libcollapse_template_statics.lib.so
>     ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
> etc/config/src/collapse_template_locals.lib.cpp                        -o 
> lib/collapse_template_locals.lib.o
>     ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hcollapse_template_locals.lib.so 
> lib/collapse_template_locals.lib.o   -o lib/libcollapse_template_locals.lib.so
>     ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
> etc/config/src/extern_inline.lib.cpp                                   -o 
> lib/extern_inline.lib.o
>     ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hextern_inline.lib.so 
> lib/extern_inline.lib.o                         -o lib/libextern_inline.lib.so
>     ${CXX} ${CPPFLAGS} ${CXXFLAGS_BUILD} -c 
> etc/config/src/lib_exceptions.lib.cpp                                  -o 
> lib/lib_exceptions.lib.o
>     ${CXX} ${CXXFLAGS_BUILD} ${LDFLAGS}  -G -hlib_exceptions.lib.so 
> lib/lib_exceptions.lib.o                       -o lib/liblib_exceptions.lib.so
>     echo setenv LD_OPTIONS "-L/var/tmp/stdcxx-4.2.1/lib 
> -R/var/tmp/stdcxx-4.2.1/lib -L/var/tmp/stdcxx-4.2.1/build/include 
> -R/var/tmp/stdcxx-4.2.1/build/include"
>     setenv LD_OPTIONS "-L/var/tmp/stdcxx-4.2.1/lib -R/usr/local/lib 
> -L/var/tmp/stdcxx-4.2.1/build/include -R/usr/local/include"
>     gmake BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
> CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config 
> PREFIX=/usr/local SHELL=/bin/bash CC="${CC}" CXX="${CXX}" 
> BUILDMODE="shared,pthreads" TOPDIR="/var/tmp/stdcxx-4.2.1" 
> CXXFLAGS="${CXXFLAGS_BUILD}" LD_OPTIONS="${LD_OPTIONS}" LDFLAGS="${LDFLAGS} 
> ${LD_OPTIONS}" config
>     unsetenv LIBDIR
>     unsetenv LD_OPTIONS
>     mkdir -p build/lib/.depend build/include
>     cp ../stdcxx-4.2.1.patches/atomic-cxx.d build/lib/.depend/.
>     touch -acm build/lib/.depend/atomic-cxx.d
>     rm -f build/include/rwconfig_std.h
>     cp include/config.h build/include/config.h
>     cp include/config.h build/include/rwconfig_std.h
>     find . -type f -name "core" -exec rm -f {} \; -print
>     gmake -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
> CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config 
> PREFIX=/usr/local SHELL=/bin/bash CC="${CC}" CXX="${CXX}" 
> BUILDMODE="shared,pthreads" TOPDIR="/var/tmp/stdcxx-4.2.1" 
> CXXFLAGS="${CXXFLAGS_BUILD}" LDFLAGS="${LDFLAGS}" lib examples util
>     mkdir -p build/etc/nls
>     ln -s /var/tmp/stdcxx-4.2.1/etc/nls/languages build/etc/nls/languages
>     ln -s /var/tmp/stdcxx-4.2.1/etc/nls/encodings build/etc/nls/encodings
>     ln -s /var/tmp/stdcxx-4.2.1/etc/nls/countries build/etc/nls/countries
>     ln -s /var/tmp/stdcxx-4.2.1/etc/nls/gen_list build/etc/nls/gen_list
>     perl -pe 's/-library=no%Cstd/-library=Cstd/g' -i build/makefile.in
>     perl -pe 's/-library=no%Cstd/-library=Cstd/g' -i build/include/vars.sh
>     perl -pe 's/-library=no%Cstd/-library=Cstd/g' -i etc/config/sunpro.config
>     gmake -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
> CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config 
> PREFIX=/usr/local SHELL=/bin/bash CC="${CC}" CXX="${CXX}" 
> BUILDMODE="shared,pthreads" TOPDIR="/var/tmp/stdcxx-4.2.1" 
> LDFLAGS="${LDFLAGS}" CXXFLAGS="${CXXFLAGS_TESTS}" rwtest
>     gmake -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
> CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config 
> PREFIX=/usr/local SHELL=/bin/bash CC="${CC}" CXX="${CXX}" 
> BUILDMODE="shared,pthreads" TOPDIR="/var/tmp/stdcxx-4.2.1" 
> LDFLAGS="${LDFLAGS}" CXXFLAGS="${CXXFLAGS_TESTS}" tests
>     perl -pe 's#/var/tmp/stdcxx-4.2.1/#/usr/local/#' -i build/include/config.h
>     mkdir -p /usr/local/bin /usr/local/lib/pkgconfig 
> /usr/local/share/stdcxx4/locale
>     mkdir -p /usr/local/include/rw/config /usr/local/share/man/man3lib
>     cp build/include/config.h /usr/local/include/rw/config/rwconfig_std.h
>     cp ../stdcxx-4.2.1.patches/libstdcxx4.pc /usr/local/lib/pkgconfig/.
>     perl -pe 's#^prefix=.*#prefix=/usr/local#' -i 
> /usr/local/lib/pkgconfig/libstdcxx4.pc
>     cp ../stdcxx-4.2.1.patches/libstdcxx4.3lib /usr/local/share/man/man3lib/.
>     chmod 644 /usr/local/lib/pkgconfig/libstdcxx4.pc 
> /usr/local/share/man/man3lib/libstdcxx4.3lib
>     gmake -i -C${BUILDDIR} BUILDDIR="${BUILDDIR}" BUILDTYPE="${BUILDTYPE}" 
> CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" CONFIG=sunpro.config 
> PREFIX=/usr/local SHELL=/bin/bash CC="${CC}" CXX="${CXX}" 
> BUILDMODE="shared,pthreads" TOPDIR="/var/tmp/stdcxx-4.2.1" 
> LDFLAGS="${LDFLAGS}" CXXFLAGS="${CXXFLAGS_TESTS}" install
>     echo /usr/bin/elfedit -e 'dyn:delete RPATH' 
> /usr/local/lib/libstdcxx4.so.4.2.1
>     echo /usr/bin/elfedit -e 'dyn:delete RUNPATH' 
> /usr/local/lib/libstdcxx4.so.4.2.1
>     chmod 0755 /usr/local/lib/libstdcxx4.so.4.2.1
> {noformat}
> Attached is a stdcxx-4.2.1.solaris.studio.patches.tar.gz file which contains 
> the Solaris specific patches and scripts to apply them, as well as to install 
> header files critical to the compile. These were sourced from the 
> https://java.net/projects/solaris-userland/sources/gate/show/components/stdcxx?rev=1333
>  cache.
> The header files could possibly be newer than their compiled files, so set 
> their inode times to be older, assuming /usr is older. Otherwise you get 
> weird errors when the compiler tries to recompile files /usr/local/include.
> {noformat}
>     find /usr/local/include -print | grep \\.c | xargs touch -acm -r /usr
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to