# HG changeset patch # User Stefan Teleman # Date 1378751657 25200 # Node ID bcf516ed6959f133bcdc04bbd5509e1f3bf6f290 # Parent 5ba0aa89a64a7028ebf70e3031ef003fd64674ab 17349731 GCC 4.7.3 should ship stripped binaries 17285803 gcc47 needs a resolve.deps 17283930 remove -z relax=secadj in GCC 4.7.3 on S12 17356324 GCC 4.7.3 should install its gdb Python files diff -r 5ba0aa89a64a -r bcf516ed6959 components/gcc47/Makefile --- a/components/gcc47/Makefile Thu Sep 05 07:39:18 2013 -0700 +++ b/components/gcc47/Makefile Mon Sep 09 11:34:17 2013 -0700 @@ -58,7 +58,7 @@ GCC_LD_OPTIONS.sparc=-M /usr/lib/ld/map.noexstk -M /usr/lib/ld/map.pagealign -z ignore GCC_LD_OPTIONS.i386=-M /usr/lib/ld/map.noexstk -M /usr/lib/ld/map.pagealign -z ignore GCC_LD_OPTIONS = $(GCC_LD_OPTIONS.$(MACH)) -LD_OPTIONS := -z relax=secadj $(GCC_LD_OPTIONS) +LD_OPTIONS := $(GCC_LD_OPTIONS) CONFIG_SHELL = /bin/sh MAKESHELL = /bin/sh @@ -96,7 +96,11 @@ cd $(PROTOUSRDIR)/gcc/4.7/share/gcc-4.7.3/python/libstdcxx ; \ $(PYTHON) -m compileall . ; \ cd $(PROTOUSRDIR)/gcc/4.7/share/gcc-4.7.3/python/libstdcxx/v6 ; \ - $(PYTHON) -m compileall . ) + $(PYTHON) -m compileall . ; \ + cd $(COMPONENT_DIR) ; \ + chmod 0755 ./gcc_post_install_processing.sh ; \ + $(SHELL) ./gcc_post_install_processing.sh -protodir=$(PROTO_DIR) \ + -python=$(PYTHON) -gccversion=$(COMPONENT_VERSION) ) # ASLR has side-effects with libitm and libgomp. # Disable ASLR for now. diff -r 5ba0aa89a64a -r bcf516ed6959 components/gcc47/developer-gcc4-gcc-c++-47.p5m --- a/components/gcc47/developer-gcc4-gcc-c++-47.p5m Thu Sep 05 07:39:18 2013 -0700 +++ b/components/gcc47/developer-gcc4-gcc-c++-47.p5m Mon Sep 09 11:34:17 2013 -0700 @@ -732,7 +732,6 @@ file path=usr/gcc/4.7/include/c++/$(COMPONENT_VERSION)/valarray file path=usr/gcc/4.7/include/c++/$(COMPONENT_VERSION)/vector file path=usr/gcc/4.7/lib/$(MACH64)/libstdc++.a -file path=usr/gcc/4.7/lib/$(MACH64)/libstdc++.so.6.0.17-gdb.py file path=usr/gcc/4.7/lib/$(MACH64)/libsupc++.a # # GNU C++ Standard Library Archive Libraries @@ -742,10 +741,31 @@ # GNU C++ Standard Library Python gdb support # file path=usr/gcc/4.7/lib/libstdc++.so.6.0.17-gdb.py +file path=usr/gcc/4.7/lib/$(MACH64)/libstdc++.so.6.0.17-gdb.py + +file usr/gcc/4.7/lib/libstdc++.so.6.0.17-gdb.py \ + path=usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.17-gdb.py + +file usr/gcc/4.7/lib/$(MACH64)/libstdc++.so.6.0.17-gdb.py \ + path=usr/share/gdb/auto-load/usr/lib/$(MACH64)/libstdc++.so.6.0.17-gdb.py + file path=usr/gcc/4.7/lib/libsupc++.a + file path=usr/gcc/4.7/share/gcc-$(COMPONENT_VERSION)/python/libstdcxx/__init__.py + file path=usr/gcc/4.7/share/gcc-$(COMPONENT_VERSION)/python/libstdcxx/v6/__init__.py + file path=usr/gcc/4.7/share/gcc-$(COMPONENT_VERSION)/python/libstdcxx/v6/printers.py + +file usr/gcc/4.7/share/gcc-$(COMPONENT_VERSION)/python/libstdcxx/__init__.py \ + path=usr/share/gcc-$(COMPONENT_VERSION)/python/libstdcxx/__init__.py + +file usr/gcc/4.7/share/gcc-$(COMPONENT_VERSION)/python/libstdcxx/v6/__init__.py \ + path=usr/share/gcc-$(COMPONENT_VERSION)/python/libstdcxx/v6/__init__.py + +file usr/gcc/4.7/share/gcc-$(COMPONENT_VERSION)/python/libstdcxx/v6/printers.py \ + path=usr/share/gcc-$(COMPONENT_VERSION)/python/libstdcxx/v6/printers.py + file path=usr/gcc/4.7/share/man/man1/g++.1 link path=usr/share/man/man1/c++.1 \ target=../../../gcc/4.7/share/man/man1/g++.1 mediator=gcc \ diff -r 5ba0aa89a64a -r bcf516ed6959 components/gcc47/gcc_post_install_processing.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/gcc47/gcc_post_install_processing.sh Mon Sep 09 11:34:17 2013 -0700 @@ -0,0 +1,183 @@ +#!/bin/bash + +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. +# + +PROTODIR="" +PYTHON="" +INSTALLDIR="" +LIBGCCDIR="" +MACH="`uname -p`" +SED="/usr/gnu/bin/sed" +STRIP="/usr/bin/strip -x" +# Solaris 11 uname does not support -o +UNAME="/usr/gnu/bin/uname" +GCC_FULL_VERSION="" + +UNKNOWN_ARG=yes +PRINT_HELP=no + +while [ "$#" -gt 0 ] ; do + UNKNOWN_ARG=no + case "$1" in + -protodir=*) + export PROTODIR=`echo $1 | ${SED} "s,^-protodir=\(.*\),\1,"` + ;; + -python=*) + export PYTHON=`echo $1 | ${SED} "s,^-python=\(.*\),\1,"` + ;; + -gccversion=*) + export GCC_FULL_VERSION=`echo $1 | ${SED} "s,^-gccversion=\(.*\),\1,"` + ;; + *) + UNKNOWN_ARG=yes + ;; + esac + + if [ "$UNKNOWN_ARG" = "yes" ] ; then + echo "$1: Invalid argument" + PRINT_HELP=yes + shift + continue + fi + shift +done + +if [ "$PRINT_HELP" = "yes" ] || [ "$UNKNOWN_ARG" = "yes" ] ; then + echo "" + echo "Usage: `basename $0` -protodir=[ build area prototype directory ]" + echo " -python=[ Python interpreter to use ]" + echo "" + exit 1 +fi + +if [ ${MACH} = "i386" ] ; then + export MACH64="amd64" + export VENDOR="pc" +else + export MACH64="sparcv9" + export VENDOR="sun" +fi + +gcc_maj="`echo ${GCC_FULL_VERSION} | cut -d . -f 1`" +gcc_min="`echo ${GCC_FULL_VERSION} | cut -d . -f 2`" +GCC_VERSION="${gcc_maj}.${gcc_min}" + +export RELEASE="`${UNAME} -r | cut -d . -f 2`" +export OS="`${UNAME} -o | /usr/gnu/bin/tr -s '[:upper:]' '[:lower:]'`" +export GCC_TRIPLE="${MACH}-${VENDOR}-${OS}2.${RELEASE}" + +export MACH MACH64 SED STRIP GCC_VERSION GCC_FULL_VERSION PYTHON + +export BINDIR="${PROTODIR}/usr/gcc/${GCC_VERSION}/bin" +export LIBDIR="${PROTODIR}/usr/gcc/${GCC_VERSION}/lib" +export LIB64DIR="${PROTODIR}/usr/gcc/${GCC_VERSION}/lib/${MACH64}" +export GCCSHAREDIR="${PROTODIR}/usr/gcc/${GCC_VERSION}/share" +export GCCUSRSHAREDIR="${PROTODIR}/usr/share/gcc-${GCC_FULL_VERSION}" +export GDBSHAREDIR="${PROTODIR}/usr/share/gdb" +export LIBGCCDIR="${PROTODIR}/usr/gcc/${GCC_VERSION}/lib/gcc" +export GCCTRIPLEDIR="${LIBGCCDIR}/${GCC_TRIPLE}/${GCC_FULL_VERSION}" +export LIBTRIPLEDIR="${LIBDIR}/gcc/${GCC_TRIPLE}/${GCC_FULL_VERSION}" + +echo "Stripping GCC binaries ... " + +for file in \ + c++ \ + cpp \ + g++ \ + gcc \ + gcc-ar \ + gcc-nm \ + gcc-ranlib \ + gcov \ + gfortran \ + ${GCC_TRIPLE}-c++ \ + ${GCC_TRIPLE}-g++ \ + ${GCC_TRIPLE}-gcc \ + ${GCC_TRIPLE}-gcc-${GCC_FULL_VERSION} \ + ${GCC_TRIPLE}-gcc-ar \ + ${GCC_TRIPLE}-gcc-nm \ + ${GCC_TRIPLE}-gcc-ranlib \ + ${GCC_TRIPLE}-gfortran +do + ${STRIP} ${BINDIR}/${file} +done + +for file in \ + libgfortran.so.3.0.0 \ + libgomp.so.1.0.0 \ + libitm.so.1.0.0 \ + libobjc.so.4.0.0 \ + libssp.so.0.0.0 +do + ${STRIP} ${LIBDIR}/${file} + ${STRIP} ${LIB64DIR}/${file} +done + +# libquadmath is not available on SPARC. +if [ "${MACH}" = "i386" ] ; then + ${STRIP} ${LIBDIR}/libquadmath.so.0.0.0 + ${STRIP} ${LIB64DIR}/libquadmath.so.0.0.0 +fi + +for file in \ + cc1 \ + cc1obj \ + cc1plus \ + collect2 \ + f951 \ + liblto_plugin.so.0.0.0 \ + lto-wrapper \ + lto1 +do + ${STRIP} ${GCCTRIPLEDIR}/${file} +done + +echo "... Done." +echo "" +echo "Copying GCC's gdb Python files ... " + +mkdir -p ${GDBSHAREDIR}/auto-load/usr/lib/${MACH64} +mkdir -p ${GCCUSRSHAREDIR}/python/libstdcxx/v6 + +cp -p ${LIBDIR}/libstdc++.so.6.0.17-gdb.py ${GDBSHAREDIR}/auto-load/usr/lib/ +cp -p ${LIB64DIR}/libstdc++.so.6.0.17-gdb.py ${GDBSHAREDIR}/auto-load/usr/lib/${MACH64} +cp -p ${GCCSHAREDIR}/gcc-${GCC_FULL_VERSION}/python/libstdcxx/__init__.py \ + ${GCCUSRSHAREDIR}/python/libstdcxx/ +cp -p ${GCCSHAREDIR}/gcc-${GCC_FULL_VERSION}/python/libstdcxx/v6/__init__.py \ + ${GCCUSRSHAREDIR}/python/libstdcxx/v6/ +cp -p ${GCCSHAREDIR}/gcc-${GCC_FULL_VERSION}/python/libstdcxx/v6/printers.py \ + ${GCCUSRSHAREDIR}/python/libstdcxx/v6/printers.py + +cd ${GDBSHAREDIR}/auto-load/usr/lib/ +${PYTHON} -m compileall . + +cd ${GCCUSRSHAREDIR}/python/libstdcxx/ +${PYTHON} -m compileall . + +cd ${GCCUSRSHAREDIR}/python/libstdcxx/v6/ +${PYTHON} -m compileall . + +echo "... Done." +echo"" +exit 0 diff -r 5ba0aa89a64a -r bcf516ed6959 components/gcc47/resolve.deps --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/gcc47/resolve.deps Mon Sep 09 11:34:17 2013 -0700 @@ -0,0 +1,7 @@ +library/gmp +library/mpc +library/mpfr +system/library +system/library/gcc/gcc-c-runtime +system/library/math +system/linker