Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 531616 | Differences between
and this patch

Collapse All | Expand All

(-)binutils-config-5.orig (-32 / +39 lines)
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"

Return to bug 531616