Add more code from toolchain eclass, should fix bugs #317525 (et_EE locale support...
authorBernard Cafarelli <voyageur@gentoo.org>
Thu, 20 May 2010 12:57:26 +0000 (12:57 +0000)
committerBernard Cafarelli <voyageur@gentoo.org>
Thu, 20 May 2010 12:57:26 +0000 (12:57 +0000)
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64

sys-devel/llvm-gcc/ChangeLog
sys-devel/llvm-gcc/Manifest
sys-devel/llvm-gcc/files/gcc-configure-LANG.patch [new file with mode: 0644]
sys-devel/llvm-gcc/llvm-gcc-2.7-r1.ebuild [new file with mode: 0644]

index 3623904c9213cc6fd6f108ff5344e94a013c3b08..aa79f5aa5ab99eedda1a4ac5e75c5cc0b677d148 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for sys-devel/llvm-gcc
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm-gcc/ChangeLog,v 1.5 2010/04/27 12:44:37 voyageur Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm-gcc/ChangeLog,v 1.6 2010/05/20 12:57:26 voyageur Exp $
+
+*llvm-gcc-2.7-r1 (20 May 2010)
+
+  20 May 2010; Bernard Cafarelli <voyageur@gentoo.org>
+  +llvm-gcc-2.7-r1.ebuild, +files/gcc-configure-LANG.patch:
+  Add more code from toolchain eclass, should fix bugs #317525 (et_EE locale
+  support), #320137 (strip unsupported CFLAGS)
 
 *llvm-gcc-2.7 (27 Apr 2010)
 
index 134070d9995de13ad4429377a264cb00cd08aa14..316f63e85fc497b552800f630f83c5cc34a42e9e 100644 (file)
@@ -1,6 +1,8 @@
+AUX gcc-configure-LANG.patch 2052 RMD160 91f5b90600dfccb10c4e2308a5a1485275fdfeee SHA1 56ecd1d6f2e4bd0b35ac108be72a4f6f60212c38 SHA256 63de6d2dcfe14f21d147abeb1390405b9220c03f8e968f482d4b4c1cf279c88b
 DIST llvm-gcc-4.2-2.6.source.tar.gz 48364917 RMD160 08d7ffadb88e3abdcc971372f737e4ddf8f991c6 SHA1 60670d550be09a57d315efa259d2b19955f6fa79 SHA256 5be01f0ed0787c33239ab27b93884e48b544a1be97b944c7a5d29e85fbab495d
 DIST llvm-gcc-4.2-2.7.source.tgz 55699337 RMD160 523edd94ece00caaaa3ff2399f3c0b044b50f432 SHA1 aaf466efa41e95014d51a2f8a60ad3b7771c1829 SHA256 1ccbcef5fe6613392e24f21fd23a9ed2692827c13f8d85c26b3bdcd1b3b5047a
 EBUILD llvm-gcc-2.6.ebuild 2019 RMD160 d613455439fe1bba7cc12b2d36473bf83b28978f SHA1 fdac8e473cbce552efa6c6fd0c81116f2944da76 SHA256 8b650918956ee6c4f9ef869342fcf47ca5f314f334438a3060bb7437d7ad5ab5
+EBUILD llvm-gcc-2.7-r1.ebuild 3549 RMD160 8f271cda1200640526c92104f6f2bb89824e9241 SHA1 5a8e3688d9f88763d2130d66fbecb6aaa83b3eba SHA256 b3631854953101ff5b0934aa42c507fd14516c70406715ee7074b356cb51af66
 EBUILD llvm-gcc-2.7.ebuild 2018 RMD160 c36660533b53fae7f64eb5d16c742c1a8626ca75 SHA1 be69e5c41844481919467aacbf0d8474c97400c3 SHA256 8a4b589e0660a15c235cf3fbdd919ff53cd97237f6035f18cad357bdd3feac49
-MISC ChangeLog 1034 RMD160 66100bbb3e1fb67572d7ae1d5e1245453e2f37c1 SHA1 34e078ae787d1880eb04db2138ea626f675ccc20 SHA256 3ccbd1142eebd92fab013a8d3fa21e838d6609980c1cd42aed457237e18e9c85
+MISC ChangeLog 1306 RMD160 2795d6a08d52fc8aec6c98f9d1145f63aba0b3d2 SHA1 0550ac450e1dc7c494c4a85f05bd827da5651d1c SHA256 e20397573491aac39354c05580c5727249072e5706c0ef506efc70ac1ae983c3
 MISC metadata.xml 1210 RMD160 452adfc54714ef433d1029368d731d2ba232443a SHA1 00c2795c89050749d088beb5202877fa6bf7a01d SHA256 9d192d1f60fc67d6bee5d6669fe84adc94a097d42f70a6f20e4f708d094b5d7c
diff --git a/sys-devel/llvm-gcc/files/gcc-configure-LANG.patch b/sys-devel/llvm-gcc/files/gcc-configure-LANG.patch
new file mode 100644 (file)
index 0000000..d1b1b03
--- /dev/null
@@ -0,0 +1,64 @@
+The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in 
+option parsing, it may break.
+
+http://bugs.gentoo.org/103483
+
+--- configure
++++ configure
+@@ -54,6 +54,19 @@
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+ 
++# NLS nuisances.
++for as_var in \
++  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
++  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
++  LC_TELEPHONE LC_TIME
++do
++  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
++    eval $as_var=C; export $as_var
++  else
++    unset $as_var
++  fi
++done
++
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
+@@ -452,16 +463,6 @@
+   esac
+ done
+ 
+-# NLS nuisances.
+-# Only set these to C if already set.  These must not be set unconditionally
+-# because not all systems understand e.g. LANG=C (notably SCO).
+-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+-# Non-C LC_CTYPE values break the ctype check.
+-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+-
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -rf conftest* confdefs.h
+ # AIX cpp loses on an empty file, so make sure it contains at least a newline.
+@@ -1850,6 +1850,19 @@
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in ./config.log if it exists.
+ 
++# NLS nuisances.
++for as_var in \
++  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
++  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
++  LC_TELEPHONE LC_TIME
++do
++  if (set +x; test -z "`(eval \$as_var=C; export \$as_var) 2>&1`"); then
++    eval \$as_var=C; export \$as_var
++  else
++    unset \$as_var
++  fi
++done
++
+ ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+ for ac_option
+ do
diff --git a/sys-devel/llvm-gcc/llvm-gcc-2.7-r1.ebuild b/sys-devel/llvm-gcc/llvm-gcc-2.7-r1.ebuild
new file mode 100644 (file)
index 0000000..e096cc1
--- /dev/null
@@ -0,0 +1,131 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm-gcc/llvm-gcc-2.7-r1.ebuild,v 1.1 2010/05/20 12:57:26 voyageur Exp $
+
+EAPI=2
+inherit libtool flag-o-matic gnuconfig multilib
+
+LLVM_GCC_VERSION=4.2
+MY_PV=${LLVM_GCC_VERSION}-${PV/_pre*}
+
+DESCRIPTION="LLVM C front-end"
+HOMEPAGE="http://llvm.org"
+SRC_URI="http://llvm.org/releases/${PV}/${PN}-${MY_PV}.source.tgz"
+
+LICENSE="GPL-2"
+SLOT=0
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="bootstrap fortran multilib nls objc objc++ test"
+
+RDEPEND=">=sys-devel/llvm-$PV"
+DEPEND="${RDEPEND}
+       >=sys-apps/texinfo-4.2-r4
+       >=sys-devel/binutils-2.18
+       >=sys-devel/bison-1.875
+       test? ( dev-util/dejagnu
+               sys-devel/autogen )"
+
+S=${WORKDIR}/llvm-gcc-${MY_PV}.source
+
+src_prepare() {
+       #we keep the directory structure suggested by README.LLVM,
+       mkdir -p "${S}"/obj
+
+       # From toolchain eclass
+       elibtoolize --portage --shallow --no-uclibc
+       gnuconfig_update
+
+       # update configure files
+       local f
+       for f in $(grep -l 'autoconf version 2.13' $(find "${S}" -name configure)) ; do
+               #ebegin "  Updating ${f/${S}\/} [LANG]"
+               ebegin "  Updating \"${f/${S}\/}\" [LANG]"
+               patch "${f}" "${FILESDIR}"/gcc-configure-LANG.patch >& "${T}"/configure-patch.log \
+                       || eerror "Please file a bug about this"
+               eend $?
+       done
+       sed -i 's|A-Za-z0-9|[:alnum:]|g' gcc/*.awk #215828
+
+       if [[ -x contrib/gcc_update ]] ; then
+               einfo "Touching generated files"
+               ./contrib/gcc_update --touch | \
+                       while read f ; do
+                               einfo "  ${f%%...}"
+                       done
+       fi
+}
+
+src_configure() {
+       gcc_do_filter_flags
+       # Target options are handled by econf
+
+       cd "${S}"/obj
+       EXTRALANGS=""
+       use fortran && EXTRALANGS="${EXTRALANGS},fortran"
+       use objc && EXTRALANGS="${EXTRALANGS},objc"
+       use objc++ && EXTRALANGS="${EXTRALANGS},obj-c++"
+
+       ECONF_SOURCE="${S}" econf --prefix=/usr/$(get_libdir)/${PN}-${MY_PV} \
+               $(use_enable multilib) \
+               --program-prefix=${PN}-${MY_PV}- \
+               --enable-llvm=/usr --enable-languages=c,c++${EXTRALANGS} \
+               || die "configure failed"
+}
+
+src_compile() {
+       gcc_do_filter_flags
+       cd "${S}"/obj
+       BUILDOPTIONS="LLVM_VERSION_INFO=${MY_PV}"
+       use bootstrap && BUILDOPTIONS="${BUILDOPTIONS} bootstrap"
+       emake ${BUILDOPTIONS} || die "emake failed"
+}
+
+src_test() {
+       cd "${S}"/obj
+       emake -j1 -k check || ewarn "check failed and that sucks :("
+}
+
+src_install() {
+       cd "${S}"/obj
+
+       # Do allow symlinks in private gcc include dir as this can break the build
+       find gcc/include*/ -type l -print0 | xargs -0 rm -f
+       # Remove generated headers, as they can cause things to break
+       # (ncurses, openssl, etc).
+       for x in $(find gcc/include*/ -name '*.h') ; do
+               grep -q 'It has been auto-edited by fixincludes from' "${x}" \
+                       && rm -f "${x}"
+       done
+
+       emake DESTDIR="${D}" install || die "installation failed"
+       rm -rf "${D}"/usr/share/man/man7
+       if ! use nls; then
+               einfo "nls USE flag disabled, not installing locale files"
+               rm -rf "${D}"/usr/share/locale
+       fi
+
+       # Add some symlinks
+       dodir /usr/bin
+       cd "${D}/usr/bin"
+       for X in c++ g++ cpp gcc gcov gccbug ; do
+               ln -s /usr/$(get_libdir)/${PN}-${MY_PV}/bin/${PN}-${MY_PV}-${X}  llvm-${X}
+       done
+       use fortran && \
+               ln -s /usr/$(get_libdir)/${PN}-${MY_PV}/bin/${PN}-${MY_PV}-gfortran llvm-gfortran
+}
+
+gcc_do_filter_flags() {
+       strip-flags
+
+       # In general gcc does not like optimization, and add -O2 where
+       # it is safe.  This is especially true for gcc 3.3 + 3.4
+       replace-flags -O? -O2
+
+       # ... sure, why not?
+       strip-unsupported-flags
+
+       # dont want to funk ourselves
+       filter-flags '-mabi*' -m31 -m32 -m64
+
+       filter-flags '-mcpu=*'
+}