Lines 7-22
Link Here
|
7 |
# config-TARGET: CURRENT=version for TARGET |
7 |
# config-TARGET: CURRENT=version for TARGET |
8 |
# TARGET-VER: has a TARGET and VER variable |
8 |
# TARGET-VER: has a TARGET and VER variable |
9 |
|
9 |
|
|
|
10 |
EPREFIX="@GENTOO_PORTAGE_EPREFIX@" |
11 |
if [[ ${EPREFIX} == "@"GENTOO_PORTAGE_EPREFIX"@" ]] ; then |
12 |
EPREFIX="" |
13 |
fi |
14 |
|
10 |
: ${ROOT:=/} |
15 |
: ${ROOT:=/} |
11 |
[[ ${ROOT} != */ ]] && ROOT="${ROOT}/" |
16 |
[[ ${ROOT} != */ ]] && ROOT="${ROOT}/" |
12 |
[[ ${ROOT} != /* ]] && ROOT="${PWD%/}/${ROOT}" |
17 |
[[ ${ROOT} != /* ]] && ROOT="${PWD%/}/${ROOT}" |
13 |
|
18 |
|
14 |
cd / |
19 |
EROOT="${ROOT%/}${EPREFIX}/" |
|
|
20 |
|
21 |
cd "${EPREFIX}/" |
15 |
|
22 |
|
16 |
trap ":" INT QUIT TSTP |
23 |
trap ":" INT QUIT TSTP |
17 |
|
24 |
|
18 |
argv0=${0##*/} |
25 |
argv0=${0##*/} |
19 |
FUNCTIONS_SH="/lib/gentoo/functions.sh" |
26 |
FUNCTIONS_SH="${EPREFIX}/lib/gentoo/functions.sh" |
20 |
source ${FUNCTIONS_SH} || { |
27 |
source ${FUNCTIONS_SH} || { |
21 |
echo "${argv0}: Could not source ${FUNCTIONS_SH}!" 1>&2 |
28 |
echo "${argv0}: Could not source ${FUNCTIONS_SH}!" 1>&2 |
22 |
exit 1 |
29 |
exit 1 |
Lines 97-110
Link Here
|
97 |
# Newer paths: /usr/${HOST}/${TARGET}/... |
104 |
# Newer paths: /usr/${HOST}/${TARGET}/... |
98 |
# Older paths: /usr/${TARGET}/... |
105 |
# Older paths: /usr/${TARGET}/... |
99 |
# |
106 |
# |
100 |
if [[ -d ${ROOT}/usr/${HOST}/${TARGET}/binutils-bin/${VER} ]] ; then |
107 |
if [[ -d "${EROOT}"/usr/${HOST}/${TARGET}/binutils-bin/${VER} ]] ; then |
101 |
BINPATH=/usr/${HOST}/${TARGET}/binutils-bin/${VER} |
108 |
BINPATH="${EPREFIX}"/usr/${HOST}/${TARGET}/binutils-bin/${VER} |
102 |
BINPATH_LINKS=/usr/libexec/gcc/${TARGET} |
109 |
BINPATH_LINKS="${EPREFIX}"/usr/libexec/gcc/${TARGET} |
103 |
fi |
110 |
fi |
104 |
fi |
111 |
fi |
105 |
if [[ -z ${BINPATH} ]] ; then |
112 |
if [[ -z ${BINPATH} ]] ; then |
106 |
BINPATH=/usr/${TARGET}/binutils-bin/${VER} |
113 |
BINPATH="${EPREFIX}"/usr/${TARGET}/binutils-bin/${VER} |
107 |
BINPATH_LINKS=/usr/${TARGET}/bin |
114 |
BINPATH_LINKS="${EPREFIX}"/usr/${TARGET}/bin |
108 |
fi |
115 |
fi |
109 |
} |
116 |
} |
110 |
|
117 |
|
Lines 123-146
Link Here
|
123 |
setup_env || return 1 |
130 |
setup_env || return 1 |
124 |
|
131 |
|
125 |
cd "${ROOT}/${BINPATH}" || exit 1 |
132 |
cd "${ROOT}/${BINPATH}" || exit 1 |
126 |
mkdir -p "${ROOT}/${BINPATH_LINKS}" "${ROOT}/usr/bin" |
133 |
mkdir -p "${ROOT}/${BINPATH_LINKS}" "${EROOT}/usr/bin" |
127 |
for x in * ; do |
134 |
for x in * ; do |
128 |
atomic_ln "${BINPATH}/${x}" "${ROOT}/${BINPATH_LINKS}" "${x}" |
135 |
atomic_ln "${BINPATH}/${x}" "${ROOT}/${BINPATH_LINKS}" "${x}" |
129 |
atomic_ln "${BINPATH_LINKS}/${x}" "${ROOT}/usr/bin" "${TARGET}-${x}" |
136 |
atomic_ln "${BINPATH_LINKS}/${x}" "${EROOT}/usr/bin" "${TARGET}-${x}" |
130 |
if [[ ${TARGET} == ${HOST} ]] ; then |
137 |
if [[ ${TARGET} == ${HOST} ]] ; then |
131 |
atomic_ln "${TARGET}-${x}" "${ROOT}/usr/bin" "${x}" |
138 |
atomic_ln "${TARGET}-${x}" "${EROOT}/usr/bin" "${x}" |
132 |
fi |
139 |
fi |
133 |
done |
140 |
done |
134 |
|
141 |
|
135 |
# |
142 |
# |
136 |
# Generate library / ldscripts symlinks |
143 |
# Generate library / ldscripts symlinks |
137 |
# |
144 |
# |
138 |
: ${LIBPATH:=/usr/lib/binutils/${TARGET}/${VER}} |
145 |
: ${LIBPATH:=${EPREFIX}/usr/lib/binutils/${TARGET}/${VER}} |
139 |
cd "${ROOT}/${LIBPATH}" || exit 1 |
146 |
cd "${ROOT}/${LIBPATH}" || exit 1 |
140 |
if [[ ${TARGET} == ${HOST} ]] ; then |
147 |
if [[ ${TARGET} == ${HOST} ]] ; then |
141 |
dstlib=${ROOT}/usr/${HOST}/lib |
148 |
dstlib=${EROOT}/usr/${HOST}/lib |
142 |
else |
149 |
else |
143 |
dstlib=${ROOT}/usr/${HOST}/${TARGET}/lib |
150 |
dstlib=${EROOT}/usr/${HOST}/${TARGET}/lib |
144 |
fi |
151 |
fi |
145 |
# When upgrading, we need to clean up ldscripts and libs. |
152 |
# When upgrading, we need to clean up ldscripts and libs. |
146 |
# Don't symlink back in the libs -- the binutils-lib package handles |
153 |
# Don't symlink back in the libs -- the binutils-lib package handles |
Lines 160-176
Link Here
|
160 |
if [[ ${HOST} == ${TARGET} ]] ; then |
167 |
if [[ ${HOST} == ${TARGET} ]] ; then |
161 |
# The binutils-lib package handles these files now. |
168 |
# The binutils-lib package handles these files now. |
162 |
for x in libiberty "${HEADERS[@]}" ; do |
169 |
for x in libiberty "${HEADERS[@]}" ; do |
163 |
x="${ROOT}/usr/include/${x}" |
170 |
x="${EROOT}/usr/include/${x}" |
164 |
if [[ -L ${x} ]] ; then |
171 |
if [[ -L ${x} ]] ; then |
165 |
rm "${x}" |
172 |
rm "${x}" |
166 |
fi |
173 |
fi |
167 |
done |
174 |
done |
168 |
else |
175 |
else |
169 |
# Clean out old path -- cannot use '-exec {} +' syntax here |
176 |
# Clean out old path -- cannot use '-exec {} +' syntax here |
170 |
find . -type f -exec rm -f "${ROOT}/usr/${TARGET}/usr/include/{}" \; |
177 |
find . -type f -exec rm -f "${EROOT}/usr/${TARGET}/usr/include/{}" \; |
171 |
rmdir "${ROOT}/usr/${TARGET}/usr/include" >& /dev/null |
178 |
rmdir "${EROOT}/usr/${TARGET}/usr/include" >& /dev/null |
172 |
rmdir "${ROOT}/usr/${TARGET}/usr" >& /dev/null |
179 |
rmdir "${EROOT}/usr/${TARGET}/usr" >& /dev/null |
173 |
rmdir "${ROOT}/usr/${TARGET}" >& /dev/null |
180 |
rmdir "${EROOT}/usr/${TARGET}" >& /dev/null |
174 |
fi |
181 |
fi |
175 |
fi |
182 |
fi |
176 |
|
183 |
|
Lines 183-196
Link Here
|
183 |
# Note: This skips ldconfig update if env.d had LDPATH, but meh. |
190 |
# Note: This skips ldconfig update if env.d had LDPATH, but meh. |
184 |
# Most people have upgraded to ld.so.conf.d, and someone else will |
191 |
# Most people have upgraded to ld.so.conf.d, and someone else will |
185 |
# eventually re-run ldconfig for us. |
192 |
# eventually re-run ldconfig for us. |
186 |
x="${ROOT}"/etc/ld.so.conf.d/05binutils.conf |
193 |
x="${EROOT}"/etc/ld.so.conf.d/05binutils.conf |
187 |
if [[ -e ${x} ]]; then |
194 |
if [[ -e ${x} ]]; then |
188 |
rm -f "${x}" |
195 |
rm -f "${x}" |
189 |
env_update_flag="" |
196 |
env_update_flag="" |
190 |
fi |
197 |
fi |
191 |
|
198 |
|
192 |
DATAPATH=/usr/share/binutils-data/${TARGET}/${VER} |
199 |
DATAPATH="${EPREFIX}"/usr/share/binutils-data/${TARGET}/${VER} |
193 |
local e="${ROOT}"/etc/env.d/05binutils |
200 |
local e="${EROOT}"/etc/env.d/05binutils |
194 |
local ee="${e}.tmp" |
201 |
local ee="${e}.tmp" |
195 |
rm -f "${ee}" |
202 |
rm -f "${ee}" |
196 |
[[ -d ${ROOT}/${DATAPATH}/man ]] && echo "MANPATH=${DATAPATH}/man" >> "${ee}" |
203 |
[[ -d ${ROOT}/${DATAPATH}/man ]] && echo "MANPATH=${DATAPATH}/man" >> "${ee}" |
Lines 213-219
Link Here
|
213 |
echo |
220 |
echo |
214 |
ewarn "Please remember to run:" |
221 |
ewarn "Please remember to run:" |
215 |
echo |
222 |
echo |
216 |
ewarn " # . /etc/profile" |
223 |
ewarn " # . ${EPREFIX}/etc/profile" |
217 |
echo |
224 |
echo |
218 |
fi |
225 |
fi |
219 |
|
226 |
|
Lines 247-274
Link Here
|
247 |
nm objcopy objdump ranlib readelf size strings strip |
254 |
nm objcopy objdump ranlib readelf size strings strip |
248 |
do |
255 |
do |
249 |
x=( |
256 |
x=( |
250 |
"${ROOT}"/usr/bin/${TARGET}-${x} |
257 |
"${EROOT}"/usr/bin/${TARGET}-${x} |
251 |
"${ROOT}"/usr/{${HOST}/,}${TARGET}/bin/${x} |
258 |
"${EROOT}"/usr/{${HOST}/,}${TARGET}/bin/${x} |
252 |
"${ROOT}"/usr/libexec/gcc/${TARGET}/${x} |
259 |
"${EROOT}"/usr/libexec/gcc/${TARGET}/${x} |
253 |
) |
260 |
) |
254 |
rm -f "${x[@]}" |
261 |
rm -f "${x[@]}" |
255 |
done |
262 |
done |
256 |
for x in "${HEADERS[@]}" ; do |
263 |
for x in "${HEADERS[@]}" ; do |
257 |
rm -f "${ROOT}"/usr/{${HOST}/,}${TARGET}/{usr/,}include/${x} |
264 |
rm -f "${EROOT}"/usr/{${HOST}/,}${TARGET}/{usr/,}include/${x} |
258 |
done |
265 |
done |
259 |
for x in bfd iberty opcodes ; do |
266 |
for x in bfd iberty opcodes ; do |
260 |
rm -f "${ROOT}"/usr/${HOST}/${TARGET}/lib/lib${x}{{-*,}.so,.a,.la} |
267 |
rm -f "${EROOT}"/usr/${HOST}/${TARGET}/lib/lib${x}{{-*,}.so,.a,.la} |
261 |
done |
268 |
done |
262 |
# Delete broken symlinks |
269 |
# Delete broken symlinks |
263 |
local destdir="${ROOT}/usr/${HOST}/${TARGET}" |
270 |
local destdir="${EROOT}/usr/${HOST}/${TARGET}" |
264 |
rm -f "${destdir}"/lib/ldscripts |
271 |
rm -f "${destdir}"/lib/ldscripts |
265 |
find -L "${destdir}"/lib -type l -exec rm {} + |
272 |
find -L "${destdir}"/lib -type l -exec rm {} + |
266 |
rmdir \ |
273 |
rmdir \ |
267 |
"${destdir}"/{bin,include,lib,usr} \ |
274 |
"${destdir}"/{bin,include,lib,usr} \ |
268 |
"${destdir}" \ |
275 |
"${destdir}" \ |
269 |
"${ROOT}"/var/db/pkg/cross-${TARGET} \ |
276 |
"${EROOT}"/var/db/pkg/cross-${TARGET} \ |
270 |
"${ROOT}"/usr/{${HOST}/,}${TARGET}/bin \ |
277 |
"${EROOT}"/usr/{${HOST}/,}${TARGET}/bin \ |
271 |
"${ROOT}"/usr/libexec/gcc/${TARGET} \ |
278 |
"${EROOT}"/usr/libexec/gcc/${TARGET} \ |
272 |
2>/dev/null |
279 |
2>/dev/null |
273 |
|
280 |
|
274 |
rm -f "${ENV_D}"/${TARGET}-* |
281 |
rm -f "${ENV_D}"/${TARGET}-* |
Lines 367-373
Link Here
|
367 |
: ${HOST:=${CHOST:-$(portageq envvar CHOST)}} |
374 |
: ${HOST:=${CHOST:-$(portageq envvar CHOST)}} |
368 |
} |
375 |
} |
369 |
|
376 |
|
370 |
ENV_D="${ROOT}etc/env.d/binutils" |
377 |
ENV_D="${EROOT}etc/env.d/binutils" |
371 |
|
378 |
|
372 |
DEBUG="no" |
379 |
DEBUG="no" |
373 |
NEED_ACTION="yes" |
380 |
NEED_ACTION="yes" |