Patchwork Fix libstdc++ build (PR bootstrap/51985)

login
register
mail settings
Submitter Jakub Jelinek
Date Jan. 25, 2012, 4:01 p.m.
Message ID <20120125160152.GC18768@tyan-ft48-01.lab.bos.redhat.com>
Download mbox | patch
Permalink /patch/137792/
State New
Headers show

Comments

Jakub Jelinek - Jan. 25, 2012, 4:01 p.m.
Hi!

Apparently $(inst_sources) is included in libc__98convenience_la_SOURCES and
libc__98_la_SOURCES twice, once directly, once through $(host_sources_extra)
included in $(sources).  On x86_64-linux and others it causes just lots
of bloat (libstdc++.a is much bigger, as several objects are there twice,
and libstdc++.so.6 contains bigger .debug_* sections), but reportedly on
other targets it results in build failures.

Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for
trunk?

I've verified abilists before Benjamin's change, after that without this
patch and with this patch and the changes are ok (the only changes are some
GLOBAL -> UNIQUE changes caused by Benjamin's patch, with this patch no
abilist changes at all).

2012-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/51985
	* src/c++98/Makefile.am (libc__98_la_SOURCES,
	libc__98convenience_la_SOURCES): Remove $(inst_sources).
	* src/c++98/Makefile.in: Regenerated.


	Jakub
Richard Guenther - Jan. 26, 2012, 10:49 a.m.
On Wed, Jan 25, 2012 at 5:01 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> Hi!
>
> Apparently $(inst_sources) is included in libc__98convenience_la_SOURCES and
> libc__98_la_SOURCES twice, once directly, once through $(host_sources_extra)
> included in $(sources).  On x86_64-linux and others it causes just lots
> of bloat (libstdc++.a is much bigger, as several objects are there twice,
> and libstdc++.so.6 contains bigger .debug_* sections), but reportedly on
> other targets it results in build failures.
>
> Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for
> trunk?

Ok (I think it's obvious).

Thanks,
Richard.

> I've verified abilists before Benjamin's change, after that without this
> patch and with this patch and the changes are ok (the only changes are some
> GLOBAL -> UNIQUE changes caused by Benjamin's patch, with this patch no
> abilist changes at all).
>
> 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
>
>        PR bootstrap/51985
>        * src/c++98/Makefile.am (libc__98_la_SOURCES,
>        libc__98convenience_la_SOURCES): Remove $(inst_sources).
>        * src/c++98/Makefile.in: Regenerated.
>
> --- libstdc++-v3/src/c++98/Makefile.am.jj       2012-01-25 13:04:07.000000000 +0100
> +++ libstdc++-v3/src/c++98/Makefile.am  2012-01-25 13:59:04.560221970 +0100
> @@ -156,8 +156,8 @@ sources = \
>  vpath % $(top_srcdir)/src/c++98
>  vpath % $(top_srcdir)
>
> -libc__98_la_SOURCES = $(sources) $(inst_sources)
> -libc__98convenience_la_SOURCES = $(sources)  $(inst_sources)
> +libc__98_la_SOURCES = $(sources)
> +libc__98convenience_la_SOURCES = $(sources)
>
>  # Use special rules for the deprecated source files so that they find
>  # deprecated include files.
> --- libstdc++-v3/src/c++98/Makefile.in.jj       2012-01-25 13:04:07.000000000 +0100
> +++ libstdc++-v3/src/c++98/Makefile.in  2012-01-25 13:59:51.549947625 +0100
> @@ -114,10 +114,10 @@ am__objects_6 = bitmap_allocator.lo pool
>        math_stubs_long_double.lo stdexcept.lo strstream.lo tree.lo \
>        istream.lo streambuf.lo valarray.lo $(am__objects_1) \
>        $(am__objects_5)
> -am_libc__98_la_OBJECTS = $(am__objects_6) $(am__objects_2)
> +am_libc__98_la_OBJECTS = $(am__objects_6)
>  libc__98_la_OBJECTS = $(am_libc__98_la_OBJECTS)
>  libc__98convenience_la_LIBADD =
> -am_libc__98convenience_la_OBJECTS = $(am__objects_6) $(am__objects_2)
> +am_libc__98convenience_la_OBJECTS = $(am__objects_6)
>  libc__98convenience_la_OBJECTS = $(am_libc__98convenience_la_OBJECTS)
>  DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
>  depcomp =
> @@ -423,8 +423,8 @@ sources = \
>        ${host_sources} \
>        ${host_sources_extra}
>
> -libc__98_la_SOURCES = $(sources) $(inst_sources)
> -libc__98convenience_la_SOURCES = $(sources)  $(inst_sources)
> +libc__98_la_SOURCES = $(sources)
> +libc__98convenience_la_SOURCES = $(sources)
>
>  # Use special rules for the deprecated source files so that they find
>  # deprecated include files.
>
>        Jakub

Patch

--- libstdc++-v3/src/c++98/Makefile.am.jj	2012-01-25 13:04:07.000000000 +0100
+++ libstdc++-v3/src/c++98/Makefile.am	2012-01-25 13:59:04.560221970 +0100
@@ -156,8 +156,8 @@  sources = \
 vpath % $(top_srcdir)/src/c++98
 vpath % $(top_srcdir)
 
-libc__98_la_SOURCES = $(sources) $(inst_sources)
-libc__98convenience_la_SOURCES = $(sources)  $(inst_sources)
+libc__98_la_SOURCES = $(sources)
+libc__98convenience_la_SOURCES = $(sources)
 
 # Use special rules for the deprecated source files so that they find
 # deprecated include files.
--- libstdc++-v3/src/c++98/Makefile.in.jj	2012-01-25 13:04:07.000000000 +0100
+++ libstdc++-v3/src/c++98/Makefile.in	2012-01-25 13:59:51.549947625 +0100
@@ -114,10 +114,10 @@  am__objects_6 = bitmap_allocator.lo pool
 	math_stubs_long_double.lo stdexcept.lo strstream.lo tree.lo \
 	istream.lo streambuf.lo valarray.lo $(am__objects_1) \
 	$(am__objects_5)
-am_libc__98_la_OBJECTS = $(am__objects_6) $(am__objects_2)
+am_libc__98_la_OBJECTS = $(am__objects_6)
 libc__98_la_OBJECTS = $(am_libc__98_la_OBJECTS)
 libc__98convenience_la_LIBADD =
-am_libc__98convenience_la_OBJECTS = $(am__objects_6) $(am__objects_2)
+am_libc__98convenience_la_OBJECTS = $(am__objects_6)
 libc__98convenience_la_OBJECTS = $(am_libc__98convenience_la_OBJECTS)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp =
@@ -423,8 +423,8 @@  sources = \
 	${host_sources} \
 	${host_sources_extra}
 
-libc__98_la_SOURCES = $(sources) $(inst_sources)
-libc__98convenience_la_SOURCES = $(sources)  $(inst_sources)
+libc__98_la_SOURCES = $(sources)
+libc__98convenience_la_SOURCES = $(sources)
 
 # Use special rules for the deprecated source files so that they find
 # deprecated include files.