summaryrefslogtreecommitdiff
path: root/scripts/build/cc
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2015-10-27 01:31:54 (GMT)
committerAlexey Neyman <stilor@att.net>2015-10-27 01:34:06 (GMT)
commit0a050d339044d6d0638fd20bcb181d4cb00191f5 (patch)
tree0c93a1b71cb88930ce041b90105014a5d9444ac1 /scripts/build/cc
parent32c5952980984a8ecf3753edd543401f2f324803 (diff)
Clean up *.la after installing compiler/libraries.
Having *.la in the installation directory breaks ltrace: in ltrace, libtool somehow considers libsupc++ to be an "accessory library" and does not add -lsupc++ to the link flags. Neither Ubuntu, nor RedHat include *.la files into their packages for libstdc++. Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'scripts/build/cc')
-rw-r--r--scripts/build/cc/100-gcc.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/scripts/build/cc/100-gcc.sh b/scripts/build/cc/100-gcc.sh
index 1056221..28dda1d 100644
--- a/scripts/build/cc/100-gcc.sh
+++ b/scripts/build/cc/100-gcc.sh
@@ -535,6 +535,16 @@ do_gcc_core_backend() {
CT_DoLog EXTRA "Installing ${log_txt}"
CT_DoExecLog ALL make ${JOBSFLAGS} ${extra_user_env} ${core_targets_install}
+ # Remove the libtool "pseudo-libraries": having them in the installed
+ # tree makes the libtoolized utilities that are built next assume
+ # that, for example, libsupc++ is an "accessory library", and not include
+ # -lsupc++ to the link flags. That breaks ltrace, for example.
+ CT_DoLog EXTRA "Housekeeping for final gcc compiler"
+ CT_Pushd "${prefix}"
+ find . -type f -name "*.la" -exec rm {} \; |CT_DoLog ALL
+ CT_Popd
+
+
if [ "${build_manuals}" = "yes" ]; then
CT_DoLog EXTRA "Building the GCC manuals"
CT_DoExecLog ALL make pdf html
@@ -932,6 +942,15 @@ do_gcc_backend() {
CT_DoLog EXTRA "Installing final gcc compiler"
CT_DoExecLog ALL make ${JOBSFLAGS} install
+ # Remove the libtool "pseudo-libraries": having them in the installed
+ # tree makes the libtoolized utilities that are built next assume
+ # that, for example, libsupc++ is an "accessory library", and not include
+ # -lsupc++ to the link flags. That breaks ltrace, for example.
+ CT_DoLog EXTRA "Housekeeping for final gcc compiler"
+ CT_Pushd "${prefix}"
+ find . -type f -name "*.la" -exec rm {} \; |CT_DoLog ALL
+ CT_Popd
+
if [ "${build_manuals}" = "yes" ]; then
CT_DoLog EXTRA "Building the GCC manuals"
CT_DoExecLog ALL make pdf html