summaryrefslogtreecommitdiff
path: root/sys-libs/newlib
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-03-18 04:54:42 +0000
committerV3n3RiX <venerix@redcorelinux.org>2018-03-18 04:54:42 +0000
commit5510d9d7d1c93c2ea71a2bd6f0666168808d5dd6 (patch)
treec968fff3108e2b4d88e4e564a56bfd066f170573 /sys-libs/newlib
parent1dde4e5c4b92d849bf1abf0a48135b2a0644f7e1 (diff)
gentoo resync : 18.03.2018
Diffstat (limited to 'sys-libs/newlib')
-rw-r--r--sys-libs/newlib/Manifest6
-rw-r--r--sys-libs/newlib/metadata.xml9
-rw-r--r--sys-libs/newlib/newlib-2.5.0.ebuild66
-rw-r--r--sys-libs/newlib/newlib-9999.ebuild66
4 files changed, 133 insertions, 14 deletions
diff --git a/sys-libs/newlib/Manifest b/sys-libs/newlib/Manifest
index c3dbc4b724aa..6764bca24de2 100644
--- a/sys-libs/newlib/Manifest
+++ b/sys-libs/newlib/Manifest
@@ -12,6 +12,6 @@ EBUILD newlib-2.2.0.20150423.ebuild 1810 BLAKE2B 6fa6c3eef0952bbf86fe6d0e14701e4
EBUILD newlib-2.2.0.ebuild 1828 BLAKE2B 0421266bc2227bffe4a7a0a7ea16a05ad60adafc5c3096e2a417533f304049d6e9e7de5ba4c128ae22718710faaed1ab7c82a6f2a6183af93582be7ea962acbd SHA512 b243506f0b0cd7cebe1fee7270f9f7acc11557c4a211274f9578bd224e4a2b2a8f8dc26dd06ef4be60ce75b7b6dd315130b3944d2d786439b31a5801fe9cfc38
EBUILD newlib-2.3.0.20160104.ebuild 1812 BLAKE2B a26ce8367ca5d6a37175918a045e221af0458e8f2f03ebc5d9ac7534b07b9c7404138c8fe793abd0f9cca999c53aa39176cc9911d425f1c8c37dea9e37bc407b SHA512 703cf1eeb333bbf1b701d8d68a9fc9146fb61a213defaa38592f88c343f6ef145af34d8e2b7cd08bdbc1afc9e1641d43c9ad57cfb20b3e5df38fd9638e5652e9
EBUILD newlib-2.4.0.ebuild 2005 BLAKE2B 74bb441de26a3ad3ac654acc6a144888820d3b38e0f02cdbbc9ba43f5491d5e8dc7e4c2d980b37610cdc03bc2a437256e74b2c6dacd2e316a73ee422018f485b SHA512 23013ed713a7353c25f19c8dee4a2e7f9b905c8e692cc3b5ab17e0420675997edf1c05ebbfceb2ffbc4bccbe431a14b96738c819fca8b3351bde20dfac32c6f4
-EBUILD newlib-2.5.0.ebuild 1964 BLAKE2B 2f6790df10eb1a249158c26331f33f8d3119eeaab6cb039a49830c0582fa3288fa1ba2f395ee05892b594e2a2454bf4176bd9c85994d90a8db20b3a221ccb35c SHA512 71799c1ba85a245a5af899f51602314daed22b9834b4f82f28a92c59681b314fff35b22185b47811a9dc7e9e307a8d96bbbb4b5b7f151b6f9298e0ac21b2df80
-EBUILD newlib-9999.ebuild 1964 BLAKE2B 2f6790df10eb1a249158c26331f33f8d3119eeaab6cb039a49830c0582fa3288fa1ba2f395ee05892b594e2a2454bf4176bd9c85994d90a8db20b3a221ccb35c SHA512 71799c1ba85a245a5af899f51602314daed22b9834b4f82f28a92c59681b314fff35b22185b47811a9dc7e9e307a8d96bbbb4b5b7f151b6f9298e0ac21b2df80
-MISC metadata.xml 330 BLAKE2B 38ab8de6e1df9d737b0d0b4f2eaea0866b283366c38f4f54df9e7b07efe67d157357402d56e0e5915bf0242090d0249ceb30d0af18d4e21bbe9462770110363c SHA512 cf10bd2100eec996bcd2668a2e8fda67321f6969c59b3969ca1a62bc814113a48d475dbdcae3f4d6ac2186e770ec61d5c8c90690de921ea05696dc8924ec50b5
+EBUILD newlib-2.5.0.ebuild 4090 BLAKE2B 61bbefc5bff09cdf703584b98717a326cc73b8675c3f6a84f5ee8bf29883f1d29c3bacd40136ff2d5add73e1fee73901213f06526dc5620a5c751f82f755a27f SHA512 880a2741bc78097b7908a4aa38d867b18ca0eb9d3797de1ff3b7930c602d2c5d39d796d30bf5d067e74cd858e9d3efb0b0ec7dbdf022c16ec3810455a3977e93
+EBUILD newlib-9999.ebuild 4090 BLAKE2B 61bbefc5bff09cdf703584b98717a326cc73b8675c3f6a84f5ee8bf29883f1d29c3bacd40136ff2d5add73e1fee73901213f06526dc5620a5c751f82f755a27f SHA512 880a2741bc78097b7908a4aa38d867b18ca0eb9d3797de1ff3b7930c602d2c5d39d796d30bf5d067e74cd858e9d3efb0b0ec7dbdf022c16ec3810455a3977e93
+MISC metadata.xml 413 BLAKE2B 03320244c40182ff9d503fd1d9c7c3847209eeb91081e7d4a3285ed43eba6a42e0f361f6b7601966df420dde2d4e93ca458816198c2f9ebaec82790359ce868b SHA512 37e46d117243b93e189177ada64acedc0d798dfe4859f29a7ef70b22fe44e6364a3445e345def7e48264cb2bf3047ac78637759bc04d9ed3d7ea339432adf7e4
diff --git a/sys-libs/newlib/metadata.xml b/sys-libs/newlib/metadata.xml
index 5025963793d5..b0a7c56f4a9d 100644
--- a/sys-libs/newlib/metadata.xml
+++ b/sys-libs/newlib/metadata.xml
@@ -2,10 +2,13 @@
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
-<email>lu_zero@gentoo.org</email>
+ <email>lu_zero@gentoo.org</email>
</maintainer>
<maintainer type="project">
-<email>toolchain@gentoo.org</email>
-<name>Gentoo Toolchain Project</name>
+ <email>toolchain@gentoo.org</email>
+ <name>Gentoo Toolchain Project</name>
</maintainer>
+<use>
+ <flag name="nano">Build additional newlib-nano library</flag>
+</use>
</pkgmetadata>
diff --git a/sys-libs/newlib/newlib-2.5.0.ebuild b/sys-libs/newlib/newlib-2.5.0.ebuild
index 51c3318e2020..e59c79299cbf 100644
--- a/sys-libs/newlib/newlib-2.5.0.ebuild
+++ b/sys-libs/newlib/newlib-2.5.0.ebuild
@@ -28,10 +28,15 @@ HOMEPAGE="https://sourceware.org/newlib/"
LICENSE="NEWLIB LIBGLOSS GPL-2"
SLOT="0"
-IUSE="nls threads unicode headers-only"
+IUSE="nls threads unicode headers-only nano"
RESTRICT="strip"
NEWLIBBUILD="${WORKDIR}/build"
+NEWLIBNANOBUILD="${WORKDIR}/build.nano"
+NEWLIBNANOTMPINSTALL="${WORKDIR}/nano_tmp_install"
+
+CFLAGS_FULL="-ffunction-sections -fdata-sections"
+CFLAGS_NANO="-Os -ffunction-sections -fdata-sections"
pkg_setup() {
# Reject newlib-on-glibc type installs
@@ -47,6 +52,8 @@ src_configure() {
# we should fix this ...
unset LDFLAGS
CHOST=${CTARGET} strip-unsupported-flags
+ CCASFLAGS_ORIG="${CCASFLAGS}"
+ CFLAGS_ORIG="${CFLAGS}"
local myconf=(
# Disable legacy syscall stub code in newlib. These have been
@@ -61,22 +68,73 @@ src_configure() {
mkdir -p "${NEWLIBBUILD}"
cd "${NEWLIBBUILD}"
+ export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_FULL}"
+ export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_FULL}"
ECONF_SOURCE=${S} \
econf \
$(use_enable unicode newlib-mb) \
$(use_enable nls) \
"${myconf[@]}"
+
+ # Build newlib-nano beside newlib (original)
+ # Based on https://tracker.debian.org/media/packages/n/newlib/rules-2.1.0%2Bgit20140818.1a8323b-2
+ if use nano ; then
+ mkdir -p "${NEWLIBNANOBUILD}" || die
+ cd "${NEWLIBNANOBUILD}" || die
+ export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_NANO}"
+ export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_NANO}"
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable unicode newlib-mb) \
+ $(use_enable nls) \
+ --enable-newlib-reent-small \
+ --disable-newlib-fvwrite-in-streamio \
+ --disable-newlib-fseek-optimization \
+ --disable-newlib-wide-orient \
+ --enable-newlib-nano-malloc \
+ --disable-newlib-unbuf-stream-opt \
+ --enable-lite-exit \
+ --enable-newlib-global-atexit \
+ --enable-newlib-nano-formatted-io \
+ ${myconf}
+ fi
}
src_compile() {
+ export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_FULL}"
+ export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_FULL}"
emake -C "${NEWLIBBUILD}"
+
+ if use nano ; then
+ export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_NANO}"
+ export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_NANO}"
+ emake -C "${NEWLIBNANOBUILD}"
+ fi
}
src_install() {
- cd "${NEWLIBBUILD}"
+ cd "${NEWLIBBUILD}" || die
emake -j1 DESTDIR="${D}" install
# env -uRESTRICT CHOST=${CTARGET} prepallstrip
+
+ if use nano ; then
+ cd "${NEWLIBNANOBUILD}" || die
+ emake -j1 DESTDIR="${NEWLIBNANOTMPINSTALL}" install
+ # Rename nano lib* files to lib*_nano and move to the real ${D}
+ local nanolibfiles=""
+ nanolibfiles=$(find "${NEWLIBNANOTMPINSTALL}" -regex ".*/lib\(c\|g\|rdimon\)\.a" -print)
+ for f in ${nanolibfiles}; do
+ local l="${f##${NEWLIBNANOTMPINSTALL}}"
+ mv -v "${f}" "${D}/${l%%\.a}_nano.a" || die
+ done
+
+ # Move newlib-nano's version of newlib.h to newlib-nano/newlib.h
+ mkdir -p "${D}/usr/${CTARGET}/include/newlib-nano" || die
+ mv "${NEWLIBNANOTMPINSTALL}/usr/${CTARGET}/include/newlib.h" \
+ "${D}/usr/${CTARGET}/include/newlib-nano/newlib.h" || die
+ fi
+
# minor hack to keep things clean
- rm -fR "${D}"/usr/share/info
- rm -fR "${D}"/usr/info
+ rm -rf "${D}"/usr/share/info || die
+ rm -rf "${D}"/usr/info || die
}
diff --git a/sys-libs/newlib/newlib-9999.ebuild b/sys-libs/newlib/newlib-9999.ebuild
index 51c3318e2020..e59c79299cbf 100644
--- a/sys-libs/newlib/newlib-9999.ebuild
+++ b/sys-libs/newlib/newlib-9999.ebuild
@@ -28,10 +28,15 @@ HOMEPAGE="https://sourceware.org/newlib/"
LICENSE="NEWLIB LIBGLOSS GPL-2"
SLOT="0"
-IUSE="nls threads unicode headers-only"
+IUSE="nls threads unicode headers-only nano"
RESTRICT="strip"
NEWLIBBUILD="${WORKDIR}/build"
+NEWLIBNANOBUILD="${WORKDIR}/build.nano"
+NEWLIBNANOTMPINSTALL="${WORKDIR}/nano_tmp_install"
+
+CFLAGS_FULL="-ffunction-sections -fdata-sections"
+CFLAGS_NANO="-Os -ffunction-sections -fdata-sections"
pkg_setup() {
# Reject newlib-on-glibc type installs
@@ -47,6 +52,8 @@ src_configure() {
# we should fix this ...
unset LDFLAGS
CHOST=${CTARGET} strip-unsupported-flags
+ CCASFLAGS_ORIG="${CCASFLAGS}"
+ CFLAGS_ORIG="${CFLAGS}"
local myconf=(
# Disable legacy syscall stub code in newlib. These have been
@@ -61,22 +68,73 @@ src_configure() {
mkdir -p "${NEWLIBBUILD}"
cd "${NEWLIBBUILD}"
+ export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_FULL}"
+ export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_FULL}"
ECONF_SOURCE=${S} \
econf \
$(use_enable unicode newlib-mb) \
$(use_enable nls) \
"${myconf[@]}"
+
+ # Build newlib-nano beside newlib (original)
+ # Based on https://tracker.debian.org/media/packages/n/newlib/rules-2.1.0%2Bgit20140818.1a8323b-2
+ if use nano ; then
+ mkdir -p "${NEWLIBNANOBUILD}" || die
+ cd "${NEWLIBNANOBUILD}" || die
+ export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_NANO}"
+ export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_NANO}"
+ ECONF_SOURCE=${S} \
+ econf \
+ $(use_enable unicode newlib-mb) \
+ $(use_enable nls) \
+ --enable-newlib-reent-small \
+ --disable-newlib-fvwrite-in-streamio \
+ --disable-newlib-fseek-optimization \
+ --disable-newlib-wide-orient \
+ --enable-newlib-nano-malloc \
+ --disable-newlib-unbuf-stream-opt \
+ --enable-lite-exit \
+ --enable-newlib-global-atexit \
+ --enable-newlib-nano-formatted-io \
+ ${myconf}
+ fi
}
src_compile() {
+ export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_FULL}"
+ export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_FULL}"
emake -C "${NEWLIBBUILD}"
+
+ if use nano ; then
+ export "CFLAGS_FOR_TARGET=${CFLAGS_ORIG} ${CFLAGS_NANO}"
+ export "CCASFLAGS=${CCASFLAGS_ORIG} ${CFLAGS_NANO}"
+ emake -C "${NEWLIBNANOBUILD}"
+ fi
}
src_install() {
- cd "${NEWLIBBUILD}"
+ cd "${NEWLIBBUILD}" || die
emake -j1 DESTDIR="${D}" install
# env -uRESTRICT CHOST=${CTARGET} prepallstrip
+
+ if use nano ; then
+ cd "${NEWLIBNANOBUILD}" || die
+ emake -j1 DESTDIR="${NEWLIBNANOTMPINSTALL}" install
+ # Rename nano lib* files to lib*_nano and move to the real ${D}
+ local nanolibfiles=""
+ nanolibfiles=$(find "${NEWLIBNANOTMPINSTALL}" -regex ".*/lib\(c\|g\|rdimon\)\.a" -print)
+ for f in ${nanolibfiles}; do
+ local l="${f##${NEWLIBNANOTMPINSTALL}}"
+ mv -v "${f}" "${D}/${l%%\.a}_nano.a" || die
+ done
+
+ # Move newlib-nano's version of newlib.h to newlib-nano/newlib.h
+ mkdir -p "${D}/usr/${CTARGET}/include/newlib-nano" || die
+ mv "${NEWLIBNANOTMPINSTALL}/usr/${CTARGET}/include/newlib.h" \
+ "${D}/usr/${CTARGET}/include/newlib-nano/newlib.h" || die
+ fi
+
# minor hack to keep things clean
- rm -fR "${D}"/usr/share/info
- rm -fR "${D}"/usr/info
+ rm -rf "${D}"/usr/share/info || die
+ rm -rf "${D}"/usr/info || die
}