Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 664414 Details for
Bug 747346
sys-libs/musl: enable SSP on x86 and allow hardened toolchain
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
sys-libs/musl-1.2.1.ebuild
musl-1.2.1.ebuild (text/plain), 4.51 KB, created by
Ed Wildgoose
on 2020-10-08 17:05:47 UTC
(
hide
)
Description:
sys-libs/musl-1.2.1.ebuild
Filename:
MIME Type:
Creator:
Ed Wildgoose
Created:
2020-10-08 17:05:47 UTC
Size:
4.51 KB
patch
obsolete
># Copyright 1999-2020 Gentoo Authors ># Distributed under the terms of the GNU General Public License v2 > >EAPI=7 > >inherit eutils flag-o-matic multilib toolchain-funcs >if [[ ${PV} == "9999" ]] ; then > EGIT_REPO_URI="git://git.musl-libc.org/musl" > inherit git-r3 > SRC_URI=" > https://dev.gentoo.org/~blueness/musl-misc/getconf.c > https://dev.gentoo.org/~blueness/musl-misc/getent.c > https://dev.gentoo.org/~blueness/musl-misc/iconv.c" > KEYWORDS="" >else > SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz > https://dev.gentoo.org/~blueness/musl-misc/getconf.c > https://dev.gentoo.org/~blueness/musl-misc/getent.c > https://dev.gentoo.org/~blueness/musl-misc/iconv.c" > KEYWORDS="-* amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 x86" >fi > >PATCHES="${FILESDIR}/swap-lib-and-symlink.patch" > >export CBUILD=${CBUILD:-${CHOST}} >export CTARGET=${CTARGET:-${CHOST}} >if [[ ${CTARGET} == ${CHOST} ]] ; then > if [[ ${CATEGORY} == cross-* ]] ; then > export CTARGET=${CATEGORY#cross-} > fi >fi > >DESCRIPTION="Light, fast and simple C library focused on standards-conformance and safety" >HOMEPAGE="http://www.musl-libc.org/" >LICENSE="MIT LGPL-2 GPL-2" >SLOT="0" >IUSE="headers-only" > >QA_SONAME="/usr/lib/libc.so" >QA_DT_NEEDED="/usr/lib/libc.so" > >is_crosscompile() { > [[ ${CHOST} != ${CTARGET} ]] >} > >just_headers() { > use headers-only && is_crosscompile >} > >pkg_setup() { > if [ ${CTARGET} == ${CHOST} ] ; then > case ${CHOST} in > *-musl*) ;; > *) die "Use sys-devel/crossdev to build a musl toolchain" ;; > esac > fi > > # fix for #667126, copied from glibc ebuild > # make sure host make.conf doesn't pollute us > if is_crosscompile || tc-is-cross-compiler ; then > CHOST=${CTARGET} strip-unsupported-flags > fi >} > >src_prepare() { > cp "${FILESDIR}/__stack_chk_fail_local.c" "$T/" > default >} > >src_configure() { > tc-getCC ${CTARGET} > just_headers && export CC=true > > local sysroot > is_crosscompile && sysroot=/usr/${CTARGET} > ./configure \ > --target=${CTARGET} \ > --prefix=${sysroot}/usr \ > --syslibdir=${sysroot}/lib \ > --disable-gcc-wrapper || die >} > >src_compile() { > emake obj/include/bits/alltypes.h > just_headers && return 0 > > emake > if [[ ${CATEGORY} != cross-* ]] ; then > emake -C "${T}" getconf getent iconv \ > CC="$(tc-getCC)" \ > CFLAGS="${CFLAGS}" \ > CPPFLAGS="${CPPFLAGS}" \ > LDFLAGS="${LDFLAGS}" \ > VPATH="${DISTDIR}" > fi > > # Create a static library for use with GCC fstack-protector calls > # On certain architectures gcc emits a locally defined symbol that needs linking into target app > $(tc-getCC) ${CFLAGS} -c "${T}"/__stack_chk_fail_local.c -o "${T}"/__stack_chk_fail_local.o > $(tc-getAR) r "${T}"/libssp_nonshared.a "${T}"/__stack_chk_fail_local.o >} > >src_install() { > # Avoid breakage while swapping symlink and lib > if [ -h ${sysroot}/lib/ld-musl-* ]; then > local ldso=$(basename ${sysroot}/lib/ld-musl-*) > eerror "***********************************************************************************" > eerror "Warning: Reach carefully! Breakage possible!" > eerror "In order to do the switcheroo and swap libc location, some manual changes are needed:" > eerror "Manual upgrade needed. run:" > einfo "cp --remove-destination ${sysroot}/usr/lib/libc.so ${sysroot}/lib/${ldso}" > eerror "***********************************************************************************" > die > fi > > local target="install" > just_headers && target="install-headers" > emake DESTDIR="${D}" ${target} > just_headers && return 0 > > # musl provides ldd via a sym link to its ld.so > local sysroot > is_crosscompile && sysroot=/usr/${CTARGET} > local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*) > dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd > > if [[ ${CATEGORY} != cross-* ]] ; then > # Fish out of config: > # ARCH = ... > # SUBARCH = ... > # and print $(ARCH)$(SUBARCH). > local arch=$(awk '{ k[$1] = $3 } END { printf("%s%s", k["ARCH"], k["SUBARCH"]); }' config.mak) > [[ -e "${D}"/lib/ld-musl-${arch}.so.1 ]] || die > cp "${FILESDIR}"/ldconfig.in "${T}" || die > sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die > into / > dosbin "${T}"/ldconfig > into /usr > dobin "${T}"/getconf > dobin "${T}"/getent > dobin "${T}"/iconv > echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die > doenvd "${T}"/00musl > fi > > # Conditionally upgrade /usr/lib/libc.so into a linker script. Useful on x86 > write_libc_so >} > >write_libc_so() { > if [ -e "${sysroot}"/lib/ld-musl-i386.so.1 ]; then > rm ${D}/usr/lib/libc.so > insinto /usr/lib > insopts -m644 > newins ${FILESDIR}/libc-so-i386.so libc.so > fi >} > >pkg_postinst() { > is_crosscompile && return 0 > > [ "${ROOT}" != "/" ] && return 0 > > ldconfig || die >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 747346
:
664402
|
664405
|
664408
|
664411
| 664414 |
664459
|
664462
|
687000