This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PCH now working, should be default?


Here's a bit of winter cheer....

It looks like PCH is now living up to its potential, at least for
libstdc++ on linux/x86. Thanks, Geoff.

How does one use PCH? Well, for now, they are not generated
automatically. Instead, the additional step:

cd $(bld)/i686-pc-linux-gnu/libstdc++-v3/include
make stamp-std-precompile

There is still the issue with:
algorithm:64:13: warning: #pragma system_header ignored outside include file

This is other/9471.

The long-term plan WRT .[pg]ch files is yet formed. Making .pch files
of all the standard C++ includes is not standard practice for
integrating pch into the standard lib (usually people precompile
everything and include this globbed .pch first), but it has the
advantage of working immediately without any changes to end-user code.

Should this be the way it's done? Hmmm. Thoughts?

The big win? Well, make check-target-libstdc++-v3 now completes in
roughly half the time, with no new failures. Specifically, for me:

without pch:
2046.929u 160.025s 1:01:38.19 59.6%	0+0k 0+0io 2262556pf+0w

with pch:
1951.369u 137.396s 37:05.66 93.8%	0+0k 0+0io 1690506pf+0w

I'm considering switching this on by default. Thoughts?

-benjamin

Index: include/Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/Makefile.am,v
retrieving revision 1.50
diff -c -p -r1.50 Makefile.am
*** include/Makefile.am	12 Feb 2003 00:54:37 -0000	1.50
--- include/Makefile.am	3 Mar 2003 19:17:45 -0000
*************** thread_target_headers = \
*** 343,349 ****
  # CLEANFILES and all-local are kept up-to-date.
  allstamps = \
  	stamp-std stamp-bits stamp-c_base stamp-c_compatibility \
! 	stamp-backward stamp-ext stamp-target
  
  # Here are the rules for building the headers
  all-local: ${target_builddir}/c++config.h ${thread_target_headers} ${allstamps}
--- 343,349 ----
  # CLEANFILES and all-local are kept up-to-date.
  allstamps = \
  	stamp-std stamp-bits stamp-c_base stamp-c_compatibility \
! 	stamp-backward stamp-ext stamp-target stamp-std-precompile
  
  # Here are the rules for building the headers
  all-local: ${target_builddir}/c++config.h ${thread_target_headers} ${allstamps}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]