fix install dependencies for target libraries

Submitted by Matthias Klose on Dec. 20, 2012, 6:22 p.m.

Details

Message ID 50D35782.7020202@ubuntu.com
State New
Headers show

Commit Message

Matthias Klose Dec. 20, 2012, 6:22 p.m.
This was seen with the libgo installation [1], but from my point of view can
happen when the install target is called with -j >1, libtool seems to fall back
to the system libraries if the library in the install location is not available
(which is always the case if you install into an empty dir set with DESTDIR).
Currently it just works for a non-parallel install because the dependencies in
Makefile.def are created in the right order.

Ok for the trunk?

  Matthias

[1] http://gcc.gnu.org/ml/gcc-patches/2012-12/msg01192.html

Comments

Ian Taylor Dec. 20, 2012, 7:11 p.m.
On Thu, Dec 20, 2012 at 10:22 AM, Matthias Klose <doko@ubuntu.com> wrote:
> This was seen with the libgo installation [1], but from my point of view can
> happen when the install target is called with -j >1, libtool seems to fall back
> to the system libraries if the library in the install location is not available
> (which is always the case if you install into an empty dir set with DESTDIR).
> Currently it just works for a non-parallel install because the dependencies in
> Makefile.def are created in the right order.
>
> Ok for the trunk?

This is OK with a ChangeLog entry.

Thanks.

Ian
Matthias Klose Dec. 20, 2012, 7:20 p.m.
Am 20.12.2012 20:11, schrieb Ian Lance Taylor:
> On Thu, Dec 20, 2012 at 10:22 AM, Matthias Klose <doko@ubuntu.com> wrote:
>> This was seen with the libgo installation [1], but from my point of view can
>> happen when the install target is called with -j >1, libtool seems to fall back
>> to the system libraries if the library in the install location is not available
>> (which is always the case if you install into an empty dir set with DESTDIR).
>> Currently it just works for a non-parallel install because the dependencies in
>> Makefile.def are created in the right order.
>>
>> Ok for the trunk?
> 
> This is OK with a ChangeLog entry.

committed, with the ChangeLog entry from the original mail.

  Matthias
Tobias Burnus Dec. 20, 2012, 10:29 p.m.
Am 20.12.2012 19:22, schrieb Matthias Klose:
> This was seen with the libgo installation [1], but from my point of view can
> happen when the install target is called with -j >1, libtool seems to fall back
> to the system libraries if the library in the install location is not available
> (which is always the case if you install into an empty dir set with DESTDIR).
> Currently it just works for a non-parallel install because the dependencies in
> Makefile.def are created in the right order.
>
> Ok for the trunk?

For the Fortran change: Can you test with --disable-libquadmath 
--disable-libquadmath-support? Will that work by silently ignoring the 
libquadmath dependence or will it break?

> +dependencies = { module=install-target-libgfortran; on=install-target-libquadmath; };

Tobias

Patch hide | download patch | download mbox

2012-12-20  Matthias Klose  <doko@ubuntu.com>

	* Makefile.def (install-target-libgfortran): Depend on
	install-target-libquadmath, install-target-libgcc.
	(install-target-libsanitizer): Depend on install-target-libgcc.
	(install-target-libjava): Depend on install-target-libgcc.
	(install-target-libitm): Depend on install-target-libgcc.
	(install-target-libobjc): Depend on install-target-libgcc.
	(install-target-libstdc++-v3): Depend on install-target-libgcc.
	* Makefile.in: Regenerate.

Index: Makefile.def
===================================================================
--- Makefile.def	(Revision 194635)
+++ Makefile.def	(Arbeitskopie)
@@ -515,6 +515,13 @@ 
 dependencies = { module=all-target-libstdc++-v3; on=configure-target-libgomp; };
 
 dependencies = { module=install-target-libgo; on=install-target-libatomic; };
+dependencies = { module=install-target-libgfortran; on=install-target-libquadmath; };
+dependencies = { module=install-target-libgfortran; on=install-target-libgcc; };
+dependencies = { module=install-target-libsanitizer; on=install-target-libgcc; };
+dependencies = { module=install-target-libjava; on=install-target-libgcc; };
+dependencies = { module=install-target-libitm; on=install-target-libgcc; };
+dependencies = { module=install-target-libobjc; on=install-target-libgcc; };
+dependencies = { module=install-target-libstdc++-v3; on=install-target-libgcc; };
 
 // Target modules in the 'src' repository.
 lang_env_dependencies = { module=libtermcap; };