From 5510d9d7d1c93c2ea71a2bd6f0666168808d5dd6 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 18 Mar 2018 04:54:42 +0000 Subject: gentoo resync : 18.03.2018 --- sys-libs/newlib/Manifest | 6 ++-- sys-libs/newlib/metadata.xml | 9 +++-- sys-libs/newlib/newlib-2.5.0.ebuild | 66 ++++++++++++++++++++++++++++++++++--- sys-libs/newlib/newlib-9999.ebuild | 66 ++++++++++++++++++++++++++++++++++--- 4 files changed, 133 insertions(+), 14 deletions(-) (limited to 'sys-libs/newlib') 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 @@ -lu_zero@gentoo.org + lu_zero@gentoo.org -toolchain@gentoo.org -Gentoo Toolchain Project + toolchain@gentoo.org + Gentoo Toolchain Project + + Build additional newlib-nano library + 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 } -- cgit v1.2.3