From bb76d85794be25af22a30ec6d32ed0acc966635f Mon Sep 17 00:00:00 2001 From: Valko Laszlo Date: Sun, 23 Apr 2017 22:59:03 +0200 Subject: [PATCH] Added dev-libs/dietlibc. --- dev-libs/dietlibc/Manifest | 4 ++ .../dietlibc/dietlibc-0.34_pre20140729.ebuild | 68 +++++++++++++++++++ .../files/dietlibc_makefile_uname.patch | 11 +++ dev-libs/dietlibc/metadata.xml | 10 +++ 4 files changed, 93 insertions(+) create mode 100644 dev-libs/dietlibc/Manifest create mode 100644 dev-libs/dietlibc/dietlibc-0.34_pre20140729.ebuild create mode 100644 dev-libs/dietlibc/files/dietlibc_makefile_uname.patch create mode 100644 dev-libs/dietlibc/metadata.xml diff --git a/dev-libs/dietlibc/Manifest b/dev-libs/dietlibc/Manifest new file mode 100644 index 0000000..33fde58 --- /dev/null +++ b/dev-libs/dietlibc/Manifest @@ -0,0 +1,4 @@ +AUX dietlibc_makefile_uname.patch 528 SHA256 f029f7256e0f1d0c8900a7da6b47dcdf281ca13c7337f1cc8e856471d2de7b46 SHA512 25a5bb2aad451542936f1f8189a4378e1debeb6b38489c5c246246a12c5317f620f86ed5396264a20d178d50703a9454968fa529980c3324d7741e75da9baf31 WHIRLPOOL bb1d5cfdc258a395d0b9034b61b46ba9c33b59325a8351a376a1dc941649926c79aa6cd9af3cbdf3ea7613d12c816d0446b7f19e053ff46896032d6e2fead657 +DIST dietlibc-0.34_pre20140729.tar.bz2 670195 SHA256 d6693610c756dbfc070c0ffed5a75e1ddab8d119394962ca1ed4d42f34b57318 SHA512 a0bb5465f7fc985fd074dfcc4039003ec26b6b5fde5f2ccc53322067bd1a6459e742c9debeffda0b5146e287baa8e49f74f4a8ffafdf1daacacec4768d13db36 WHIRLPOOL 566e505a65e3f81c5507fc494324b4f48e5af27683d69c443cf7d2380599a24bbc984d7d430acb25bc0d28baa924565ee513c8217dd2eb6a960c70d6d2a7e1b7 +EBUILD dietlibc-0.34_pre20140729.ebuild 1641 SHA256 245cd4b7eb0d465fe09c0f0fe35873b271d4be7bb7412d453f57369a0e305467 SHA512 8384efcf28b715ab6da6a2765b723a39a955e4d258bd477c7e6b3eef638ff4d65235f9c2142364618cd890980cf7e83ca7c8c9614886f6f9a6e9d9bcfd9abdc4 WHIRLPOOL 67e154c09c59af7ded47d8c30d610db8823498efcf20fa899e6c766eb1082da5559b4d459dc7c21f0623463b013c3f5f78f51f5519ec93ee54888f32464c5805 +MISC metadata.xml 416 SHA256 d95b607d6ec29573cd92ab2edf016985e1bb9894b5e619870e63fa2c77056b16 SHA512 7d39c127ffecbfc46fc6987189f2d28e92b35effbd71d4aadc465ac5fe1e47d088574700b26bb0bc27f1fd17b3487de85317f34a87393597f99b38a9be3c0c0d WHIRLPOOL da62dae0ece9c8392b2756c64e474b568e65aa8924d0178cd7ea166c31bdd84b7595296029a0bb526762a5d23e9302730f88368f2bec3019f82615c4720c3ca7 diff --git a/dev-libs/dietlibc/dietlibc-0.34_pre20140729.ebuild b/dev-libs/dietlibc/dietlibc-0.34_pre20140729.ebuild new file mode 100644 index 0000000..df8ca33 --- /dev/null +++ b/dev-libs/dietlibc/dietlibc-0.34_pre20140729.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +inherit eutils flag-o-matic toolchain-funcs + +DESCRIPTION="A libc optimized for small size" +HOMEPAGE="http://www.fefe.de/dietlibc/" +SRC_URI="https://dev.gentoo.org/~patrick/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 ~arm ~ia64 ~mips sparc x86 ~amd64-linux ~x86-linux" +IUSE="" + +DEPEND="" +RDEPEND="" + +DIETHOME=/usr/diet + +S=${WORKDIR}/dietlibc + +PATCHES=( + "${FILESDIR}"/dietlibc_makefile_uname.patch +) + +src_prepare() { + # Replace sparc64 related C[XX]FLAGS (see bug #45716) + use sparc && replace-sparc64-flags + + # gcc-hppa suffers support for SSP, compilation will fail + use hppa && strip-unsupported-flags + + # Makefile does not append CFLAGS + append-flags -nostdinc -W -Wall -Wextra -Wchar-subscripts \ + -Wmissing-prototypes -Wmissing-declarations -Wno-switch \ + -Wno-unused -Wredundant-decls -fno-strict-aliasing + + # Disable ssp for we default to it on >=gcc-4.8.3 + append-flags $(test-flags -fno-stack-protector) + + # only use -nopie on archs that support it + gcc-specs-pie && append-flags -nopie + + sed -i -e 's:strip::' Makefile || die + append-flags -Wa,--noexecstack +} + +src_compile() { + emake -j1 prefix="${EPREFIX}"${DIETHOME} \ + CC="$(tc-getCC)" \ + CFLAGS="${CFLAGS}" \ + STRIP=":" +} + +src_install() { + emake -j1 prefix="${EPREFIX}"${DIETHOME} \ + DESTDIR="${D}" \ + install-bin \ + install-headers \ + install-profiling + + dobin "${ED}"${DIETHOME}/bin/* + doman "${ED}"${DIETHOME}/man/*/* + rm -r "${ED}"${DIETHOME}/{man,bin} || die + + dodoc AUTHOR BUGS CAVEAT CHANGES README THANKS TODO PORTING +} diff --git a/dev-libs/dietlibc/files/dietlibc_makefile_uname.patch b/dev-libs/dietlibc/files/dietlibc_makefile_uname.patch new file mode 100644 index 0000000..986718e --- /dev/null +++ b/dev-libs/dietlibc/files/dietlibc_makefile_uname.patch @@ -0,0 +1,11 @@ +--- dietlibc/Makefile.orig 2017-04-23 22:16:30.582445506 +0200 ++++ dietlibc/Makefile 2017-04-23 22:18:12.275194690 +0200 +@@ -10,7 +10,7 @@ + + EXTRACFLAGS= + +-MYARCH:=$(shell uname -m | sed -e 's/i[4-9]86/i386/' -e 's/armv[3-7]t\?e\?[lb]/arm/') ++MYARCH:=$(shell gcc -v 2>&1 |grep 'Target:' | sed -e 's/.*Target: //' -e 's/-.*//' -e 's/i[4-9]86/i386/' -e 's/armv[3-7]t\?e\?[lb]/arm/' ) + + # This extra-ugly cruft is here so make will not run uname and sed each + # time it looks at $(OBJDIR). This alone sped up running make when diff --git a/dev-libs/dietlibc/metadata.xml b/dev-libs/dietlibc/metadata.xml new file mode 100644 index 0000000..e826009 --- /dev/null +++ b/dev-libs/dietlibc/metadata.xml @@ -0,0 +1,10 @@ + + + + + + The diet libc is a libc that is optimized for small size. It can be + used to create small statically linked binaries for Linux on alpha, arm, + hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64. + +