Gentoo Archives: gentoo-dev

From: Michael Haubenwallner <haubi@g.o>
To: gentoo-dev@l.g.o
Cc: Michael Haubenwallner <haubi@g.o>
Subject: [gentoo-dev] [PATCH 1/5] toolchain.eclass: EAPI 7 aware for D,ED,ROOT,EROOT
Date: Fri, 22 Jun 2018 13:11:13
Message-Id: 20180622131028.13132-2-haubi@gentoo.org
In Reply to: [gentoo-dev] [PATCH 0/5]-r1 toolchain.eclass: Prefix patches, Cygwin related by Michael Haubenwallner
1 These variables may or may not have the trailing slash. Additionally,
2 avoid leading double slash (a network location for Cygwin) with ROOT and
3 EROOT because they may be empty, while D and ED never should be empty
4 and there is no reason so far to avoid double slashes in between.
5 On the other hand, eclass variables like DATAPATH and LIBPATH do contain
6 the leading slash, so an extra slash reduces readability for no reason.
7 ---
8 eclass/toolchain.eclass | 36 ++++++++++++++++++------------------
9 1 file changed, 18 insertions(+), 18 deletions(-)
10
11 diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
12 index 68e4ce15b37..3916555cb21 100644
13 --- a/eclass/toolchain.eclass
14 +++ b/eclass/toolchain.eclass
15 @@ -1793,13 +1793,13 @@ toolchain_src_install() {
16
17 cd "${S}"
18 if is_crosscompile; then
19 - rm -rf "${ED}"usr/share/{man,info}
20 + rm -rf "${ED}"/usr/share/{man,info}
21 rm -rf "${D}"${DATAPATH}/{man,info}
22 else
23 if tc_version_is_at_least 3.0 ; then
24 local cxx_mandir=$(find "${WORKDIR}/build/${CTARGET}/libstdc++-v3" -name man)
25 if [[ -d ${cxx_mandir} ]] ; then
26 - cp -r "${cxx_mandir}"/man? "${D}/${DATAPATH}"/man/
27 + cp -r "${cxx_mandir}"/man? "${D}${DATAPATH}"/man/
28 fi
29 fi
30 has noinfo ${FEATURES} \
31 @@ -1850,7 +1850,7 @@ toolchain_src_install() {
32 # libvtv.la: gcc itself handles linkage correctly.
33 # lib*san.la: Sanitizer linkage is handled internally by gcc, and they
34 # do not support static linking. #487550 #546700
35 - find "${D}/${LIBPATH}" \
36 + find "${D}${LIBPATH}" \
37 '(' \
38 -name libstdc++.la -o \
39 -name libstdc++fs.la -o \
40 @@ -1916,7 +1916,7 @@ gcc_movelibs() {
41 # code to run on the target.
42 if tc_version_is_at_least 5 && is_crosscompile ; then
43 dodir "${HOSTLIBPATH#${EPREFIX}}"
44 - mv "${ED}"usr/$(get_libdir)/libcc1* "${D}${HOSTLIBPATH}" || die
45 + mv "${ED}"/usr/$(get_libdir)/libcc1* "${D}${HOSTLIBPATH}" || die
46 fi
47
48 # For all the libs that are built for CTARGET, move them into the
49 @@ -2113,7 +2113,7 @@ gcc_slot_java() {
50
51 toolchain_pkg_postinst() {
52 do_gcc_config
53 - if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
54 + if [[ ! ${ROOT%/} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
55 eselect compiler-shadow update all
56 fi
57
58 @@ -2128,17 +2128,17 @@ toolchain_pkg_postinst() {
59 echo
60
61 # Clean up old paths
62 - rm -f "${EROOT}"*/rcscripts/awk/fixlafiles.awk "${EROOT}"sbin/fix_libtool_files.sh
63 - rmdir "${EROOT}"*/rcscripts{/awk,} 2>/dev/null
64 + rm -f "${EROOT%/}"/*/rcscripts/awk/fixlafiles.awk "${EROOT%/}"/sbin/fix_libtool_files.sh
65 + rmdir "${EROOT%/}"/*/rcscripts{/awk,} 2>/dev/null
66
67 - mkdir -p "${EROOT}"usr/{share/gcc-data,sbin,bin}
68 + mkdir -p "${EROOT%/}"/usr/{share/gcc-data,sbin,bin}
69 # DATAPATH has EPREFIX already, use ROOT with it
70 - cp "${ROOT}${DATAPATH}"/fixlafiles.awk "${EROOT}"usr/share/gcc-data/ || die
71 - cp "${ROOT}${DATAPATH}"/fix_libtool_files.sh "${EROOT}"usr/sbin/ || die
72 + cp "${ROOT%/}${DATAPATH}"/fixlafiles.awk "${EROOT%/}"/usr/share/gcc-data/ || die
73 + cp "${ROOT%/}${DATAPATH}"/fix_libtool_files.sh "${EROOT%/}"/usr/sbin/ || die
74
75 # Since these aren't critical files and portage sucks with
76 # handling of binpkgs, don't require these to be found
77 - cp "${ROOT}${DATAPATH}"/c{89,99} "${EROOT}"usr/bin/ 2>/dev/null
78 + cp "${ROOT%/}${DATAPATH}"/c{89,99} "${EROOT%/}"/usr/bin/ 2>/dev/null
79 fi
80
81 if use regression-test ; then
82 @@ -2154,7 +2154,7 @@ toolchain_pkg_postinst() {
83 }
84
85 toolchain_pkg_postrm() {
86 - if [[ ${ROOT} == / && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
87 + if [[ ! ${ROOT%/} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
88 eselect compiler-shadow clean all
89 fi
90
91 @@ -2165,16 +2165,16 @@ toolchain_pkg_postrm() {
92
93 # clean up the cruft left behind by cross-compilers
94 if is_crosscompile ; then
95 - if [[ -z $(ls "${EROOT}"etc/env.d/gcc/${CTARGET}* 2>/dev/null) ]] ; then
96 - rm -f "${EROOT}"etc/env.d/gcc/config-${CTARGET}
97 - rm -f "${EROOT}"etc/env.d/??gcc-${CTARGET}
98 - rm -f "${EROOT}"usr/bin/${CTARGET}-{gcc,{g,c}++}{,32,64}
99 + if [[ -z $(ls "${EROOT%/}"/etc/env.d/gcc/${CTARGET}* 2>/dev/null) ]] ; then
100 + rm -f "${EROOT%/}"/etc/env.d/gcc/config-${CTARGET}
101 + rm -f "${EROOT%/}"/etc/env.d/??gcc-${CTARGET}
102 + rm -f "${EROOT%/}"/usr/bin/${CTARGET}-{gcc,{g,c}++}{,32,64}
103 fi
104 return 0
105 fi
106
107 # ROOT isnt handled by the script
108 - [[ ${ROOT} != "/" ]] && return 0
109 + [[ ${ROOT%/} ]] && return 0
110
111 if [[ ! -e ${LIBPATH}/libstdc++.so ]] ; then
112 # make sure the profile is sane during same-slot upgrade #289403
113 @@ -2207,7 +2207,7 @@ do_gcc_config() {
114 [[ -n ${current_specs} ]] && use_specs=-${current_specs}
115
116 if [[ -n ${use_specs} ]] && \
117 - [[ ! -e ${ROOT}/etc/env.d/gcc/${CTARGET}-${GCC_CONFIG_VER}${use_specs} ]]
118 + [[ ! -e ${ROOT%/}/etc/env.d/gcc/${CTARGET}-${GCC_CONFIG_VER}${use_specs} ]]
119 then
120 ewarn "The currently selected specs-specific gcc config,"
121 ewarn "${current_specs}, doesn't exist anymore. This is usually"
122 --
123 2.16.1