This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

Re: libgcc move to the top level


Daniel Jacobowitz wrote:
On Wed, Dec 20, 2006 at 08:56:39AM +0100, Paolo Bonzini wrote:
If possible, I would like a proof of concept that it is possible to migrate the building of the extra parts incrementally without breaking non-converted targets, before committing (unless another maintainer overrules me).
OK, I'll do that (later).
Just to make it clearer, I'm ok with having to convert a directory at a time (arm, rs6000, i386, ...). So, if your proof-of-concept works only with one target, but breaks only those targets that share the same cpu directory, I'm fine with this.

I'd rather have it break nothing. So that's what I did. Of course, the risk of collateral damage here is quite high; our configuration is a terrible maze today. So, I have not removed any information about which startfiles to build from the gcc directory yet. If information is provided by both the gcc and libgcc configury, then they are compared and there will be loud failure if they differ.

The attached two patches correct some omissions in my previous
config.host file, and move building of EXTRA_PARTS to the libgcc
subdirectory for all GNU/Linux targets.  It involves updating
config.host to indicate which parts, and adding the necessary
rules.  The rules are similar to the ones in gcc/ with only
minor adjustments (for automatic dependency tracking, using $(CC),
removal of $(T), et cetera).  It's easy to do other targets.

Both patches committed to the branch. Look good?

Yes (I am reviewing now the libgcc configury itself, but it looks promising), but with a few changes:


1) extra_parts
	List of extra object files that should be compiled
	for this target machine.
	This may be overridden by setting EXTRA_PARTS
	in a tmake_file fragment.

Any good reason to allow both two possibilities? What about complaining loudly if EXTRA_PARTS is set by the tmake_file?

2) No need for the extra-parts variable, which is a bit confusing because of the confusion with extra_parts. You can instead do this:

ifneq ($(EXTRA_PARTS),)
  all: extra-parts
else
ifneq ($(GCC_EXTRA_PARTS),)
  all: gcc-extra-parts
endif

3) You have this

+ifneq ($(EXTRA_PARTS),)
+  INSTALL_PARTS = $(EXTRA_PARTS)
+else
+  INSTALL_PARTS = $(GCC_EXTRA_PARTS)
+endif
+

I'd rather merge the setting of INSTALL_PARTS with the setting of extra-parts above, like this:

ifneq ($(EXTRA_PARTS),)
  all: extra-parts
  INSTALL_PARTS = $(EXTRA_PARTS)
else
ifneq ($(GCC_EXTRA_PARTS),)
  all: gcc-extra-parts
  INSTALL_PARTS = $(GCC_EXTRA_PARTS)
endif

3) No blank line here:

+	exit 1
+endif
+endif
+
+	# Early copyback; see "all" above for the rationale.  The

Thanks,

Paolo


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