Patchwork fix install dependencies for target libraries

login
register
mail settings
Submitter Matthias Klose
Date Dec. 20, 2012, 6:22 p.m.
Message ID <50D35782.7020202@ubuntu.com>
Download mbox | patch
Permalink /patch/207696/
State New
Headers show

Comments

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
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

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; };