Build for Solaris 7/sparc

This commit is contained in:
Tom G. Christensen 2010-05-09 08:54:17 +00:00 committed by Tom G. Christensen
parent 01e9d8f4f4
commit 49c6f5c16f
4 changed files with 271 additions and 54 deletions

View File

@ -1,38 +1,21 @@
#!/bin/bash
# This is a buildpkg build.sh script
# Copyright (C) 2003-2009 Tom G. Christensen <tgc@jupiterrise.com>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Written by Tom G. Christensen <tgc@jupiterrise.com>.
# build.sh helper functions
. ${BUILDPKG_BASE}/scripts/build.sh.functions
. ${BUILDPKG_SCRIPTS}/build.sh.functions
#
###########################################################
# Check the following 4 variables before running the script
snapshot=
topdir=gcc
version=4.3.4
pkgver=1
pkgver=2
source[0]=ftp://ftp.sunet.se/pub/gnu/gcc/releases/$topdir-$version/$topdir-$version.tar.bz2
#source[0]=gcc-4.3-$snapshot.tar.bz2
## If there are no patches, simply comment this
#patch[0]=
# Source function library
. ${BUILDPKG_BASE}/scripts/buildpkg.functions
. ${BUILDPKG_SCRIPTS}/buildpkg.functions
# Global settings
lprefix=$prefix
@ -48,34 +31,48 @@ majorminor=$(echo $version | cut -d. -f1-2)
global_config_args="--prefix=$prefix --with-local-prefix=$prefix --with-libiconv-prefix=$lprefix --with-gmp=$lprefix --with-mpfr=$lprefix --disable-nls --enable-shared"
langs="--enable-languages=c,ada,c++,fortran,objc,obj-c++"
linker="--without-gnu-ld --with-ld=/usr/ccs/bin/ld"
assembler="--without-gnu-as --with-as=/usr/ccs/bin/as"
objdir=all_native
# platform/arch specific options
[ "$_os" = "sunos56" ] && platform_configure_args="--enable-threads=posix95 --enable-obsolete"
[ "$_os" = "sunos56" -a "$arch" = "i386" ] && platform_configure_args="$platform_configure_args --with-gnu-as --with-as=$lprefix/bin/gas"
[ "$_os" = "sunos56" -a "$arch" = "i386" ] && assembler="--with-gnu-as --with-as=$lprefix/bin/gas"
[ "$_os" = "sunos56" ] && { platform_configure_args="--enable-threads=posix95 --enable-obsolete"; sol26=1; }
[ "$_os" = "sunos57" ] && { langs="$langs,java --with-java-awt=xlib"; sol27=1; }
[ "$arch" = "sparc" ] && { vendor="sun"; sparc=1; } || { vendor="pc"; intel=1; }
[ "$arch" = "sparc" -a -n "$(isalist | grep sparcv9)" ] && { sparcv9=1; m64run=1; } || m64run=0
configure_args="$global_config_args $langs $platform_configure_args"
configure_args="$global_config_args $linker $assembler $langs $platform_configure_args"
export CONFIG_SHELL=/bin/ksh
datestamp()
{
date +%Y%m%d%H%M
}
reg prep
prep()
{
datestamp
generic_prep
datestamp
}
reg build
build()
{
datestamp
setdir source
${__mkdir} -p ../$objdir
echo "$__configure $configure_args"
generic_build ../$objdir
datestamp
}
reg install
install()
{
datestamp
clean stage
setdir ${srcdir}/${objdir}
${__make} DESTDIR=$stagedir install
@ -88,11 +85,40 @@ install()
setdir ${stagedir}${prefix}/${_libdir}
${__tar} -cf - libgcc_s.so.1 libstdc++.so.6* libgfortran.so.3* libobjc.so.2* libgomp.so.1* |
(cd ${stagedir}${lprefix}/${_libdir}; ${__tar} -xvBpf -)
if [ $m64run -eq 1 ]; then # Also install v9 libraries
${__mkdir} -p ${stagedir}${lprefix}/${_libdir}/sparcv9
setdir ${stagedir}${prefix}/${_libdir}/sparcv9
${__tar} -cf - libgcc_s.so.1 libstdc++.so.6* libgfortran.so.3* libobjc.so.2* libgomp.so.1* |
(cd ${stagedir}${lprefix}/${_libdir}/sparcv9; ${__tar} -xvBpf -)
fi
# Grab gnat libraries from adalib
${__cp} -p ${stagedir}${prefix}/${_libdir}/gcc/${arch}-${vendor}-solaris*/${version}/adalib/libgnarl-$majorminor.so ${stagedir}${lprefix}/${_libdir}
${__cp} -p ${stagedir}${prefix}/${_libdir}/gcc/${arch}-${vendor}-solaris*/${version}/adalib/libgnat-$majorminor.so ${stagedir}${lprefix}/${_libdir}
# Turn all the hardlinks in bin into symlinks
setdir ${stagedir}${prefix}/${_bindir}
for i in c++ ${arch}-${vendor}-solaris*-c++ ${arch}-${vendor}-solaris*-g++
do
${__rm} -f $i
${__ln} -sf g++ $i
done
for i in ${arch}-${vendor}-solaris*-gcc ${arch}-${vendor}-solaris*-gcc-$version
do
${__rm} -f $i
${__ln} -sf gcc $i
done
for i in ${arch}-${vendor}-solaris*-gfortran
do
${__rm} -f $i
${__ln} -sf gfortran $i
done
for i in ${arch}-${vendor}-solaris*-gcj
do
${__rm} -f $i
${__ln} -sf gcj $i
done
# Place share/docs in the regular location
prefix=$topinstalldir
doc COPYING* MAINTAINERS NEWS
@ -125,21 +151,32 @@ install()
compat libgfortran3 4.3.3 1 2
compat libgnat43 4.3.2 1 2
compat libgnat43 4.3.3 1 2
datestamp
}
reg check
check()
{
datestamp
setdir source
setdir ../$objdir
${__make} -k check
# If we can run v9 binaries then we also run the testsuite with -m64
if [ $m64run -eq 0 ]; then
${__make} -k check
else
echo "Running the testsuite also with -m64"
${__make} -k RUNTESTFLAGS="--target_board='unix{,-m64}'" check
fi
datestamp
}
reg pack
pack()
{
datestamp
iprefix=$topdir-$version
generic_pack
datestamp
}
reg distclean

5
gcc43/meta/ChangeLog Normal file
View File

@ -0,0 +1,5 @@
CHANGELOG
---------
* Sat May 08 2010 Tom G. Christensen <tgc@jupiterrise.com> - 4.3.4-2
- Build for Solaris 7/sparc
- Convert some hardlinks to symlinks to save space

View File

@ -14,6 +14,11 @@ $iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/crt*
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/libgcc*
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/libgcov*
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/gmon.o
if(sparcv9)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/sparcv9/gcrt*
if(sparcv9)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/sparcv9/crt*
if(sparcv9)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/sparcv9/libgcc*
if(sparcv9)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/sparcv9/libgcov*
if(sparcv9)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/sparcv9/gmon.o
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/README
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/X11
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/Xm
@ -23,7 +28,7 @@ $iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/curses.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include/iso646.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/limits.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/math.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/memory.h
if(sunos56)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/memory.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/pthread.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/root
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/stdarg.h
@ -66,6 +71,12 @@ if(sparc)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/thre
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/time.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/tzfile.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/widec.h
if(sol27)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/arpa/nameser_compat.h
if(sol27)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/rpc/xdr.h
if(sol27)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/stdio_tag.h
if(sol27)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include-fixed/wchar.h
if(sparcv9)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include/ffi.h
if(sparcv9)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include/ffitarget.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/install-tools
$iprefix/libexec/gcc/${arch}-${vendor}-solaris*/$version/install-tools
$iprefix/libexec/gcc/${arch}-${vendor}-solaris*/$version/collect2
@ -78,6 +89,12 @@ $iprefix/lib/libiberty.a
$iprefix/lib/libgcc*
$iprefix/lib/libgomp*
$iprefix/lib/libssp*
if(sparcv9)$iprefix/lib/libffi*
if(sparcv9)$iprefix/lib/sparcv9/libssp*
if(sparcv9)$iprefix/lib/sparcv9/libgomp*
if(sparcv9)$iprefix/lib/sparcv9/libgcc*
if(sparcv9)$iprefix/lib/sparcv9/libiberty*
if(sparcv9)$iprefix/lib/sparcv9/libffi*
$iprefix/man/?a?1/gcc.1
$iprefix/man/?a?1/cpp.1
$iprefix/man/?a?1/gcov.1
@ -97,7 +114,19 @@ pkgvendor="http://gcc.gnu.org"
pkgdesc="Ada support for GCC"
pkgver="$pkgver"
files(-,root,bin)
$iprefix/bin/gnat*
$iprefix/bin/gnat
$iprefix/bin/gnatbind
$iprefix/bin/gnatbl
$iprefix/bin/gnatchop
$iprefix/bin/gnatclean
$iprefix/bin/gnatfind
$iprefix/bin/gnatkr
$iprefix/bin/gnatlink
$iprefix/bin/gnatls
$iprefix/bin/gnatmake
$iprefix/bin/gnatname
$iprefix/bin/gnatprep
$iprefix/bin/gnatxref
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/adainclude
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/adalib
$iprefix/libexec/gcc/${arch}-${vendor}-solaris*/$version/gnat1
@ -111,9 +140,91 @@ pkgdesc="C++ support for GCC"
pkgver="$pkgver"
files(-,root,bin)
$iprefix/bin/*++*
$iprefix/include/c++
$iprefix/include/c++/${version}/algorithm
$iprefix/include/c++/${version}/array
$iprefix/include/c++/${version}/backward/*
$iprefix/include/c++/${version}/bits/*
$iprefix/include/c++/${version}/bitset
$iprefix/include/c++/${version}/c++0x_warning.h
$iprefix/include/c++/${version}/cassert
$iprefix/include/c++/${version}/ccomplex
$iprefix/include/c++/${version}/cctype
$iprefix/include/c++/${version}/cerrno
$iprefix/include/c++/${version}/cfenv
$iprefix/include/c++/${version}/cfloat
$iprefix/include/c++/${version}/cinttypes
$iprefix/include/c++/${version}/ciso646
$iprefix/include/c++/${version}/climits
$iprefix/include/c++/${version}/clocale
$iprefix/include/c++/${version}/cmath
$iprefix/include/c++/${version}/complex
$iprefix/include/c++/${version}/complex.h
$iprefix/include/c++/${version}/csetjmp
$iprefix/include/c++/${version}/csignal
$iprefix/include/c++/${version}/cstdarg
$iprefix/include/c++/${version}/cstdbool
$iprefix/include/c++/${version}/cstddef
$iprefix/include/c++/${version}/cstdint
$iprefix/include/c++/${version}/cstdio
$iprefix/include/c++/${version}/cstdlib
$iprefix/include/c++/${version}/cstring
$iprefix/include/c++/${version}/ctgmath
$iprefix/include/c++/${version}/ctime
$iprefix/include/c++/${version}/cwchar
$iprefix/include/c++/${version}/cwctype
$iprefix/include/c++/${version}/cxxabi-forced.h
$iprefix/include/c++/${version}/cxxabi.h
$iprefix/include/c++/${version}/debug/*
$iprefix/include/c++/${version}/deque
$iprefix/include/c++/${version}/exception
$iprefix/include/c++/${version}/exception_defines.h
$iprefix/include/c++/${version}/ext/*
$iprefix/include/c++/${version}/fenv.h
$iprefix/include/c++/${version}/fstream
$iprefix/include/c++/${version}/functional
$iprefix/include/c++/${version}/iomanip
$iprefix/include/c++/${version}/ios
$iprefix/include/c++/${version}/iosfwd
$iprefix/include/c++/${version}/iostream
$iprefix/include/c++/${version}/istream
$iprefix/include/c++/${version}/iterator
$iprefix/include/c++/${version}/limits
$iprefix/include/c++/${version}/list
$iprefix/include/c++/${version}/locale
$iprefix/include/c++/${version}/map
$iprefix/include/c++/${version}/memory
$iprefix/include/c++/${version}/new
$iprefix/include/c++/${version}/numeric
$iprefix/include/c++/${version}/org/*
$iprefix/include/c++/${version}/ostream
$iprefix/include/c++/${version}/parallel/*
$iprefix/include/c++/${version}/queue
$iprefix/include/c++/${version}/random
$iprefix/include/c++/${version}/regex
$iprefix/include/c++/${version}/set
$iprefix/include/c++/${version}/sstream
$iprefix/include/c++/${version}/stack
$iprefix/include/c++/${version}/stdexcept
$iprefix/include/c++/${version}/streambuf
$iprefix/include/c++/${version}/string
$iprefix/include/c++/${version}/sun/*
$iprefix/include/c++/${version}/tgmath.h
$iprefix/include/c++/${version}/tr1/*
$iprefix/include/c++/${version}/tr1_impl/*
$iprefix/include/c++/${version}/tuple
$iprefix/include/c++/${version}/type_traits
$iprefix/include/c++/${version}/typeinfo
$iprefix/include/c++/${version}/unordered_map
$iprefix/include/c++/${version}/unordered_set
$iprefix/include/c++/${version}/utility
$iprefix/include/c++/${version}/valarray
$iprefix/include/c++/${version}/vector
$iprefix/include/c++/${version}/${arch}-${vendor}-solaris*/bits
if(sparcv9)$iprefix/include/c++/${version}/${arch}-${vendor}-solaris*/sparcv9/bits
$iprefix/lib/libstdc++.*
$iprefix/lib/libsupc++.a
if(sparcv9)$iprefix/lib/sparcv9/libstdc++.*
if(sparcv9)$iprefix/lib/sparcv9/libsupc++.a
$iprefix/libexec/gcc/${arch}-${vendor}-solaris*/$version/cc1plus
$iprefix/man/man1/g++.1
@ -126,6 +237,7 @@ pkgver="$pkgver"
files(-,root,bin)
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include/objc
$iprefix/lib/libobjc.*
if(sparcv9)$iprefix/lib/sparcv9/libobjc.*
$iprefix/libexec/gcc/${arch}-${vendor}-solaris*/$version/cc1obj
[gcc-objc++]
@ -147,6 +259,8 @@ files(-,root,bin)
$iprefix/bin/*fortran
$iprefix/lib/libgfortran.*
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/libgfortranbegin.a
if(sparcv9)$iprefix/lib/sparcv9/libgfortran.*
if(sparcv9)$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/sparcv9/libgfortranbegin.a
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/finclude
$iprefix/libexec/gcc/${arch}-${vendor}-solaris*/$version/f951
$iprefix/man/?a?1/gfortran.1
@ -161,6 +275,7 @@ pkgdesc="Runtime support library for C"
pkgver="$pkgver"
files(-,root,bin)
$_libdir/libgcc_s.so.1*
if(sparcv9)$_libdir/sparcv9/libgcc_s.so.1*
[libstdc++6]
pkgname="${pkgprefix}lstdc6"
@ -171,6 +286,7 @@ pkgdesc="Runtime support library for C++"
pkgver="$pkgver"
files(-,root,bin)
$_libdir/libstdc++.so.6*
if(sparcv9)$_libdir/sparcv9/libstdc++.so.6*
[libobjc2]
pkgname="${pkgprefix}lobjc2"
@ -181,6 +297,7 @@ pkgdesc="Runtime support library for Objective-C"
pkgver="$pkgver"
files(-,root,bin)
$_libdir/libobjc.so.2*
if(sparcv9)$_libdir/sparcv9/libobjc.so.2*
[libgfortran3]
pkgname="${pkgprefix}lgft3"
@ -191,6 +308,7 @@ pkgdesc="Runtime support library for Fortran"
pkgver="$pkgver"
files(-,root,bin)
$_libdir/libgfortran.so.3*
if(sparcv9)$_libdir/sparcv9/libgfortran.so.3*
[libgomp1]
pkgname="${pkgprefix}lgo1"
@ -201,6 +319,7 @@ pkgdesc="Runtime support library for OpenMP"
pkgver="$pkgver"
files(-,root,bin)
$_libdir/libgomp.so.1*
if(sparcv9)$_libdir/sparcv9/libgomp.so.1*
[libgnat43]
pkgname="${pkgprefix}lga43"
@ -213,3 +332,86 @@ files(-,root,bin)
$_libdir/libgnat-4.3.so
$_libdir/libgnarl-4.3.so
# These packages only exist when java is enabled
# RH splits libgcj into it's own package, I can't be bothered...
[gcc-java]
pkgname="${pkgprefix}g${abbrev_ver}jv"
name="gcc-java - GNU Compiler Collection (Java)"
pkgvendor="http://gcc.gnu.org"
pkgdesc="Java support for GCC"
pkgver="$pkgver"
files(-,root,bin)
# These files are gcc-java
$iprefix/bin/*gcj
$iprefix/bin/gcjh
$iprefix/bin/jcf-dump
$iprefix/lib/libgcj-tools.*
$iprefix/lib/libgcj.*
$iprefix/lib/libgij.*
if(sparcv9)$iprefix/lib/sparcv9/libgcj-tools.*
if(sparcv9)$iprefix/lib/sparcv9/libgcj.*
if(sparcv9)$iprefix/lib/sparcv9/libgij.*
$iprefix/libexec/gcc/${arch}-${vendor}-solaris*/$version/jc1
$iprefix/libexec/gcc/${arch}-${vendor}-solaris*/$version/jvgenmain
$iprefix/man/?a?1/gcj.1
$iprefix/man/?a?1/gcjh.1
$iprefix/man/?a?1/jcf-dump.1
$iprefix/info/gcj.info*
# These files are libgcj
$iprefix/bin/gappletviewer
$iprefix/bin/gcj-dbtool
$iprefix/bin/gij
$iprefix/bin/gjar
$iprefix/bin/gjarsigner
$iprefix/bin/gkeytool
$iprefix/bin/gorbd
$iprefix/bin/grmic
$iprefix/bin/grmid
$iprefix/bin/grmiregistry
$iprefix/bin/gserialver
$iprefix/bin/gtnameserv
$iprefix/bin/jv-convert
$iprefix/lib/gcj-${version}-9/classmap.db
$iprefix/lib/gcj-${version}-9/libjvm.so
$iprefix/lib/gcj-${version}-9/libjvm.a
$iprefix/lib/logging.properties
$iprefix/lib/pkgconfig/libgcj*.pc
$iprefix/lib/security/classpath.security
if(sparcv9)$iprefix/lib/sparcv9/gcj-${version}-9/classmap.db
if(sparcv9)$iprefix/lib/sparcv9/gcj-${version}-9/libjvm.so
if(sparcv9)$iprefix/lib/sparcv9/gcj-${version}-9/libjvm.a
if(sparcv9)$iprefix/lib/sparcv9/logging.properties
if(sparcv9)$iprefix/lib/sparcv9/security/classpath.security
$iprefix/man/?a?1/gappletviewer.1
$iprefix/man/?a?1/gcj-dbtool.1
$iprefix/man/?a?1/gij.1
$iprefix/man/?a?1/gjar.1
$iprefix/man/?a?1/gjarsigner.1
$iprefix/man/?a?1/gkeytool.1
$iprefix/man/?a?1/gorbd.1
$iprefix/man/?a?1/grmic.1
$iprefix/man/?a?1/grmid.1
$iprefix/man/?a?1/grmiregistry.1
$iprefix/man/?a?1/gserialver.1
$iprefix/man/?a?1/gtnameserv.1
$iprefix/man/?a?1/jv-convert.1
$iprefix/info/cp-tools.info*
$iprefix/share/java/libgcj*-${version}.jar
# These files are libgcj-devel
$iprefix/bin/addr2name.awk
$iprefix/bin/gc-analyze
$iprefix/bin/gjavah
$iprefix/bin/gnative2ascii
$iprefix/include/c++/${version}/gcj
$iprefix/include/c++/${version}/gnu
$iprefix/include/c++/${version}/java
$iprefix/include/c++/${version}/javax
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include/gcj/libgcj-config.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include/jawt.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include/jawt_md.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include/jni.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include/jni_md.h
$iprefix/lib/gcc/${arch}-${vendor}-solaris*/$version/include/jvmpi.h
$iprefix/man/?a?1/gc-analyze.1
$iprefix/man/?a?1/gjavah.1
$iprefix/man/?a?1/gnative2ascii.1

View File

@ -1,27 +0,0 @@
PACKAGE DETAILS
---------------
Name: %%PKGNAME%%
Version: %%SOURCE_AND_VER%%
Vendor: %%VENDOR%%
Packager: %%PKGEDBY%%
Source (sha1sum):
%%SOURCE_SHA1SUM%%
BUILD DETAILS
-------------
Compiler:
%%COMPILER%%
Environment:
%%ENVIRONMENT%%
Configure:
%%CONFIGURE%%
KNOWN DEPENDENCIES
------------------
%%DEPENDENCIES%%
ERRORS/MISCELLANEOUS
--------------------