Line
Link Here
|
0 |
-- a/binutils-config-4 |
0 |
++ b/binutils-config-4 |
Lines 7-23
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 |
[[ ${EPREFIX} = */ ]] && EPREFIX="${EPREFIX%/}" |
12 |
[[ -n ${EPREFIX} && ${EPREFIX} != /* ]] && EPREFIX="${PWD%/}/${EPREFIX}" |
13 |
|
10 |
: ${ROOT:=/} |
14 |
: ${ROOT:=/} |
11 |
[[ ${ROOT} != */ ]] && ROOT="${ROOT}/" |
15 |
[[ ${ROOT} != */ ]] && ROOT="${ROOT}/" |
12 |
[[ ${ROOT} != /* ]] && ROOT="${PWD%/}/${ROOT}" |
16 |
[[ ${ROOT} != /* ]] && ROOT="${PWD%/}/${ROOT}" |
13 |
|
17 |
|
14 |
cd / |
18 |
EROOT="${ROOT%/}${EPREFIX}/" |
|
|
19 |
|
20 |
cd "${EPREFIX}/" |
15 |
|
21 |
|
16 |
trap ":" INT QUIT TSTP |
22 |
trap ":" INT QUIT TSTP |
17 |
|
23 |
|
18 |
argv0=${0##*/} |
24 |
argv0=${0##*/} |
19 |
source /etc/init.d/functions.sh || { |
25 |
source "@GENTOO_PORTAGE_EPREFIX@"/etc/init.d/functions.sh || { |
20 |
echo "${argv0}: Could not source /etc/init.d/functions.sh!" 1>&2 |
26 |
echo "${argv0}: Could not source @GENTOO_PORTAGE_EPREFIX@/etc/init.d/functions.sh!" 1>&2 |
21 |
exit 1 |
27 |
exit 1 |
22 |
} |
28 |
} |
23 |
esyslog() { :; } |
29 |
esyslog() { :; } |
Lines 96-109
setup_env() {
Link Here
|
96 |
# Newer paths: /usr/${HOST}/${TARGET}/... |
102 |
# Newer paths: /usr/${HOST}/${TARGET}/... |
97 |
# Older paths: /usr/${TARGET}/... |
103 |
# Older paths: /usr/${TARGET}/... |
98 |
# |
104 |
# |
99 |
if [[ -d ${ROOT}/usr/${HOST}/${TARGET}/binutils-bin/${VER} ]] ; then |
105 |
if [[ -d ${ROOT}${EPREFIX}/usr/${HOST}/${TARGET}/binutils-bin/${VER} ]] ; then |
100 |
BINPATH=/usr/${HOST}/${TARGET}/binutils-bin/${VER} |
106 |
BINPATH="${EPREFIX}"/usr/${HOST}/${TARGET}/binutils-bin/${VER} |
101 |
BINPATH_LINKS=/usr/libexec/gcc/${TARGET} |
107 |
BINPATH_LINKS="${EPREFIX}"/usr/libexec/gcc/${TARGET} |
102 |
fi |
108 |
fi |
103 |
fi |
109 |
fi |
104 |
if [[ -z ${BINPATH} ]] ; then |
110 |
if [[ -z ${BINPATH} ]] ; then |
105 |
BINPATH=/usr/${TARGET}/binutils-bin/${VER} |
111 |
BINPATH="${EPREFIX}"/usr/${TARGET}/binutils-bin/${VER} |
106 |
BINPATH_LINKS=/usr/${TARGET}/bin |
112 |
BINPATH_LINKS="${EPREFIX}"/usr/${TARGET}/bin |
107 |
fi |
113 |
fi |
108 |
} |
114 |
} |
109 |
|
115 |
|
Lines 113-136
switch_profile() {
Link Here
|
113 |
setup_env || return 1 |
119 |
setup_env || return 1 |
114 |
|
120 |
|
115 |
cd "${ROOT}/${BINPATH}" || exit 1 |
121 |
cd "${ROOT}/${BINPATH}" || exit 1 |
116 |
mkdir -p "${ROOT}/${BINPATH_LINKS}" "${ROOT}/usr/bin" |
122 |
mkdir -p "${ROOT}/${BINPATH_LINKS}" "${EROOT}/usr/bin" |
117 |
for x in * ; do |
123 |
for x in * ; do |
118 |
atomic_ln "${BINPATH}/${x}" "${ROOT}/${BINPATH_LINKS}" "${x}" |
124 |
atomic_ln "${BINPATH}/${x}" "${ROOT}/${BINPATH_LINKS}" "${x}" |
119 |
atomic_ln "${BINPATH_LINKS}/${x}" "${ROOT}/usr/bin" "${TARGET}-${x}" |
125 |
atomic_ln "${BINPATH_LINKS}/${x}" "${EROOT}/usr/bin" "${TARGET}-${x}" |
120 |
if [[ ${TARGET} == ${HOST} ]] ; then |
126 |
if [[ ${TARGET} == ${HOST} ]] ; then |
121 |
atomic_ln "${TARGET}-${x}" "${ROOT}/usr/bin" "${x}" |
127 |
atomic_ln "${TARGET}-${x}" "${EROOT}/usr/bin" "${x}" |
122 |
fi |
128 |
fi |
123 |
done |
129 |
done |
124 |
|
130 |
|
125 |
# |
131 |
# |
126 |
# Generate library / ldscripts symlinks |
132 |
# Generate library / ldscripts symlinks |
127 |
# |
133 |
# |
128 |
: ${LIBPATH:=/usr/lib/binutils/${TARGET}/${VER}} |
134 |
: ${LIBPATH:=${EPREFIX}/usr/lib/binutils/${TARGET}/${VER}} |
129 |
cd "${ROOT}/${LIBPATH}" || exit 1 |
135 |
cd "${ROOT}/${LIBPATH}" || exit 1 |
130 |
if [[ ${TARGET} == ${HOST} ]] ; then |
136 |
if [[ ${TARGET} == ${HOST} ]] ; then |
131 |
dstlib=${ROOT}/usr/${HOST}/lib |
137 |
dstlib=${EROOT}/usr/${HOST}/lib |
132 |
else |
138 |
else |
133 |
dstlib=${ROOT}/usr/${HOST}/${TARGET}/lib |
139 |
dstlib=${EROOT}/usr/${HOST}/${TARGET}/lib |
134 |
fi |
140 |
fi |
135 |
# When upgrading, we need to clean up ldscripts and libs |
141 |
# When upgrading, we need to clean up ldscripts and libs |
136 |
mkdir -p "${dstlib}" |
142 |
mkdir -p "${dstlib}" |
Lines 148-163
switch_profile() {
Link Here
|
148 |
if [[ -d ${ROOT}/${INCPATH} ]] ; then |
154 |
if [[ -d ${ROOT}/${INCPATH} ]] ; then |
149 |
cd "${ROOT}/${INCPATH}" || exit 1 |
155 |
cd "${ROOT}/${INCPATH}" || exit 1 |
150 |
if [[ ${HOST} == ${TARGET} ]] ; then |
156 |
if [[ ${HOST} == ${TARGET} ]] ; then |
151 |
mkdir -p "${ROOT}/usr/include" |
157 |
mkdir -p "${EROOT}/usr/include" |
152 |
for x in * ; do |
158 |
for x in * ; do |
153 |
atomic_ln "${INCPATH}/${x}" "${ROOT}/usr/include" "${x}" |
159 |
atomic_ln "${INCPATH}/${x}" "${EROOT}/usr/include" "${x}" |
154 |
done |
160 |
done |
155 |
else |
161 |
else |
156 |
# Clean out old path -- cannot use '-exec {} +' syntax here |
162 |
# Clean out old path -- cannot use '-exec {} +' syntax here |
157 |
find . -type f -exec rm -f "${ROOT}/usr/${TARGET}/usr/include/{}" \; |
163 |
find . -type f -exec rm -f "${EROOT}/usr/${TARGET}/usr/include/{}" \; |
158 |
rmdir "${ROOT}/usr/${TARGET}/usr/include" >& /dev/null |
164 |
rmdir "${EROOT}/usr/${TARGET}/usr/include" >& /dev/null |
159 |
rmdir "${ROOT}/usr/${TARGET}/usr" >& /dev/null |
165 |
rmdir "${EROOT}/usr/${TARGET}/usr" >& /dev/null |
160 |
rmdir "${ROOT}/usr/${TARGET}" >& /dev/null |
166 |
rmdir "${EROOT}/usr/${TARGET}" >& /dev/null |
161 |
fi |
167 |
fi |
162 |
fi |
168 |
fi |
163 |
|
169 |
|
Lines 165-184
switch_profile() {
Link Here
|
165 |
# Make sure proper paths get updated |
171 |
# Make sure proper paths get updated |
166 |
# |
172 |
# |
167 |
if [[ ${TARGET} == ${HOST} ]] ; then |
173 |
if [[ ${TARGET} == ${HOST} ]] ; then |
168 |
DATAPATH=/usr/share/binutils-data/${TARGET}/${VER} |
174 |
DATAPATH="${EPREFIX}"/usr/share/binutils-data/${TARGET}/${VER} |
169 |
local e="${ROOT}"/etc/env.d/05binutils |
175 |
local e="${EROOT}"/etc/env.d/05binutils |
170 |
local ee="${e}.tmp" |
176 |
local ee="${e}.tmp" |
171 |
rm -f "${ee}" |
177 |
rm -f "${ee}" |
172 |
[[ -d ${DATAPATH}/man ]] && echo "MANPATH=${DATAPATH}/man" >> "${ee}" |
178 |
[[ -d ${DATAPATH}/man ]] && echo "MANPATH=${DATAPATH}/man" >> "${ee}" |
173 |
[[ -d ${DATAPATH}/info ]] && echo "INFOPATH=${DATAPATH}/info" >> "${ee}" |
179 |
[[ -d ${DATAPATH}/info ]] && echo "INFOPATH=${DATAPATH}/info" >> "${ee}" |
174 |
# hmm, `ld` has this in SEARCH_DIR(), but ld.so does not ... |
180 |
# hmm, `ld` has this in SEARCH_DIR(), but ld.so does not ... |
175 |
if [[ -d ${ROOT}/etc/ld.so.conf.d ]] ; then |
181 |
if [[ -d ${EROOT}/etc/ld.so.conf.d ]] ; then |
176 |
local l="${ROOT}"/etc/ld.so.conf.d/05binutils.conf |
182 |
local l="${EROOT}"/etc/ld.so.conf.d/05binutils.conf |
177 |
local ll="${l}.tmp" |
183 |
local ll="${l}.tmp" |
178 |
echo "/usr/${TARGET}/lib" > "${ll}" |
184 |
echo "${EPREFIX}/usr/${TARGET}/lib" > "${ll}" |
179 |
mv_if_diff "${ll}" "${l}" |
185 |
mv_if_diff "${ll}" "${l}" |
180 |
else |
186 |
else |
181 |
echo "LDPATH=/usr/${TARGET}/lib" >> "${ee}" |
187 |
echo "LDPATH=${EPREFIX}/usr/${TARGET}/lib" >> "${ee}" |
182 |
fi |
188 |
fi |
183 |
mv_if_diff "${ee}" "${e}" |
189 |
mv_if_diff "${ee}" "${e}" |
184 |
fi |
190 |
fi |
Lines 198-204
switch_profile() {
Link Here
|
198 |
echo |
204 |
echo |
199 |
ewarn "Please remember to run:" |
205 |
ewarn "Please remember to run:" |
200 |
echo |
206 |
echo |
201 |
ewarn " # . /etc/profile" |
207 |
ewarn " # . ${EPREFIX}/etc/profile" |
202 |
echo |
208 |
echo |
203 |
fi |
209 |
fi |
204 |
|
210 |
|
Lines 223-229
uninstall_target() {
Link Here
|
223 |
die "no profiles exist for '${TARGET}'" |
229 |
die "no profiles exist for '${TARGET}'" |
224 |
fi |
230 |
fi |
225 |
|
231 |
|
226 |
rm -f "${ENV_D}"/config-${TARGET} "${ROOT}"/etc/ld.so.conf.d/05binutils.conf |
232 |
rm -f "${ENV_D}"/config-${TARGET} "${EROOT}"/etc/ld.so.conf.d/05binutils.conf |
227 |
|
233 |
|
228 |
local x |
234 |
local x |
229 |
for x in \ |
235 |
for x in \ |
Lines 232-259
uninstall_target() {
Link Here
|
232 |
nm objcopy objdump ranlib readelf size strings strip |
238 |
nm objcopy objdump ranlib readelf size strings strip |
233 |
do |
239 |
do |
234 |
x=( |
240 |
x=( |
235 |
"${ROOT}"/usr/bin/${TARGET}-${x} |
241 |
"${EROOT}"/usr/bin/${TARGET}-${x} |
236 |
"${ROOT}"/usr/{${HOST}/,}${TARGET}/bin/${x} |
242 |
"${EROOT}"/usr/{${HOST}/,}${TARGET}/bin/${x} |
237 |
"${ROOT}"/usr/libexec/gcc/${TARGET}/${x} |
243 |
"${EROOT}"/usr/libexec/gcc/${TARGET}/${x} |
238 |
) |
244 |
) |
239 |
rm -f "${x[@]}" |
245 |
rm -f "${x[@]}" |
240 |
done |
246 |
done |
241 |
for x in ansidecl.h bfd.h bfdlink.h dis-asm.h symcat.h ; do |
247 |
for x in ansidecl.h bfd.h bfdlink.h dis-asm.h symcat.h ; do |
242 |
rm -f "${ROOT}"/usr/{${HOST}/,}${TARGET}/{usr/,}include/${x} |
248 |
rm -f "${EROOT}"/usr/{${HOST}/,}${TARGET}/{usr/,}include/${x} |
243 |
done |
249 |
done |
244 |
for x in bfd iberty opcodes ; do |
250 |
for x in bfd iberty opcodes ; do |
245 |
rm -f "${ROOT}"/usr/${HOST}/${TARGET}/lib/lib${x}{{-*,}.so,.a,.la} |
251 |
rm -f "${EROOT}"/usr/${HOST}/${TARGET}/lib/lib${x}{{-*,}.so,.a,.la} |
246 |
done |
252 |
done |
247 |
# Delete broken symlinks |
253 |
# Delete broken symlinks |
248 |
local destdir="${ROOT}/usr/${HOST}/${TARGET}" |
254 |
local destdir="${EROOT}/usr/${HOST}/${TARGET}" |
249 |
rm -f "${destdir}"/lib/ldscripts |
255 |
rm -f "${destdir}"/lib/ldscripts |
250 |
find -L "${destdir}"/lib -type l -exec rm {} + |
256 |
find -L "${destdir}"/lib -type l -exec rm {} + |
251 |
rmdir \ |
257 |
rmdir \ |
252 |
"${destdir}"/{bin,include,lib,usr} \ |
258 |
"${destdir}"/{bin,include,lib,usr} \ |
253 |
"${destdir}" \ |
259 |
"${destdir}" \ |
254 |
"${ROOT}"/var/db/pkg/cross-${TARGET} \ |
260 |
"${EROOT}"/var/db/pkg/cross-${TARGET} \ |
255 |
"${ROOT}"/usr/{${HOST}/,}${TARGET}/bin \ |
261 |
"${EROOT}"/usr/{${HOST}/,}${TARGET}/bin \ |
256 |
"${ROOT}"/usr/libexec/gcc/${TARGET} \ |
262 |
"${EROOT}"/usr/libexec/gcc/${TARGET} \ |
257 |
2>/dev/null |
263 |
2>/dev/null |
258 |
|
264 |
|
259 |
rm -f "${ENV_D}"/${TARGET}-* |
265 |
rm -f "${ENV_D}"/${TARGET}-* |
Lines 352-358
set_HOST() {
Link Here
|
352 |
: ${HOST:=${CHOST:-$(portageq envvar CHOST)}} |
358 |
: ${HOST:=${CHOST:-$(portageq envvar CHOST)}} |
353 |
} |
359 |
} |
354 |
|
360 |
|
355 |
ENV_D="${ROOT}etc/env.d/binutils" |
361 |
ENV_D="${EROOT}etc/env.d/binutils" |
356 |
|
362 |
|
357 |
DEBUG="no" |
363 |
DEBUG="no" |
358 |
NEED_ACTION="yes" |
364 |
NEED_ACTION="yes" |